Expand my Community achievements bar.

Webinar: Adobe Customer Journey Analytics Product Innovations: A Quarterly Overview. Come learn for the Adobe Analytics Product team who will be covering AJO reporting, Graph-based Stitching, guided analysis for CJA, and more!
SOLVED

Strategy to track and implement analytics on a product listing page

Avatar

Level 5

Hi,

I am looking for inputs on what should be the strategy to implement and track analytics on a product listing page which has list of products with Buy/Add to cart button for each in-stock product, Compare two or more products, Buying options button if the product is out of stock, filters to narrow down the product list and sort options price low to high, high to low and customer reviews.

 

PS: I am new to analytics solution design and implementation. Any pointers or documentation which I can go through to get an understanding will be really helpful.

Topics

Topics help categorize Community content and increase your ability to discover relevant content.

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Adobe's Product dimension is very powerful, but also one of the more complex topics within the Adobe architecture:

 

https://experienceleague.adobe.com/docs/analytics/implementation/vars/page-vars/products.html?lang=e...

 

For each product passed, you can have specific merchandising events and evars stitched only to the relevant product...

 

 

So let's say you have a product list page, maybe you want to list ALL products on this page, with say a "product list view" custom event (event1), and maybe you want to track "in stock" or "out of stock" as a merchandising eVar (evar1)

 

The format for each product is:

category;product identifier;quantity;price;merchandising events;merchandising eVars

 

We don't need price or quantity at this stage, and let's just ignore category for the moment

 

You would want to configure an event for your "product list view" custom event (event1), and also set up an eVar as a merchandising eVar with "Product Notation"

 

 

Now you would pass all product on the page like:

s.events="event1";
s.products=";pro-1;;;;eVar1=in-stock,;pro-2;;;;eVar1=out-of-stock,;pro-3;;;;eVar1=in-stock"

 

This will result in each product counting "product list view" once (in context) but at a whole level, you will see 3 impressions in total (for three products being seen on the page)...
pro-1 and pro-3 will correlate to eVar1 with the value of "in-stock" and pro-2 will correlate to "out-of-stock"

IF you need to apply events separately to each product, then you can create a counter event and pass inside the products notation as (event2=1), but for this you shouldn't need it.... however, if you say have a product detail page with "a section of similar products, you might want a custom event for "main product detail page" (event2) vs an event for "similar items on detail page" (event3) - then pass ALL products in the list, but only apply event2 to the main item, and event3 to the other products (event2 and 3 will need to be configured as "numeric" events, as opposed to the default "counter" events):

s.events="event2,event3";
s.products=";pro-1;;;event2=1;eVar1=in-stock,;pro-2;;;event3=1;eVar1=out-of-stock,;pro-3;;;event3=1;eVar1=in-stock"

 

 

Now, on the compare page, you can do the same, passing the products that are being compared, but instead of event1, you would create a new event2 "product compare" (changing all instances above from event1 to event2) - you may or may not need to know in-stock vs out-of-stock in this context, that is up to you... maybe there are other things you want to track that would be passed in their own merchandising eVars.

 

 

When adding products to the cart, you can do something like:

s.events="scAdd";
s.products=";pro-1;;;;eVarX=something|eVarY=something-else";

 

Odds are products will be added one at a time, so only one will be in each call (unless you have an add all to cart, which is possible)... The "scAdd" is a reserved "add to cart" events.

 

There is also a start checkout event that you can use (scCheckout), and on purchase success, you can use the "purchase" event, and now you can make use of the quantity and price areas of the products to pass in the values.... the price should be the price of each product... Adobe should take the quantity purchases and multiply it by the price to add that total to the revenue metric.

View solution in original post

7 Replies

Avatar

Correct answer by
Community Advisor

Adobe's Product dimension is very powerful, but also one of the more complex topics within the Adobe architecture:

 

https://experienceleague.adobe.com/docs/analytics/implementation/vars/page-vars/products.html?lang=e...

 

For each product passed, you can have specific merchandising events and evars stitched only to the relevant product...

 

 

So let's say you have a product list page, maybe you want to list ALL products on this page, with say a "product list view" custom event (event1), and maybe you want to track "in stock" or "out of stock" as a merchandising eVar (evar1)

 

