【问题标题】:Google Analytics AJAX e-commerce trackingGoogle Analytics AJAX 电子商务跟踪
【发布时间】:2014-09-17 03:26:37
【问题描述】:

假设我有一个 index.html,它启动 Universal Google Analytics 跟踪代码:

<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-XXXXXXX-X', 'auto');
ga('send', 'pageview');
</script>

稍后我加载了一个通过 AJAX 插入的 HTML 文档。我可以将用于电子商务跟踪的 javascript 代码放在 HTML 中的脚本标记中,然后通过 AJAX 插入该标记,而无需首先再次启动谷歌分析?所以我会有这样的东西:

通过 ajax 插入的 HTML:

<h2>Thanks for ordering.</h2>
<script>
ga('require', 'ecommerce');
ga('ecommerce:addTransaction', {
    'id': '1',
    'revenue': '100',
    'shipping': '1'
});
ga('ecommerce:addItem', {
    'id': '1',
    'name': 'Test item name',
    'sku': 'ABC123',
    'category': 'test category',
    'price': '100',
    'quantity': '1'
});
ga('ecommerce:send');
</script>

这会正确跟踪吗?如果访问者快速关闭页面或导航离开,可能是 javascript 没有执行?

非常感谢有关我应该如何解决此问题的更多提示。

提前致谢!

【问题讨论】:

    标签: javascript ajax asynchronous google-analytics e-commerce


    【解决方案1】:

    在 ajax 脚本中创建电子商务代码并在原始页面中发送综合浏览量。

    它有效,但可能有问题,我只是没有注意到。 :)

    总体看起来像这样:


    generate_ecommerce_data.php:
    <?
    //logic to create following data
    ga('ec:addProduct', {
      'id': '{$product['sku_id']}',
      'name': '{$product['title']}',
      'brand': '{$product['brand']}',
      'category': '{$product['category']}',
      'price': '$price',
      'quantity': $quantity
    });
    
    ga('ec:setAction', 'purchase', {
      'id': '$transaction_code',
      'affiliation': 'NameName',
      'revenue': '$total_sum',
      'shipping': '$delivery_cost'
    });
    

    在调用页面上:

    <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','//google-analytics.com/analytics.js','ga');
    
        ga('create', 'UA-UANUMBER', 'NameName');
        ga('require', 'ec');
    
    $('#element').click(function(){
        $.ajax({
            type: 'POST',
            url: '/ajax/generate_ecommerce_data.php',
            success: function(response) {
                $('#container').html('<script>' + response + '<\/script>');
                ga('send', 'pageview'); 
                $('#container').html('');
            },
            error: function(err) {
                console.log(err.status);
            }
        });
    });
    </script>
    

    附:
    看起来我超出了消息限制,需要修剪 ajax 代码,但你可以理解。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-01
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-11
      • 2012-01-24
      • 1970-01-01
      相关资源
      最近更新 更多