如何为Google电子商务跟踪传递变量?

时间:2017-01-12 14:42:15

标签: javascript google-analytics

我正在尝试使用第三方预订系统为餐馆设置Google电子商务跟踪。在交易详细信息之后,我只能在感谢页面上的特定位置添加html或javascript(在本例中为Google Analytics代码)。

我的问题是如何将预订系统输出中的数据传递给Google电子商务跟踪变量?

预订系统的输出:

    <script type="text/javascript">
    var dataLayer = typeof dataLayer === "undefined" ? [] : dataLayer;

        dataLayer.push({
            "email": "exampled@example.com",
            "idRestaurant": "202072",
            "nbReservation": "",
            "nbPAX": "5",
            "date": "2017-01-13 18:30:00",
            "event": "booking",
            "idCampaignHash": "15271-59f",
            "caBrut": "10",
            "idResa": "75655429",
            "typePromo": "Enkel reservation"
        });
        var mediaLayer = [].concat(dataLayer);
        for(var i=0;i<mediaLayer.length;i++){
            if(mediaLayer[i]['event']&&mediaLayer[i]['event'].match(/^gtm\./) ){
                mediaLayer.splice(i, 1);
            }
        }
                        mediaLayer.push({
                "email": "example@example.com",
                "event": "nouveauLead"
            });
            dataLayer.push({
                "aboTypeLabel": "Offers",
                "event": "inscritNewsletter"
            });
            dataLayer.push({
                "aboTypeLabel": "Info",
                "event": "inscritNewsletter"
            });



                        dataLayer.push({
        'typeModule': "MRG"
    });

    var pageCategory = 'Thank_you_normal';
    dataLayer.push({
        'pageCategory': pageCategory
    });
</script>
<script type="text/javascript">
    var dataLayer = typeof dataLayer === "undefined" ? [] : dataLayer;
    dataLayer.push({
        'idRestaurant': "12345",
        "nameRestaurant": "Test Restaurant",
        "nameProvider": "",
        "idCampaignHash": "15271-59f"
    });
    dataLayer.push({
        'typeModule': "MRG"
    });
</script>

我的Javascript(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','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-11111-1', 'auto');
  ga('send', 'pageview');
  ga('require', 'ecommerce');

  ga('ecommerce:addTransaction', {
  'id': '[idResa]',        // Booking id
  'quantity': '[nbPAX]',   // Number of people.

typePromo
});
ga('ecommerce:addItem', {
  'id': '[idResa]',         // Booking id
  'name': '[typePromo]',    // Type of menu
});
ga('ecommerce:send');
</script>

2 个答案:

答案 0 :(得分:0)

看起来dataLayer是一个全局变量,因此您可以轻松访问存储在其中的数据:获取第一个元素dataLayer[0]或遍历元素并找到您需要的内容(通过检查是否{{ 1}}字段存在或等等)

<强> 已更新

以下是一些例子:

1从nbPAX数组

的第一项传递单个参数
dataLayer

2或者,如果您不确定第一项是否包含必要信息,您可以过滤项目并将信息发送给每个项目的Google Analytics(分析)

ga('ecommerce:addTransaction', { quantity : dataLayer[0].nbPAX, id : dataLayer[0].idResa })

ga('ecommerce:addItem', { id: dataLayer[0].idResa, name : dataLayer[0].typePromo });

ga('ecommerce:send');

答案 1 :(得分:0)

预订系统的输出实际上是Google跟踪代码管理器格式。这需要您进行一些设置。

有关详情,请参阅https://www.google.com/tagmanager/。您也可以将其与来自那里的分析结合起来。

在此之后,您可以将Tag Manager脚本添加到您的页面,并且您的标签应该被推送到Tag Manager。