当你使用谷歌分析增强电子商务时,你何时以及多久调用ga('send', 'pageview

When and how often do you call ga('send', 'pageview') when using Enhanced Ecommerce with Google Analytics?

本文关键字:调用 ga pageview send 谷歌 增强 何时 电子商务 当你      更新时间:2023-09-26

我正在尝试将我们的网站迁移到通用分析以及增强的电子商务服务。在使用GA调试器进行了一些实验之后,似乎必须在调用ga('ec:addProduct')ga('ec:setAction')方法之后调用ga('send', 'pageview')才能实际发送数据。浏览文档时(https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce)有些例子显示他们调用ga('send', 'pageview')两次,一次在开始,第二次在设置产品数据后,而在其他例子中,ga('send', 'pageview')只在最后出现。

ga('create', 'UA-XXXXX-Y');
ga('send', 'pageview'); /*FIRST PAGE VIEW CALLED HERE */
ga('require', 'ec', 'ec.js');
ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black'
  'price': '29.20',
  'quantity': 1
});
// Transaction level information is provided via an actionFieldObject.
ga('ec:setAction', 'purchase', {
  'id': 'T12345',
  'affiliation': 'Google Store - Online',
  'revenue': '37.39',
  'tax': '2.85',
  'shipping': '5.34',
  'coupon': 'SUMMER2013'    // User added a coupon at checkout.
});
ga('send', 'pageview');     // Send transaction data with initial pageview. /*BUT WE ALREADY CALLED IT AT THE TOP */

上面的代码会导致页面视图被记录两次吗?

我们还希望通过使用ga('ec:setAction', 'checkout', {'step' : step});并指定我们在分析帐户中定义的步骤号来跟踪客户的结帐进度。看来我们需要再次调用发送页面浏览量发送此数据为好。我试图在单个页面视图中发送所有数据,但似乎您只能在每个页面视图中设置一个操作(ga('ec.setAction')),因此我们无法在单个页面视图中同时发送产品交易数据以及结帐步骤数据。将调用ga('send', 'pageview')多次记录多个页面浏览量在分析或谷歌检测到,你简单地发送额外的数据,不记录额外的页面浏览量?

我发现,当使用正常的电子商务跟踪时,您可以使用ga('ecommerce:send');,它们是否等同于增强的电子商务跟踪?

每次调用ga('send', 'pageview'),都会向GA发送一个新的页面浏览量。如果你只是想发送更多的数据,你也可以发送一个事件,以避免双重页面浏览量跟踪。

看起来你应该发送事件作为nonInteractive:

ga('send', 'event', 'ecommerce', 'purchase', {'nonInteraction': true});

这是从@Blexy那里取来并稍微修改的

跟踪目录产品印象-增强的电子商务谷歌分析

Google在他们的示例中建议这样做,但是,我必须将此代码分散到页面中:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');
ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black'
});
ga('ec:setAction', 'detail');
ga('send', 'pageview');  

我用以下代码替换了上面的代码:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');
ga('send', 'pageview');  
ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black'
});
ga('ec:setAction', 'detail');
ga('send', 'event')

我也有同样的问题。
在触发ec事件之前,需要在每个页面上加载analytics.js代码(包括跟踪器引用)。因此,如果你在每个页面上触发分析标准像素并触发一些额外的事件你可能会重复计算页面浏览量加上你的跳出率计算不正确

一个解决方案可能是只在每个页面上启动"正常"分析页面代码,除了那些您想要丰富信息的页面。

<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXX-Y', 'auto');  // Replace with your property ID.
ga('require', 'ec');
ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black'
});
ga('ec:setAction', 'detail');
ga('send', 'pageview'); 
</script>

有更好的主意吗?