Company: Luma
Company background: Luma is a retail company which sells fitness clothing and gear. We have a retail website where customers can browse and buy our products and we’ve been striving to deliver more personalized experiences for our customers.
Contact: Kunal Gaba
Title: Technical Architect
Related URL(s): N/A
Please attach any visual aids that may help convey your story. Note: for an optimal experience please focus on including text and images in your submission. Other forms of media such as video or powerpoint may not upload properly
1. Please describe your company and the problem you set out to solve. What challenges did you have to overcome?
Every business today is present on digital and online channels, but just having a digital presence does not give you the edge over your competitors. It is critical to deliver personalized and relevant experiences to your customers. However, a personalized experience can be delivered only if you understand the context of your customers across channels and devices. In this submission, we will share how our company, Luma, achieved real time personalization using Adobe Experience Platform and Adobe Target.
Luma recently launched a new Amazon Alexa app which helps our customers meditate by playing soft music and customers can ask questions related to health and wellness topics. Luma wanted to understand how customers were using the Alexa App and deliver them offers and personalized content on our website and vice versa.
2. How did you leverage Adobe Experience Cloud to solve your problem? Please provide any information that will be helpful in understanding your integration (ie: architectural diagram, step by step process explanation, etc)
By using Adobe Experience Platform and Adobe Target, Luma can now deliver real time personalization to better engage our customers. Luma’s website is integrated with Adobe’s Experience Platform via Adobe Web SDK along with Adobe Target using Tags.
The diagram below shows the overall architecture of the solution:
The Adobe Experience Platform automatically stitches identity profiles and sends the hashed email address as the primary identity to Adobe Experience Platform. However, this will not work if there is a requirement to show personalized offers from Adobe Target and read them out in Alexa. This is because Adobe Target and all other Dx solutions use ECID as the primary identity which is not same as email ID of the user.
We fetch the ECID in Lambda function code by making HTTP calls to the identity service as shown below. The d_orgid param is the IMS orgid of our Adobe Experience Cloud instance.
We get the following response from the above call.
The d_mid above is the ECID in the above response. This ID is refreshed after “id_sync_ttl” time. We store this ECID and the TTL in a database (Use emailID of the user as primary key) and reuse the same until it is valid has not expired. We then regenerate the new ECID of the logged in user when the TTL time in seconds is less than current timestamp in seconds.
We created a new profile and event XDM schema in Adobe Experience Cloud which is used to ingest data into the data lake.
|
|
Event Schema |
Profile Schema |
The event fields in the event schema capture the customer’s intent and information. The ECID in the event schema is the primary identity and the email address of the user is the primary identity in the profile schema. Adobe Experience Platform then stiches the event data with the customer profile in real time.
After defining the schema, it is enabled for Profile as shown in following screenshot:
We saved the schemas and created datasets for both the schemas and linked them to an HTTP API data source. We made sure both datasets were linked to the Profile just as we did for the Schema. Documentation guidance for this can be found here: https://experienceleague.adobe.com/docs/experience-platform/sources/ui-tutorials/create/streaming/ht...
The next step was to update the Lambda function to stream the data to AEP datasets using the HTTP API. See the below code examples to see how the event and profile data was streamed via NodeJS code.
We sent the profile data once when the skill was launched, and the event data was sent on every intent request of the skill.
Send event data:
Send profile data:
We then defined the headers and body payload of the request object and sent it to the data flow end point. The payload structure of the request matches with the schema structure created in XDM schema.
The following are variables in the above code:
In the final step, we sent the data to the endpoint as a standard HTTPS POST request.
We received the following response after successful ingestion:
We then created a new segment in AEP by using the Alexa Skill Experience Event attribute which we created in the schema. Example: the below segment captures all Alexa users who have inquired for “Fitness Shirts”.
We then verified the sample profiles in the segment and checked its estimated audience size before we activated it.
Finally, we activated this segment to Adobe Target destination in AEP. Documentation guidance we used can be found here: https://experienceleague.adobe.com/docs/platform-learn/tutorials/destinations/create-destinations-an...
We logged into our Adobe Target instance and setup a new activity which will present an offer to all users who are in Alexa skill and have inquired for “Fitness Shirts”.
We then see a new audience or segment in Adobe Target after it was activated from AEP. We used that audience to build a new offer and presented it to our customers. In the above diagram, the “kgaba-Alexa-users” is the audience who have interacted with Alexa skill and who have inquired for “Fitness Shirts”.
Finally, when a customer logs in to our website with the same email address which they used for interacting with the Alexa skill, they will see a new offer displayed on the home page:
|
|
Regular customer sees above home page |
Alexa skill customer who inquired about fitness shirts sees the above page. |
3. What were your results? Please cite both qualitative and quantitative results if applicable
Luma can now run campaigns and easily target our customers with relevant offers and thereby increase overall engagement and retain our customers for a longer duration.
In this story, we shared how we achieved real time cross channel personalization with Adobe Experience Platform and Adobe Target.
We personalized the experience of the Alexa Skill by fetching offers from Adobe Target in the AWS Lambda function using the same ECID which was originally generated. The Lambda function fetches the offers from the Adobe Target server side and read it to the users of the skill.
Additional resources:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.