2

我正在使用 Google 跟踪代码管理器并通过dataLayer. 一切正常。但是,我现在添加了一个 CTA(号召性用语),我想跟踪它的展示次数(有多个版本)。此 CTA 呈现为部分,因此在dataLayer构建时,它还不存在,我不知道最终会出现什么。

使用直接的 Google Analytics,您似乎可以通过以下方式手动跟踪展示:

ga('ec:addImpression', {
    // impression data
});

但是,这不适用于 GTM,因为ga在该场景中没有定义。根据 GTM 增强型电子商务文档,唯一的其他“选项”是根据页面浏览量通过 GTM 控制面板手动跟踪印象。同样,这是不可行的,因为展示数据并不总是相同的。

经过一番研究,我发现了延迟推送的第三种“选择” dataLayer。例如,您可以将其绑定到特定事件,然后在稍后发送该事件,而不是让 if 在 GTM 加载时触发。我想这会让我改变dataLayer这个部分,只要我确保事件在它被渲染之后才被发送。但是,这不仅看起来笨重且容易出错,而且还需要我大幅更改增强型电子商务跟踪代码的其余部分。

有没有办法像直接 GA 和 GTM 一样发送印象?

4

1 回答 1

2

我不太确定我是否理解这个问题(但我还是试试看)。这样做的方法是将新数据推送到数据层并具有自定义事件,即数据层内的关键字“事件”具有自定义值;然后,您可以使用带有您推送的值的“自定义事件”类型触发器:

dataLayer.push({
  "event":"mycustomevent",
  "impressionData": myData
})

EEC dataLayer 的规范在这里。然后,您发送一个启用了 EEC 的 GA 事件,并从示例中的印象数据变量中读取 EEC 数据。

您似乎原则上已经弄清楚了,但似乎认为这有点糟糕。不,不是,这是 Google 推荐的方式。

dataLayer 是一个对象数组,您可以使用 push 方法向其中添加新数据。这不是原生推送方法,而是 Google 的自定义实现。它会在每次推送时扫描添加的数据,如果在添加的对象中找到“事件”键,它会将页面上 dataLayer 变量中的数据添加到 GTM 内部数据模型,然后您可以在标签中使用它。

如果我理解正确,您的问题可能是,您似乎认为您必须一次性构建所有数据层。但是将其拆分为多个部分并根据需要通过 dataLayer.push 添加新数据是完全可以的。

于 2017-07-20T21:44:28.193 回答