SHA256 Hashing Support for setCustomerIDs hashing-support

Experience Cloud ID Service (ECID) supports the SHA-256 hashing algorithm that allows you to pass in customer IDs or email addresses, and pass out hashed IDs. This is an optional Javascript method for sending hashed identifiers to Experience Cloud. You can continue to use your own methods of hashing prior to sending customer IDs.
There are two ways to implement hashing support with setCustomerIDs, as described in the sections below:

Use the setCustomerIDs method in ECID use-setcustomerids-method

The first method leverages using the setCustomerIDs (customerIDs<object>, hashType<string>) method.

Before hashing, the ECID library performs data normalization on the customerIDs. This process trims the whitespaces of the customerIDs on both ends, and converts all characters to lowercase. For example, in case of email addresses: " " becomes “”

See below a code example of how you set a single customer ID (the email address mentioned above) with SHA-256 hashing.

// Set single customerID with SHA-256 hashing
visitor.setCustomerIDs({email: {id: "", authState: 1}}, "SHA-256");

Along with the Experience Cloud visitor ID, you can associate additional customer IDs, authentication status and hash type (SHA-256) with each visitor. If you don’t provide any hash type, it will be considered as no hashing.

The setCustomerIDs method accepts multiple customer IDs for the same visitor. This helps you identify or target an individual user across different devices. For example, you can upload these IDs as customer attributes to the Experience Cloud and access this data across the different solutions.

Customer IDs, authenticated states and hash type are not stored in a cookie to be used later. Instead, Customer IDs, authenticated states and hash type should be stored in an instance variable, to be retrieved using getCustomerIDs, as shown below:

> visitor.getCustomerIDs();
< {email: {…}}
    email: {id: "a6ea4cde5da5ae7cc68baae894d1d6544fca26254433b0fff7c2cb4843b4a097", authState: 1, hashType: "SHA-256"}
    __proto__: Object

Using the setCustomerIDs method results in a call to the Experience Cloud ID Service, to, with the addition of the d_cid_ic query parameter, which contains the hashed customer ID. A sample call could look like the one below. Line breaks were added for clarity.

See the table below for a description of the d_cid_ic parameter and authentication state.


Passes the Integration Code, the Unique User ID (DPUUID), and an authenticated state ID to the ID service. Separate the Integration Code and DPUUID with the non-printing control character, %01:
Example: d_cid_ic=Integration_code%01DPUUID%01Authentication_state
Authentication State
This is an optional ID in the d_cid_ic parameter. Expressed as an integer, it identifies users according to their authentication status as shown below:

  • 0 (Unknown or never authenticated)
  • 1 (Currently authenticated for this instance / page / app context)
  • 2 (Logged out)


  • Unknown: …d_cid=123%01456%01 0
  • Authenticated: …d_cid=123%01456%01 1
  • Logged out: …d_cid=123%01456%01 2

Add an Action in Adobe Experience Platform Launch add-action-launch

Experience Platform Launch is the next-generation of tag management capabilities from Adobe. Read more about Platform Launch in the Launch product documentation.

To add an action in Launch, read the rules documentation in Adobe Launch and see the screen capture below:

After confirming your configuration, Launch wraps up the data into an object, like below:

    integration_code: {
        id: "value",
        authState: auth_state,
        hashType: "hash_algorithm"

Here is a code sample:

// Set single customer ID with hash type
setCustomerIDs(Ingeration code: {
    id: "string_value",
    authState: auth_state,
    hashType: "hash_algorithm"

Similarly to the setCustomerIDs method described in the first section, this results in a call to the Experience Cloud ID Service, with the addition of the d_cid_ic query parameter.