【问题标题】:GTM datalayer.push sometime shows (not set) in GA reportGTM datalayer.push 有时会在 GA 报告中显示(未设置)
【发布时间】:2019-07-05 10:37:06
【问题描述】:

-- 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,而是带有 (not set)。

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

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

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

【问题讨论】:

  • 将数据发送到 Google Analytics(分析)的代码触发器是什么?
  • @kgrg 您好,我在我的问题中添加了触发设置,请看一下,谢谢~

标签: google-analytics google-tag-manager data-layers


【解决方案1】:

问题是,当您将相关数据 (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"%>』'
  });

也可以让您的代码保持原样,并在所有其他脚本都准备好的 Window Loaded 事件上发送数据,但这可能不如您明确发送数据的版本可靠,并且一起触发事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    相关资源
    最近更新 更多