-2019/07/08编辑:添加事件变量,触发器设置-
-原始消息-
我已经在结帐页面中设置了一些数据层,例如:
<script type="text/javascript">
dataLayer.push
({
'event': 'checkout',
'ecommerce': {
'purchase':{
'actionField':
{
'id': "<%=order.ID%>",
"affiliation": "Online Store",
"revenue": "<%=order.price%>"
}
}
}
});
$(window).load(function()
{
/**
* checkout data for GTM
*/
window.dataLayer = window.dataLayer || []
dataLayer.push
({
"transactionId":"<%=order.ID%>",
"transactionAffiliation":"My Online store",
"transactionTotal":"<%=order.price%>",
"transactionTax":"0",
"transactionShipping":"0",
"transactionProducts":
[
//some code about order detail ...
]
});
});
</script>
<script type="text/javascript">
dataLayer.push({
'my_event':'Sale event, purchased in <%=order.date%>, price: <%=order.price%>, orderID: <%=order.ID%>, member: <%=(order.isNew)?"New register":"old member"%>』'
});
</script>
并在GTM上设置标签以捕获标签“ my_event”。
但是,在GA的事件报告中,很多事件不是带有有效的Label,而是带有(未设置)。
例如,我在Google Analytics(分析)报告中获得了23个“ my_event”,但标签 Sale事件(是在...购买的)中只有3个事件,是在(未设置)组。
所以我的设置在某个时候确实有用,但是大多数时候却没有。
如何跟踪和解决此问题?
答案 0 :(得分:0)
问题是,当您将相关数据(my_event
)推入dataLayer时,您没有在其中添加实际事件,这可能会触发适当的标记来运行并发送数据。最有可能发生的是,如果my_event在标记运行之前被推送到dataLayer中,则它将被发送。因此,根据您的期望结果,可能有几种解决方案。
例如,您可以合并两个dataLayer调用,特别是如果它们相关,并且此时数据可用:
dataLayer.push
({
'event': 'checkout',
'ecommerce': {
'purchase':{
'actionField':
{
'id': "<%=order.ID%>",
"affiliation": "Online Store",
"revenue": "<%=order.price%>"
}
}
},
'my_event':'Sale event, purchased in <%=order.date%>, price: <%=order.price%>, orderID: <%=order.ID%>, member: <%=(order.isNew)?"New register":"old member"%>』'
});
另一种解决方案是使用my_event变量指定事件,并设置触发触发器以匹配该事件名称,例如:
dataLayer.push({
'event':'send_my_event',
'my_event':'Sale event, purchased in <%=order.date%>, price: <%=order.price%>, orderID: <%=order.ID%>, member: <%=(order.isNew)?"New register":"old member"%>』'
});
也可以将代码保持原样,并在“所有其他脚本已准备就绪”的“窗口加载”事件中发送数据,但这可能不如版本中显式发送数据和版本可靠。一起触发事件。