The format for each product is:

category;product identifier;quantity;price;merchandising events;merchandising eVars

 

We don't need price or quantity at this stage, and let's just ignore category for the moment

 

You would want to configure an event for your "product list view" custom event (event1), and also set up an eVar as a merchandising eVar with "Product Notation"

 

 

Now you would pass all product on the page like:

s.events="event1";
s.products=";pro-1;;;;eVar1=in-stock,;pro-2;;;;eVar1=out-of-stock,;pro-3;;;;eVar1=in-stock"

 

This will result in each product counting "product list view" once (in context) but at a whole level, you will see 3 impressions in total (for three products being seen on the page)...
pro-1 and pro-3 will correlate to eVar1 with the value of "in-stock" and pro-2 will correlate to "out-of-stock"

IF you need to apply events separately to each product, then you can create a counter event and pass inside the products notation as (event2=1), but for this you shouldn't need it.... however, if you say have a product detail page with "a section of similar products, you might want a custom event for "main product detail page" (event2) vs an event for "similar items on detail page" (event3) - then pass ALL products in the list, but only apply event2 to the main item, and event3 to the other products (event2 and 3 will need to be configured as "numeric" events, as opposed to the default "counter" events):

s.events="event2,event3";
s.products=";pro-1;;;event2=1;eVar1=in-stock,;pro-2;;;event3=1;eVar1=out-of-stock,;pro-3;;;event3=1;eVar1=in-stock"

 

 

Now, on the compare page, you can do the same, passing the products that are being compared, but instead of event1, you would create a new event2 "product compare" (changing all instances above from event1 to event2) - you may or may not need to know in-stock vs out-of-stock in this context, that is up to you... maybe there are other things you want to track that would be passed in their own merchandising eVars.

 

 

When adding products to the cart, you can do something like:

s.events="scAdd";
s.products=";pro-1;;;;eVarX=something|eVarY=something-else";

 

Odds are products will be added one at a time, so only one will be in each call (unless you have an add all to cart, which is possible)... The "scAdd" is a reserved "add to cart" events.

 

There is also a start checkout event that you can use (scCheckout), and on purchase success, you can use the "purchase" event, and now you can make use of the quantity and price areas of the products to pass in the values.... the price should be the price of each product... Adobe should take the quantity purchases and multiply it by the price to add that total to the revenue metric.

Avatar

Level 5

Hi @Jennifer_Dungan ,

Thanks for the detailed response, this really helps. I will go through to understand and implement.

Thanks

Srikanth

Avatar

Community Advisor

Good Luck...

 

The best thing you can do is try things in a QA or Dev suite.... try different combinations... look at how the data presents, test building reports, etc.... 

 

By using different events, you can use Product as the breakdown, then each of your events (either global ones like scAdd, purchase, event1 as above), and your merchandising events (event2 and event3 as above) as columns in your table...

 

You can breakdown products with your merchandising eVars.

 

This is how I started with products... playing with different scenarios and data and seeing what worked and what didn't.

Avatar

Level 5

Hi @Jennifer_Dungan ,

We have implemented your suggestions, I have a follow up question on one scenario where user selected filters(checkboxes) are populated in a prop which is list enabled with delimiter comma(,). For example filter1,filter2,filter3.... When I am trying to create a report in Analytics Workspace, using this list prop as a dimension, I still see comma-separated values. Our aim is to find out which individual filter has more hits or been selected most of the times.

Can you please help here.

 

Thanks in advance

Srikanth

Avatar

Community Advisor

Oops, sorry @srikanthpogula I missed this...

 

If you are still seeing the values in your prop like this:

"filter1,filter2,filter3"

it means that you didn't enable "list" mode, or didn't set the proper delimiter on your prop in the Traffic Variable configuration:

 

Jennifer_Dungan_0-1702253008487.png

 

Avatar

Level 2

Can we skip quantity and price for product string on all other events except purchase?

Avatar

Community Advisor

Passing Price and Quantity on anything other than purchase events will be ignored.... Price and Quantity are used to calculate Revenue, and revenue is the money you actually make... viewing a product, adding it to a cart, viewing that cart, etc is not making you any money yet... therefore, there is no point in sending it, and Adobe will protect you from inflating revenue if you do send it.