Expand my Community achievements bar.

Submissions are now open for the 2026 Adobe Experience Maker Awards
SOLVED

Adobe ACP Mobile SDK - "&&& product" context data implementation

Avatar

Level 4

I have a ACP mobile sdk implementation using trackState and trackAction calls. Now the devs are sending data using "&&products": ";Category: infinite;Product: 160GB, Talk & Text - Plus;Quantity: 1;Price: 75.0". How do i populate it up in Adobe analytics? I tried mapping it to an eVar using processing rules but when in context data variable i typed : &&products it turned the value into products and it is not working. 

 

Please Suggest me the best solution as it is urgent 

1 Accepted Solution

Avatar

Correct answer by
Community Advisor and Adobe Champion

In the Products List notation, those are standard metrics. Even in your screen shot above from January, that was in the Success Events configuration. Revenue and number of items being sold are traditionally stored as a metric, so that you can have a total number of "product X" sold in whatever period, and a total revenue from those sales... metrics are numbers, so they will add up across the orders and you can also run calculated metrics on them... 

 

https://experienceleague.adobe.com/en/docs/analytics/implementation/vars/page-vars/products 

 

If you want to be able to see these values as actual text dimension data (as in, you want to see a specific, locked in, textual value for each order), then you will need to create some Merchandising eVars to store the values as a dimension.

 

For example:

Jennifer_Dungan_0-1761242819119.png

 

You might want to keep the default "visit" expiry, or you may want it to only be part of the Sale hit, or maybe have a custom expiry.. it depends on your needs.

 

But you will definitely need to make it "Merchandising" and in Product Syntax.

 

 

Now, in your products string, you will need to add the new eVars:

 

";CCMM42255:5G Infinite Premium;250;118.75;;eVar97=250|eVar98=118.75"

 

Notice I have a double ;; in the string, this is intentional... this is the spot where custom events would be placed, if you had any... since you don't, we need to leave that there and empty.

View solution in original post

32 Replies

Avatar

Level 4

What about orderReview page, we have events.orderreview on the website. How do we pass this along scCheckout

contextData["&&events"] = "scCheckout",events.orderReview

Is the above correct format?

 

 

Avatar

Community Advisor and Adobe Champion

I am not a mobile developer... I am a web developer... if this works like other languages, I would say no....

 

Normally, adding values together would use "+"

 

I assume that event.orderReview is a variable that holds a value like "event1" or "event2" etc.... 

 

I am not sure what language your app is using so I can't say for sure the full and proper syntax... but assuming that the value of the variable is "event1", I would expect to see something like:

 

contextData["&&events"] = "scCheckout," + events.orderReview 

 

But, if I were developing this... I wouldn't bother with a variable for each event use... I would create a generic variable like "myEvents"

 

and use:

contextData["&&events"] = myEvents;

 

For each usage, I would then populate my events with the list of events I need:

 

  • ""
  • "scCheckout"
  • "scCheckout,event1"
  • "scCheckout,event1,event2"
  • etc

Building out the list of events to pass based on the page or action and what is required.

Avatar

Level 4

Hi @Jennifer_Dungan ,

 

I am able to get the product information into Adobe analytics now but for some reason the purchase event, i cannot get it in Adobe. Let me know if the below format is correct?

 

trackState ["signin.status": "signed in", "buyflow.name": "PPC", "app.hierarchy.level3": "ppc", "events.buyFlowComplete": "true", "account.CTN": "411644c3cbef2eb242b8919928813d7f731fd8be1d102c27037178c315788f83", "app.hierarchy.level2": "plan", "page.province": "", "miscellaneous.type": "ppc for 0 products", "page.ICMTimestamp": "Friday|1/31/2025 11:45", "miscellaneous.name": "forced: 0, unforced toggled ON: 0, unforced toggled OFF: 0", "app.mcid": "75529446474952023108561795571708831506", "page.language": "en", "&&events": "purchase", "account.ID": "1a5376ad727d65213a79f3108541cf95012969a0d3064f108b5dd6e7f8c19b89", "events.miscellaneous": "true", "page.name": "MyRogersApp:wireless:plan:ppc:checkout-order complete", "account.type": "Consumer|CTN|Unconsolidated", "&&products": "wireless;WBKM4223L:Share Everything 25GB-No Tab;1;60.85,wireless;CONM422J8:Additional Line - No Tab;1;60.85,wireless;CONM422J8:Additional Line - No Tab;1;60.85", "app.advertiserID": "00000000-0000-0000-0000-000000000000", "app.trackingTransparency": "Ask App not to Track", "account.BAN": "1a5376ad727d65213a79f3108541cf95012969a0d3064f108b5dd6e7f8c19b89","profile.username": "9956d6a8168de87560ad6918838818f2c3a1995f2575285da6609a748322863c"]

Avatar

Community Advisor and Adobe Champion

While I am not an app developer, that doesn't look right...

 

The syntax of trackState only allows for two items... the page name, and the data object passing all the values as a single object... you have every value as a it's own item.

 

Example:

