Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Tracking catalog product impressions - Enhanced Ecommerce Google Analytics

I'm trying to implement product impressions on a ecommerce catalog page using google analytics enhanced ecommerce tracking.

Following the specs one should implement it like this:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addImpression', {
  'id': 'P12345',                   // Product details are provided in an impressionFieldObject.
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel/T-Shirts',
  'brand': 'Google',
  'variant': 'black',
  'list': 'Search Results',
  'position': 1                     // 'position' indicates the product position in the list.
});

ga('ec:addImpression', {
  'id': 'P67890',
  'name': 'YouTube Organic T-Shirt',
  'type': 'view',
  'category': 'Apparel/T-Shirts',
  'brand': , 'YouTube',
  'variant': 'gray',
  'list': 'Search Results',
  'position': 2
});

ga('send', 'pageview');              // Send product impressions with initial pageview.

Although the specs show a track pageview event. In order to send REAL impressions I wanted to trigger the beacon once the user scrolled down. To do that I've triggered the event through a "lazy loader" which loads gradually the images on the catalog using the event 'ga(send, impression)' but it won't work and if I do that with additional pageviews events I would be corrupting my pageviews metric on GA.

Does anyone have ideas on how to solve that?

like image 712
cmotta Avatar asked Aug 05 '14 13:08

cmotta


1 Answers

From the Enhanced Ecommerce docs:

Note: Ecommerce data can only be sent with an existing hit, for example a pageview or event. If you use ecommerce commands but do not send any hits, or the hit is sent before the ecommerce command then the ecommerce data will not be sent.

Send it with a non-interactive event instead:

ga('send', 'event', 'catalog', 'impression', {'nonInteraction': true});

like image 188
Blexy Avatar answered Nov 15 '22 14:11

Blexy