【问题标题】:When and how often do you call ga('send', 'pageview') when using Enhanced Ecommerce with Google Analytics?在将增强型电子商务与 Google Analytics(分析)结合使用时,您何时以及多久调用一次 ga('send', 'pageview')?
【发布时间】:2014-06-30 01:58:35
【问题描述】:

我正在尝试将我们的网站迁移到 Universal Analytics 以及增强型电子商务服务。在使用 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}); 并指定我们在分析帐户中定义的步骤编号来跟踪客户的结账进度。看来我们还需要再次调用 send pageview 来发送此数据。我试图在单个页面视图中发送所有数据,但您似乎只能为每个页面视图设置一个操作 (ga('ec.setAction')),因此我们无法在单个页面中同时发送产品交易数据和结帐步骤数据看法。多次调用ga('send', 'pageview') 会在分析中记录多个页面浏览量,还是谷歌会检测到您简单地发送额外数据并且没有记录额外的页面浏览量?

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

【问题讨论】:

  • 您好,我遇到了同样的问题。你能告诉我你是怎么做到的吗?
  • 大家找到解决办法了吗?我在页面底部发送一个综合浏览量,它将记录我的addProduct 事件,但不会记录我的purchase 操作。

标签: javascript google-analytics


【解决方案1】:

每次您拨打ga('send', 'pageview') 时,都会向GA 发送一个新的综合浏览量。如果您只想发送更多数据,您还可以发送一个事件来避免双重浏览量跟踪。

【讨论】:

    【解决方案2】:

    看来您应该将事件发送为nonInteractive:

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

    这是从@Blexy这里采取并稍作修改的:

    Tracking catalog product impressions - Enhanced Ecommerce Google Analytics

    【讨论】:

    • 您可以输入适用的匹配 ec 操作,而不是“购买”
    • 那么你如何通过漏斗步骤发送“结帐”?像这样? ga('send', 'event', 'ecommerce', 'checkout', {'nonInteraction': true});
    • 您可能需要考虑迁移到增强型 ecom:developers.google.com/analytics/devguides/collection/…,因为看起来他们已经更清楚地定义了它应该如何工作。也就是说,您定义的事件似乎是可跟踪的。
    • 哈,我以为我用的是增强型ecom,我猜我糊涂了! :)
    【解决方案3】:

    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')
    

    【讨论】:

    • 你好 brendo 但 ga('send', 'event') 向我发送警告,因为我需要另外两个参数。你能解释一下你是如何实现的吗?谢谢
    【解决方案4】:

    我也有同样的问题。
    在触发 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>
    

    有更好的想法吗?

    【讨论】:

    • 看起来调用ga('send', 'event')会发送你设置的最后一个ec:setAction数据,所以发送你的初始页面视图,然后在每个ec:setAction之后调用ga('send', 'event')
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    • 2015-08-06
    相关资源
    最近更新 更多