We have a website that uses enhanced analytics. On the page where a list of products is viewed the tracking code looks like this:
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga.l = +new Date;
ga('create', 'xxxxxx', 'auto', {
anonymizeIp: true
});
ga('require', 'ec');
ga('set', 'currencyCode', 'EUR');
ga('ec:addImpression', {
'id': '5',
'name': 'Lorem Ipsum',
'category': 'Lorem',
'list': 'lorem-list',
'dimension1': '15',
'dimension2': 'Lorem'
});
ga('ec:addImpression', {
'id': '6',
'name': 'Lorem Ipsum',
'category': 'Lorem',
'list': 'lorem-list',
'dimension1': '16',
'dimension2': 'Lorem'
});
ga('ec:addImpression', {
'id': '7',
'name': 'Lorem Ipsum',
'category': 'Lorem',
'list': 'lorem-list',
'dimension1': '17',
'dimension2': 'Lorem'
});
ga('send', 'pageview');
The impressions are measured correctly (id, name, category, list etc) but the custom dimensions (dimension1 and dimension2) seem to be null for all measurements (been gathering for 3 weeks now).
As far as I can see the code is exactly as stated in the documentation: https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#measuring-activities
What am I overseeing?
Update: As requested the (anonymised) debug log using chrome GA:debug where it seems the dimensions are provided correctly:
analytics_debug.js:10 Running analytics_debug.js. This script is intended for testing and debugging only.
log @ analytics_debug.js:10
J @ analytics_debug.js:9
(anonymous) @ analytics_debug.js:76
(anonymous) @ analytics_debug.js:76
analytics_debug.js:10 Initializing Google Analytics.
analytics_debug.js:10 Loading resource for plugin: ec
analytics_debug.js:10 Loading script: "https://www.google-analytics.com/plugins/ua/ec.js"
analytics_debug.js:10 Running command: ga("create", "UA-xxx-1", "auto", {anonymizeIp: true})
analytics_debug.js:10 Creating new tracker: t0
analytics_debug.js:10 Auto cookieDomain found: "myclient.nl"
analytics_debug.js:10 This field cannot be set in a create method. Please use ga("set", "anonymizeIp", true);
log @ analytics_debug.js:10
J @ analytics_debug.js:9
Td @ analytics_debug.js:13
ad @ analytics_debug.js:51
Z.create @ analytics_debug.js:69
Y.b.(anonymous function) @ analytics_debug.js:38
jf.R @ analytics_debug.js:68
jf.H @ analytics_debug.js:66
Z.P @ analytics_debug.js:73
cd @ analytics_debug.js:59
A @ analytics_debug.js:59
(anonymous) @ analytics_debug.js:76
(anonymous) @ analytics_debug.js:76
analytics_debug.js:10 Running command: ga("require", "ec")
analytics_debug.js:10 Waiting on require of "ec" to be fulfilled.
analytics_debug.js:10 Registered new plugin: ga(provide, "render", Function)
analytics_debug.js:10 Running command: ga("require", "ec")
analytics_debug.js:10 Waiting on require of "ec" to be fulfilled.
analytics_debug.js:10 Executing Google Analytics commands.
analytics_debug.js:10 Registered new plugin: ga(provide, "ec", Function)
analytics_debug.js:10 Running command: ga("require", "ec")
analytics_debug.js:10 Plugin "ec" intialized on tracker "t0".
analytics_debug.js:10 Running command: ga("set", "currencyCode", "EUR")
analytics_debug.js:10 Running command: ga("ec:addImpression", {id: "1", name: "xxxx", category: "xxx", list: "xxxx", dimension1: "7", dimension2: "xxx"})
analytics_debug.js:10 Running command: ga("ec:addImpression", {id: "2", name: "xxxx", category: "xxx", list: "xxxx", dimension1: "7", dimension2: "xxx"})
analytics_debug.js:10 Running command: ga("ec:addImpression", {id: "3", name: "xxxx", category: "xxx", list: "xxxx", dimension1: "7", dimension2: "xxx"})
analytics_debug.js:10 Running command: ga("ec:addImpression", {id: "7", name: "xxxx", category: "xxx", list: "xxxx", dimension1: "7", dimension2: "xxx"})
analytics_debug.js:10 Running command: ga("ec:addImpression", {id: "8", name: "xxxx", category: "xxx", list: "xxxx", dimension1: "7", dimension2: "xxx"})
analytics_debug.js:10 Running command: ga("send", "pageview")
analytics_debug.js:10
Sent beacon:
analytics_debug.js:10 _j1 (&jid)
analytics_debug.js:10 adSenseId (&a) xxxxxxxxx
analytics_debug.js:10 apiVersion (&v) 1
analytics_debug.js:10 clientId (&cid) xxxxxxxxx
analytics_debug.js:10 currencyCode (&cu) EUR
analytics_debug.js:10 ec:impression list "1" name (&il1nm) xxx
analytics_debug.js:10 ec:impression list "1" product "1" category (&il1pi1ca) xxx
analytics_debug.js:10 ec:impression list "1" product "1" dimension "1" (&il1pi1cd1) 7
analytics_debug.js:10 ec:impression list "1" product "1" dimension "2" (&il1pi1cd2) xxx
analytics_debug.js:10 ec:impression list "1" product "1" id (&il1pi1id) 1
analytics_debug.js:10 ec:impression list "1" product "1" name (&il1pi1nm) xxx
analytics_debug.js:10 ec:impression list "1" product "2" category (&il1pi2ca) xxx
analytics_debug.js:10 ec:impression list "1" product "2" dimension "1" (&il1pi2cd1) 7
analytics_debug.js:10 ec:impression list "1" product "2" dimension "2" (&il1pi2cd2) xxx
analytics_debug.js:10 ec:impression list "1" product "2" id (&il1pi2id) 2
analytics_debug.js:10 ec:impression list "1" product "2" name (&il1pi2nm) xxx
analytics_debug.js:10 ec:impression list "1" product "3" category (&il1pi3ca) xxx
analytics_debug.js:10 ec:impression list "1" product "3" dimension "1" (&il1pi3cd1) 7
analytics_debug.js:10 ec:impression list "1" product "3" dimension "2" (&il1pi3cd2) xxx
analytics_debug.js:10 ec:impression list "1" product "3" id (&il1pi3id) 3
analytics_debug.js:10 ec:impression list "1" product "3" name (&il1pi3nm) xxx
analytics_debug.js:10 ec:impression list "1" product "4" category (&il1pi4ca) xxx
analytics_debug.js:10 ec:impression list "1" product "4" dimension "1" (&il1pi4cd1) 7
analytics_debug.js:10 ec:impression list "1" product "4" dimension "2" (&il1pi4cd2) xxx
analytics_debug.js:10 ec:impression list "1" product "4" id (&il1pi4id) 7
analytics_debug.js:10 ec:impression list "1" product "4" name (&il1pi4nm) xxx
analytics_debug.js:10 ec:impression list "1" product "5" category (&il1pi5ca) xxx
analytics_debug.js:10 ec:impression list "1" product "5" dimension "1" (&il1pi5cd1) 7
analytics_debug.js:10 ec:impression list "1" product "5" dimension "2" (&il1pi5cd2) xxx
analytics_debug.js:10 ec:impression list "1" product "5" id (&il1pi5id) 8
analytics_debug.js:10 ec:impression list "1" product "5" name (&il1pi5nm) xxx
analytics_debug.js:10 encoding (&de) UTF-8
analytics_debug.js:10 hitType (&t) pageview
analytics_debug.js:10 javaEnabled (&je) 0
analytics_debug.js:10 language (&ul) en-us
analytics_debug.js:10 location (&dl) https://www.myclient.nl/xxxx
analytics_debug.js:10 screenColors (&sd) 24-bit
analytics_debug.js:10 screenResolution (&sr) 1680x1050
analytics_debug.js:10 title (&dt) xxxxx - myclient
analytics_debug.js:10 trackingId (&tid) UA-xxxx-1
analytics_debug.js:10 viewportSize (&vp) 1610x494
My assumption is that there are two problems.
1) You are using product scoped custom dimensions.
As your custom dimensions are product scoped, it is important to note that these dimensions do not attribute to the ID through all stages of Enhanced Ecommerce. This means that the custom dimension will only have data relevant to the hit in which it is sent. In this case, the only metric you will be able to retrieve is 'Impressions'. If you want to view this custom dimensions with other relevant metrics, then you need to include it in each Enhanced Ecommerce hit.
Link for more Enhanced Ecommerce attribution info: https://support.google.com/analytics/answer/6014841?hl=en#product_attribution
Which leads us to:
2) You might be using the wrong metrics with your custom dimensions.
Because these dimensions are only relevant at the point of which they are sent, and given the example you have provided, the only report which can be created is:
Dimensions:
Dimension 1, Dimension 2
Metrics:
Impressions
In the provided custom report example (with author/pageviews), the metric being used is pageviews. As your dimensions are not hit level dimensions, sent along with the page view hit, there is no 'pageview' metrics available for these custom dimensions, leading to why they are empty.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With