0

当我的页面显示时,我将一些数据推送到 Google Tag Manager (GTM) dataLayer:

dataLayer.push({
    event: "MY_EXPERIMENT", 
    variant: "A",
    result: "FORM_DISPLAYED"
});

提交表单后,我推送了一些新数据:

dataLayer.push({
    event: "MY_EXPERIMENT", 
    variant: "A",
    result: "FORM_SUBMITTED"
});

我在 GTM 中创建了 dataLayer 变量,并将这些变量插入到 GTM 中我的标签的类别/操作/标签字段中。其中一个变量是这样设置的:

该标签由 URL 路径触发,在预览模式下有效。

但是,当我在 Google Analytics 的实时仪表板中查找事件时,类别/标签/事件列中仅显示“未定义”。在我看来,变量设置不正确,但我已经查看了所有内容,看起来还不错。

我究竟做错了什么?

4

2 回答 2

1

如果没有任何屏幕截图或更多详细信息,很难判断,但最有可能发生的情况是您的代码触发得太早了。您说 GA 事件标签是基于 URL 路径触发的。这很可能意味着您All Pages在 GTM 中使用了带有可选过滤器的触发器,以仅在特定页面上触发。但是,您很可能只在 GTM 容器代码之后执行那些 dataLayer 推送。这意味着在标签触发时,那些 dataLayer 推送尚未执行,这就是您获取undefined变量值的原因。

要解决此问题,您应该将 GA 事件代码的触发器从All Pages更改为Custom Event. 在您的情况下,自定义事件名称将是MY_EXPERIMENT.

于 2017-09-05T05:17:37.220 回答
1

我想通了。我没有在 GTM 的事件标签中选中更多设置 -> 电子商务下的“使用数据层”复选框。很难找到该复选框,而且我还没有在任何教程中看到它。但这解决了我的问题!

抱歉没有截图。

于 2017-09-05T13:15:16.080 回答