Expand my Community achievements bar.

Join us January 15th for an AMA with Champion Achaia Walton, who will be talking about her article on Event-Based Reporting and Measuring Content Groups!
SOLVED

AA Data insertion API - stitching API hit into respective AA session

Avatar

Level 3

I'm trying to bring in the back end orders post user created a cart(scenario - B2B provision to checkout cart form their in-house system) 

Ref to this post - https://developer.adobe.com/analytics-apis/docs/1.4/guides/data-insertion/

 

I was hoping to passECID to <marketingCloudVisitorId> when my backend system places an order. In this case data stitching would happen as same ECID from the user session was passed. Unfortunately, they came back stating MCMID can't be fetched from the user UI(front end session cookie) for some reasons

 

As an alternate my backend team willing to pass the cartID from the same user session.

But my question here is if cartId to <visitorId> field, HOW can we make adobe consider/stitch this API inserted hit into a session matching cartId? Thanks

 

 

1 Accepted Solution

Avatar

Correct answer by
Community Advisor and Adobe Champion

DO NOT use the Data Insertion API for this use case, especially not the Bulk Data Insertion API. Mixing frontend and backend sessions this way has a near-100% guarantee or messing up your Visitor Profile data. Adobe Analytics does not stitch anything and will be very confused if hits arrive out-of-order or from multiple sources for the same Visitor.

Adobe Analytics has the concept of Transaction IDs for your exact use case. As you described, use your cartID as a Transaction ID, then use the safe and comfortable Transaction ID Data Sources process to import your backend data.

Learn more about Adobe Analytics and Customer Journey Analytics on my blog

Need help with Adobe Analytics or Customer Journey Analytics? Let's talk!

View solution in original post

4 Replies

Avatar

Community Advisor and Adobe Champion

Hey @abhijithr !

 

In the interest of ensuring that there is not another issue impacting the MCMID being fetched, have you been able to confirm that you're seeing it set properly in Adobe? 

 

I've seen implementations set ECID as an eVar and set in a data element to ensure that there aren't instances where ECID isn't being set that can impact stitching data using Data Insertion API.  Are you utilizing Launch to send to AA?  If so, using the Adobe Experience Cloud ID Service Extension would allow you to set up a simple data element to make ECID available using "_satellite.getVar("<your data element name>"). 

 

See below screenshot:

Screenshot 2024-06-20 at 11.04.58 AM.png

 

However, if for whatever reason, there ends up being issues that prevent stitching via the ECID (which probably makes the Data Insertion API not a great solution for your requirement of stitching data from backend to Adobe), the cartID COULD be used to capture in an eVar, and then you could upload a classification of the data you want to see in Adobe that is tied to the backend orders keyed off the cartID if that is available.  https://experienceleague.adobe.com/en/docs/analytics/components/classifications/c-classifications for reference.  This isn't the best solution, as you are limited to uploading off the cartID and if the value is not truly unique (i.e., could be re-used) it could result in problems in the future.  But it could allow you to classify simple details such as "total order value", "# of products", etc.

Hopefully one of these two options help you move forward!

 

Thanks,

Andy

EDIT: You should NOT use this method with Data Insertion API if your report suite is not timestamp required, and you should pass timestamps that date close to the session end to avoid breaking Visitor Profile data.  That being said, Transaction ID is likely the least risky approach and as @FrederikWerner stated, better for your use case.

Avatar

Level 3

hi @andylunsford1 

 

First of all thanks a ton for your response.

 

Yes, I use Launch & could populate ECID within, but challenge is from my backend accessing.

 

Via classification sounds smart idea, and certainly helps have numbers within AA. But as I'm hoping to do full ecommerce reporting(PV to order metrics by products SKU dimension), there seems challenges yet. I'm trying pushing me backend team consume it prior and append in XML, worst-case I can consider the below maybe for high level revenue & product category via classification. Thanks again Andy.

Avatar

Correct answer by
Community Advisor and Adobe Champion

DO NOT use the Data Insertion API for this use case, especially not the Bulk Data Insertion API. Mixing frontend and backend sessions this way has a near-100% guarantee or messing up your Visitor Profile data. Adobe Analytics does not stitch anything and will be very confused if hits arrive out-of-order or from multiple sources for the same Visitor.

Adobe Analytics has the concept of Transaction IDs for your exact use case. As you described, use your cartID as a Transaction ID, then use the safe and comfortable Transaction ID Data Sources process to import your backend data.

Learn more about Adobe Analytics and Customer Journey Analytics on my blog

Need help with Adobe Analytics or Customer Journey Analytics? Let's talk!

Avatar

Community Advisor and Adobe Champion

@abhijithr Wanting to reply to @FrederikWerner here as I realized that I incorrectly read that you had timestamps enabled on your report suite and were sending timestamp data with these hits.  Upon reading Frederik's comment, realized that was an assumption I made due to working on a similar issue right now on a project of my own. 

 

Frederik is 1000% correct that this will wreak havoc on your visitor profile due to Adobe not being able to stitch these sequentially and that they will appear out of order.  Transaction IDs will work much better for your use-case.