我有一个带有iframe的弹出窗口,用于加载产品列表(例如,subscribe.html)。在subscribe.html模板中,我检查是否在iframe中打开了页面,然后将产品展示次数发送到父级dataLayer。这是代码:
<script>
var data = {
ecommerce: {
currencyCode: 'GBP',
impressions: [{
id: 'product_1',
name: 'product 1 name',
list: window.top === window ? 'Traditional' : 'Light Box',
position: 0,
price: 10
}]
}
};
(window.top === window ? window : window.parent).dataLayer.push(data);
</script>
但是,当弹出窗口打开时,dataLayer中的数据不会发送到GA。 我的Universal Analytics代码设置如下:
Track Type: page view
Firing triggers: all pages
提前致谢。
答案 0 :(得分:0)
这看起来只有在主页面上的网页浏览已经执行后才推送数据(并且您需要通过互动点击来发送电子商务数据)。我建议您为数据添加自定义事件,并将其用于触发器,该触发器会在附加电子商务数据的情况下触发Google Analytics事件。
答案 1 :(得分:0)
iframe是不同的,单独的页面,并需要自己的GTM容器。如果它们位于不同的域上,那将成为一个真正令人头痛的问题(http://www.simoahava.com/analytics/iframe-cross-domain-tracking-in-google-tag-manager/),但除此之外,您应该能够通过在iframe中放置一个Google跟踪代码管理器容器来轻松地做到这一点。
但是,您必须留意帧内容器可能抛出的任何额外标签。例如,如果您使用与常规站点相同的容器,则可能会将页面视图标记作为默认值;你可能想告诉它不要在iframe中激活,以免你重复计算人数。