Troubleshooting identity in Data Collection
Identity problems often surface as symptoms in downstream reporting (inflated visitor counts, fragmented profiles, or broken personalization) rather than as errors in the implementation itself. This page helps you diagnose and resolve the most common identity issues in Web SDK implementations. For background on how identity works in Data Collection, see the identity overview.
Inspect identity values inspect-identity
Before troubleshooting a specific issue, retrieve the current identity values that the Web SDK is using. Use the getIdentity command to view the ECID and other identity signals:
alloy("getIdentity", { namespaces: ["ECID", "CORE"] }).then(function(result) {
console.log("ECID:", result.identity.ECID);
console.log("CORE ID:", result.identity.CORE);
console.log("Edge region:", result.edge.regionID);
});
You can also inspect identity values in your browser’s developer tools:
- Open the Application tab (Chrome/Edge) or Storage tab (Firefox/Safari).
- Look for cookies prefixed with
kndctr_on your domain. Thekndctr_<ORG_ID>_AdobeOrg_identitycookie contains the ECID. - Open the Network tab and find an
interactorcollectrequest to the Edge Network. Inspect the request payload foridentityMapand the response payload for identity handles.
Common issues common-issues
Symptom: Analytics reports show more unique visitors than expected, or the same person appears as multiple visitors across sessions.
Possible causes:
| table 0-row-3 1-row-3 2-row-3 3-row-3 4-row-3 5-row-3 | ||
|---|---|---|
| Cause | How to identify | Resolution |
| Short cookie lifetime | Check the expiration of kndctr_ cookies in the browser. If they expire in 7 days or less, browser policies are likely restricting cookie duration. |
Implement first-party device IDs (FPIDs) set from a server using a DNS A/AAAA record for longer cookie persistence. |
| Missing FPID on first request | Inspect the first Edge Network request on page load. If no FPID cookie is present, the Edge Network generates a new ECID. If the FPID is set after the first request, the ECID generated on that first request is orphaned. | Set the FPID cookie before the Web SDK sends its first request. See When to set the cookie. |
orgId mismatch across domains |
Compare the orgId configuration value across your domains. Mismatched values cause separate identity scopes. |
Use the same orgId on all domains within your organization. |
| Consent banner deleting cookies | If your consent implementation clears all cookies before consent is granted and then the Web SDK initializes, a new ECID is generated. | Configure your consent banner to preserve kndctr_ cookies or delay Web SDK initialization until consent is established. See also Consent and identity. |
| JavaScript-set FPID cookies | Cookies set using document.cookie are subject to browser restrictions (ITP, ETP) that cap their lifetime, sometimes to as little as 24 hours. |
Set FPID cookies from the server using a DNS A/AAAA record, not from JavaScript. |
Symptom: The ECID is different on different pages of the same domain, or changes on every page load.
Diagnostic steps:
- Confirm that the
kndctr_identity cookie is present on both pages. If it is missing on one page, check that the Web SDK is configured on that page. - Verify that the cookie domain is set broadly enough. A cookie set on
shop.example.comis not available onwww.example.com. Ensure that first-party collection and cookie-setting infrastructure use the same domain scope. - Check for JavaScript that clears cookies on navigation (for example, aggressive cookie-consent scripts or privacy tools).
- If using a single-page application, verify that the Web SDK is configured once at app initialization, not re-initialized on every route change. Re-initialization can generate a new ECID.
Symptom: You have set an FPID cookie, but getIdentity returns an ECID that is not consistent across visits, or the FPID does not appear in Edge Network request payloads.
Diagnostic steps:
- Verify the FPID cookie format: The FPID must be a valid UUIDv4. Open your browser’s developer tools, find the FPID cookie, and confirm that the value matches the pattern
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx. - Check the cookie name in the datastream: If you are using the datastream cookie method, the cookie name configured in the datastream must exactly match the name of the cookie that your server sets.
- Confirm that the cookie is sent on the request: In the Network tab, inspect the
Cookieheader on the Edge Network request. The FPID cookie must be included. - Check identity priority: If an existing ECID is already stored in a
kndctr_cookie, it takes precedence over the FPID. The FPID only seeds a new ECID when no existing ECID is present. See How FPIDs work for the full priority order. - Validate the CNAME: If using the datastream cookie method, confirm that your first-party collection CNAME is correctly configured and that requests are routed through it.
Symptom: A visitor who clicks from one of your domains to another is treated as a new visitor on the destination domain.
Diagnostic steps:
- Check the URL: Inspect the destination URL when the visitor clicks the link. It must contain an
adobe_mcquery-string parameter. If the parameter is missing, the source domain is not appending it. See Implement cross-domain sharing. - Check the timing: The
adobe_mcparameter expires after five minutes. If the destination page takes too long to load (for example, due to redirects or slow network), the parameter can expire before the Web SDK can read it. - Verify
orgIdmatch: Both domains must use the sameorgId. Mismatched organization IDs cause the destination domain to reject the handed-off identity. - Confirm Web SDK is on the destination: The destination page must have the Web SDK installed and configured. Without it, the
adobe_mcparameter is ignored. - Check for URL stripping: Some redirect services, CDNs, or server-side logic strip unknown query-string parameters. Verify that
adobe_mcsurvives any intermediate redirects between the source and destination pages.
Symptom: A visitor who starts in the mobile app and opens a WebView or mobile browser is treated as a new visitor on the web side.
Diagnostic steps:
- Verify the URL: Log the URL being passed to the WebView. It must contain an
adobe_mcparameter generated bygetUrlVariables. - Check SDK versions: The mobile Identity for Edge Network extension must be version 1.1.0 or later, and the Web SDK must be version 2.11.0 or later.
- Check the timing: Like cross-domain sharing, the
adobe_mcparameter expires after five minutes. Ensure the WebView loads promptly after the URL is constructed. - Confirm
orgIdmatch: The Experience Cloud organization ID must be the same in both the mobile SDK and Web SDK configurations.