我正在尝试使用第三方预订系统为餐馆设置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>
答案 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。