0

-- 2019/07/08 编辑:添加事件变量,触发器设置 --

  1. 我设置了一个名为 {{SP_sale_event}} 的 DataLayer 变量来获取“my_event”,并设置为版本 2。
  2. 触发器是当页面进入“结帐”页面时,购买流程结束,也就是“谢谢”页面。
  3. 设置通用 GA 标签,将标签设置为 {{SP_sale_event}} 。

- 原始信息 -

我在结帐页面中设置了一些数据层,例如:

<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,而是带有(未设置)。

例如,我在 GA 报告中得到 23 个“my_event”,但标签销售事件中只有 3 个事件,在 ... 中购买,其他 20 个事件被收集在一个(未设置)组中。

所以我的设置有时确实有效,但大多数时候都没有。

我该如何追踪和解决这个问题?

4

1 回答 1

0

问题是,当您将相关数据my_event(最有可能发生的情况是,如果 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"%>』'
  });

保留您的代码原样,并在所有其他脚本都准备好的窗口加载事件上发送数据也可能有效,但这可能不像版本那样可靠,您将数据和触发事件一起显式发送.

于 2019-07-08T13:35:14.347 回答