Event web dataset - Identity Map vs custom ECID field as primary identitifier | Community
Skip to main content
Michael_Soprano
Level 10
September 15, 2025
Solved

Event web dataset - Identity Map vs custom ECID field as primary identitifier

  • September 15, 2025
  • 4 replies
  • 814 views

Is it better to use some custom field with ECID as a primary identity or to used Identity Map?
What is the advantage of Identity Map?

Best answer by bjoern__koth

One of my Adobe consultants once told me as rule of thumb

  • for profile schema datasets, use dedicated fields 
  • for event datasets, use the identityMap

But as @dwright-adobe @already wrote, if you're using the WebSDK, you won't need to explicitly send it anyway since it gets implicitly added to your requests.

 

If not present, the Edge network will treat your ECID as primary identity, so in WebSDK calls, there is no need to define a separate identityMap anyway.

 

If you need to have it in your data e.g., to be used in CJA or so, I would rather use datastream mapping to map it to your target field.

4 replies

Parvesh_Parmar
Community Advisor
Community Advisor
September 15, 2025

Hello @michael_soprano ,


As I understand, it is recommended to use ECID as a secondary identity and not combine it with the primary identity in the event schema.

Here's how you can set it up:

• In the profile schema, create the CRM ID as the primary key, assigning it a namespace (e.g., CRM_ID). Make sure to enable it for profile.
• In the event table, create both ECID and CRM ID as secondary keys, assigning the correct namespace. For the CRM ID, use the same namespace as the profile schema.

There are two possible scenarios to consider:

1. When you receive event data with ECID but without CRM ID, a profile will be created based on the ECID, and an identity map will be generated.
2. When a customer logs in after some time and sends both ECID and CRM ID, all previous events without CRM ID will be linked to the CRM profile and ECID records will be merge with it.

For more information on this topic, you can refer to the Adobe Experience Platform Identity Service documentation: https://experienceleague.adobe.com/en/docs/experience-platform/identity/home#

 

Best regards,
Parvesh

 

Parvesh Parmar – Adobe Community Advisor https://www.linkedin.com/in/parvesh-parmar/
Adobe Employee
September 15, 2025

With Web SDK, it's best to pass all identities via the identityMap. All of the support in the Web SDK Tags extension is designed to support this approach. You wouldn't be able to set the ECID on the first hit of a new visitor in a custom field.

itsMeTechy
Level 4
September 15, 2025

if you consider independent ECID attribute as identity, you will end up marking this  attribute as primary identity, because there will always be anonymous browsing events which will only have ECID as identity. which also means that when it is login browsing still ECID will be primary identity.

 

As a good practice, it is recommended to have login id as primary identity if its available and consider ECID as secondary identity. when it is anonymous browsing then consider ECID as primary identity. This flexibility will be available only when you use identityMap and marking identityMap as identity.

bjoern__koth
Community Advisor and Adobe Champion
bjoern__kothCommunity Advisor and Adobe ChampionAccepted solution
Community Advisor and Adobe Champion
September 15, 2025

One of my Adobe consultants once told me as rule of thumb

  • for profile schema datasets, use dedicated fields 
  • for event datasets, use the identityMap

But as @dwright-adobe @already wrote, if you're using the WebSDK, you won't need to explicitly send it anyway since it gets implicitly added to your requests.

 

If not present, the Edge network will treat your ECID as primary identity, so in WebSDK calls, there is no need to define a separate identityMap anyway.

 

If you need to have it in your data e.g., to be used in CJA or so, I would rather use datastream mapping to map it to your target field.

Cheers from Switzerland!
Michael_Soprano
Level 10
September 23, 2025

@bjoern__koth something like this?

 

 

arpan-garg
Community Advisor
Community Advisor
October 8, 2025

You can also create a custom data element and add a custom js like this 

 

  if (email) {

        

        return {

            "ECID": [{

                "id": _satellite.getVar('ECID'),

                "authenticatedState": "ambiguous",

                "primary": false

            }],

            “Email”: [

                {

                    "id": email,

                    "authenticatedState": "authenticated",

                    "primary": true

                }

            ]

        };

    }

    else if (ecid) {

        //console.log("ECID")

        return {

            "ECID": [{

                "id": _satellite.getVar('ECID'),

                "authenticatedState": "ambiguous",

                "primary": true

            }]

        };

 

    }

}