var dictionary = { };
dictionary["myapp.login.LoginStatus"] = "logged in";
ADBMobile.analytics.trackState("Home Screen", dictionary);

 

 

All of your items (signin.status, buyflow.name, etc) should be a part of the "dictionary" object. You can call it whatever you want, we just call ours contextData... but the principal is the same... 

 

If that is the actual code being used, I don't understand how it is working at all, that should just error out.

 

Now, ignoring the code issues with the trackState, that looks correct.. The events and product both look like they are properly formatted to me... 

 

Do you have AEP Assurance installed in your apps, so that you can see the data going to Adobe as well as the post-processed values? This is the best way to try and debug what is happening.. 

 

You said that the other data in that call was coming through?

Avatar

Level 4

Here is the screenshot from AEP assurance

 

&& events = purchase

jaishal_0-1738349486920.png

 

For other events, we are passing : &&events = prodView and &&events =scCheckout . Looks that data is coming into Adobe. 

 

Does &&events = purchase fall into "Sales" Metric?

jaishal_1-1738349659224.png

 

Avatar

Community Advisor and Adobe Champion

Generally "purchase" is "Orders", however, this metric is renamable in your Report Suite:

 

Jennifer_Dungan_0-1738349935092.png

 

Avatar

Level 4

Yes looks like purchase is renamed as "Sales"

jaishal_0-1738350188113.png

 

Also a quick question, I see purchase event has participation "enabled" and other events has participation "disabled" . Which one is correct?

 

Avatar

Community Advisor and Adobe Champion

Ah, good, then yes, Sales is the metric.

 

The funny thing about "participation" in this context, is that it doesn't actually work in Workspace.. this is an old setting that was used in Reports and Analytics...  There are better ways to look at "Participation" attribution in Workspace itself.

 

So for example, your "purchase" event is made from a success page, but maybe you want to see all the Product Detail Pages that were viewed during the visit leading up to that purchase (i.e. what product details participated in driving that sale).

 

If you use your Sales metric, and use Product Detail Pages as your breakdown, they will show 0 sales... but if you change the attribution of sales (in workspace) to a participation model looking at the visit, you will now see values associated to each of those product detail pages...  i.e Product X will show 10 sales, while Product Y will show 7. They may not have been purchases, but they were at viewed in the session prior to the purchase being made.

 

Since I really don't think these settings do anything any more, you can probably leave them as is... if you want to be safe, I would reset them to the default "no participation"... just in case this causes some oddities in Data Exports, etc.

Avatar

Level 4

Hi @Jennifer_Dungan ,

 

To the above conversation we were having regarding passing &&products in a particular way in mobile apps, 

Currently the format we are using : 

&&products: ;CCMM42255:5G Infinite Premium;250;118.75

(Category;soccode:planname,quantity,price) But I am only able to see soccode:planname in the Adobe workspace 

Please see attached screenshot. Can you guide me if there is something wrong in the format.

jaishal_0-1761239148751.png

 

Avatar

Community Advisor and Adobe Champion

Hello again @jaishal, I hope you are well.

 

Maybe I am missing something, but it looks like you are getting the values?

 

  • You aren't passing a category (and also not trying to show it)
  • Your Product identifier is appearing (CCMM42255:5G Infinite Premium)
  • And I can see 1 Sale (or "Order" for people with the default name)

 

The 250 Quantity should come through as the Units metric, and the 118.75 should be shown in One_Time_Revenue metric (or "Revenue" again for people using the original naming).

 

If you add those two metrics, you should see them.

 

Is anything else missing?

 

Avatar

Level 4

ohh thank you so much for the information. But why are "Quantity" and "Price" is coming as  metric and not dimensions? I am just trying to understand the reasoning behind it. it is kind of difficult to create a view where we want to see cost and quantity of a particular product at the purchase

 

Avatar

Correct answer by
Community Advisor and Adobe Champion

In the Products List notation, those are standard metrics. Even in your screen shot above from January, that was in the Success Events configuration. Revenue and number of items being sold are traditionally stored as a metric, so that you can have a total number of "product X" sold in whatever period, and a total revenue from those sales... metrics are numbers, so they will add up across the orders and you can also run calculated metrics on them... 

 

https://experienceleague.adobe.com/en/docs/analytics/implementation/vars/page-vars/products 

 

If you want to be able to see these values as actual text dimension data (as in, you want to see a specific, locked in, textual value for each order), then you will need to create some Merchandising eVars to store the values as a dimension.

 

For example:

Jennifer_Dungan_0-1761242819119.png

 

You might want to keep the default "visit" expiry, or you may want it to only be part of the Sale hit, or maybe have a custom expiry.. it depends on your needs.

 

But you will definitely need to make it "Merchandising" and in Product Syntax.

 

 

Now, in your products string, you will need to add the new eVars:

 

";CCMM42255:5G Infinite Premium;250;118.75;;eVar97=250|eVar98=118.75"

 

Notice I have a double ;; in the string, this is intentional... this is the spot where custom events would be placed, if you had any... since you don't, we need to leave that there and empty.