What is AEP?
Adobe Experience Platform (AEP) is a cloud-based platform that helps businesses manage all their customer experience (CX) data in one central location. It acts as a foundation for various Adobe Experience Cloud solutions, allowing you to:
● Unify customer data: AEP collects and integrates data from various sources like marketing automation tools, CRMs, website analytics, and socialmedia platforms.
● Standardize customer profiles: It creates a unified view of each customer by uniting all data points using identities, providing a holistic understanding of each profile's behavior and preferences.
● Deliver personalized experiences: Based on the unified profiles, AEP allows you to personalize marketing campaigns, content recommendations, and overall customer interactions across different channels.
AEP uses profiles as a representation of a subject, an organization or an individual. Generally, a profile is composed of four elements:
● Attributes: information such as name, age, or gender.
● Behavior: provide information on the activities of a given profile. For example, a profile behavior can tell if a given profile was “searching for shoes” or “orderingmeal”.
● Identities: this provides information of all data that is associated unequivocally with the person. Identities can be classified into three categories: Person (such as email, mobile number or loyalty ID), Device (visitor's IP) and cookie (ECID or cookieID).
● Audience memberships: The groups in which the profile belongs to (loyal users, users who live in a particular city, etc.)
When does Profile Stitching occur?
Profile stitching refers to the process where multiple data points from different sources are combined to form a single customer profile.
A link between two identities is established when the identity name space and the identity values match. Consider the following example:
You log in with your username and password combination to an e-commerce website using your laptop. This event qualifies you as anauthenticated user, thus AEP Identity Service recognizes your email as identity. Besides, your use of a browser to access the e-commerce website is also recognized by Identity Service as an event. This event is represented through an ECID (or cookie ID).
Next, if you log in with the same credentials to the same e-commerce website, but use the web browser on your phone instead of the web browser on your laptop, then a new ECID is registered in Identity Service.
Considering the scenarios above, Identity Service establishes a link between your email, your laptop ECID, as well as your phone ECID. This results in an identity union where you “own” three identities: one for person identifier (email) and two for cookie identifiers (ECIDs).
Undesired Profile Stitching in AEP
That example could be an ideal use case for AEP capabilities. However, this stitching often happens in an undesired way when multiple devices share the same identifier or a same device is used by different people. Such inaccuracies can lead to incorrect data and poor decision-making based on these erroneous profiles.
Let’s consider the scenario of a family with a video streaming subscription plan. The subscription is associated with a single email address, but it is used across various devices such as TVs, laptops, and mobile phones for each family member. Inevitably, in this case, the profiles of different family members will be linked in the Adobe Experience Platform (AEP) because they all share the same email as their identity when using the subscription.
It is known that profile stitching due to shared devices has become an increasing issue across several platform customers.
Our experience
In our case, after a long analysis and root cause study, we found that we had several stitched profiles mainly due to a cookie-based identifier ingested into the platform as part of web interactions coming from Marketo.
Adobe Marketo Engage is a marketing automation platform that helps businesses capture leads, nurture them through the sales funnel, and convert them into customers. It offers a wide range of features, including customizable web forms to collect lead information such as name, email, and demographic data.
Whenever a user activity is captured by Marketo, the associated ECID is stored. However, until recently, the out-of-the-box Marketo connector used to ingest Marketo data into AEP did not provide the capabilityto include ECID as part of the Marketo Activities fields. Instead, ECID was treated as a profile attribute and sent as part of the Marketo Person Attributes.
That is an inconvenient situation because when ECID is treated as a profile attribute, it can not be naturally aged out by using experience events expirations (TTL). In addition to that, it becomes associated with the entire user profile rather than specific activities. This means that all actions taken by a user are tied to the same ECID, and granularity is lost because individual interactions (e.g., website visits, email opens, form submissions) are not uniquely identified.
Going back to the example presented before of the family sharing a subscription, if all their interactions are linked to the same ECID and it's set as a profile identity, all family member profiles would be stitched together.
Our Solution:
We divided our solution into 8 steps:
1 - Benchmark stitched profiles: analyze and compare profiles using query service and the profile snapshot. This will help usunderstand how effective our solution is after all steps have been completed.
2 - Create a new dataset to store profiles from Marketo Person table: use the same schema as the one that is currently being used.
3 - Create a new dataflow: through the Marketo source connector configure a new dataflow to ingest Marketo Person table. Use the dataset created in the step above, the new mapping should not include ECID.
4 - Wait for Profile Stitching: wait between 1-2 daysfor Identity Service to add the new profile fragments to the existing profiles.
5 - Benchmark: compare the initial results with the latest profile snapshot. It should be similar since both datasets are coexisting.
6 - Delete old dataset.
7 - Wait for profile unstitching: by deleting the old dataset the profile fragments containing the cookie-based identities will be removed from the profile store and identity service causing profile unstitching. This also takes between 1-2 days.
8 - Benchmark: compare the initial results with the latest profile snapshot. There should be a larger number of profiles since many of them should have been unstitched by now.
Notes: step number 3 is a great opportunity to include additional modifications, in our case we included a lower() function to the email.
Lessons Learned
To prevent undesired profile stitching in AEP, it is crucial to implement proper cookie and ID management. Here are some key strategies:
1. Cookie and ID Management:
○ Ensure that your systems are generating unique identifiers for the activities of the profiles. If you’re not confident, don’t set ECID as an identity.
○ Use robust identity management methods to differentiate between users and devices.
2. Correct Ingestion of Identifiers:
○ Never ingest the ECID (Experience Cloud ID) as an individual profile record. Instead, it should be ingested as an experience event. This practice helps maintain the integrity of profiles and prevents stitching issues.
What to DoIf It’s Already Too Late?
If you’ve already encountered profile stitching issues, here’s what you can do:
1. Data Cleaning:
○ Perform data cleaning to separate incorrectly merged profiles.
○ Reassess and adjust your data ingestion processes to ensure accurate identity management moving forward.
Conclusions
AEP's ability to match profiles depends on the availability and quality of the data. It is important to implement strong data management strategies to ensure that customer data is accurate, complete, and consistent across systems.
Regarding identities, using cookie-based identities as individual profile attributes should be your last option. It’s better to handle these as part of experience events which provide richer context and a more accurate picture of your customer's behavior.
Utilize Time-to-Live (TTL) or pseudonymous profiles to naturally age out identities. TTL automatically removes outdated data after a set period, while pseudonymization anonymizes identities while still allowing for analysis. This helps in maintaining the accuracy and relevance of your customer profiles over time.
Adhering to these best practices will significantly reduce the likelihood of data-stitching issues within AEP. This, in turn, guarantees a more accurate and trustworthy foundation for your customer data.
References:
Real-Time Customer Data Platform Overview | Adobe Real-Time Customer Data Platform
Identity Service Overview | Adobe Experience Platform
What is Adobe Marketo Engage? | Adobe Marketo Engage