在设置数据层并且 GTM.js 脚本具有 运行 后推送到增强型电子商务
Push to Enhanced Ecommerce after dataLayer has already been set and GTM.js script has run
我正在使用 Google 跟踪代码管理器并通过 dataLayer
实施增强型电子商务跟踪。一切正常。但是,我现在添加了一个 CTA(号召性用语),我想跟踪它的印象(有多个版本)。此 CTA 呈现为部分,因此在构建 dataLayer
时,它还不存在,我不知道最终会出现什么。
使用直接 Google 分析,您似乎可以通过以下方式手动跟踪印象:
ga('ec:addImpression', {
// impression data
});
但是,这不适用于 GTM,因为 ga
未在该场景中定义。根据 GTM 增强型电子商务文档,唯一的其他 "option" 是通过 GTM 控制面板基于页面浏览量手动跟踪印象。同样,这也不可行,因为印象数据并不总是相同。
经过一番研究,我在延迟推送dataLayer
中发现了第三个"option"。例如,不是让 if 在 GTM 加载时触发,而是可以将它绑定到特定事件,然后在稍后发送该事件。我想这会让我在此部分中更改 dataLayer
,只要我确保事件在呈现后很久才发送。然而,这不仅看起来笨拙且容易出错,而且还需要我大幅更改其余的增强型电子商务跟踪代码。
有没有办法像使用直接 GA 和 GTM 那样发送印象?
我不太确定我是否理解这个问题(但无论如何我都会去)。这样做的方法是将新数据推送到数据层并有一个自定义事件,即数据层中的关键字 "event" 具有自定义值;然后,您可以使用 "custom event" 类型的触发器和您推送的值:
dataLayer.push({
"event":"mycustomevent",
"impressionData": myData
})
Specifications for EEC dataLayer are here。然后发送启用了 EEC 的 GA 事件,并从示例中的 impressionData 变量读取 EEC 数据。
您似乎已经从原理上解决了这一点,但似乎认为这在某种程度上是不好的。不,不是,这是 Google 推荐的方式。
dataLayer是一个对象数组,可以通过push方法向其中添加新的数据。这不是本机推送方法,而是 Google 的自定义实现。它在每次推送时扫描添加的数据,如果它在添加的对象中找到 "event" 键,它会将页面上 dataLayer 变量中的数据添加到 GTM 的内部数据模型中,然后您可以在标签中使用它.
你的问题可能是,如果我理解正确的话,你似乎认为你必须一次构建所有的数据层。但是将它分成多个部分并根据需要通过 dataLayer.push 添加新数据是完全没问题的。
我正在使用 Google 跟踪代码管理器并通过 dataLayer
实施增强型电子商务跟踪。一切正常。但是,我现在添加了一个 CTA(号召性用语),我想跟踪它的印象(有多个版本)。此 CTA 呈现为部分,因此在构建 dataLayer
时,它还不存在,我不知道最终会出现什么。
使用直接 Google 分析,您似乎可以通过以下方式手动跟踪印象:
ga('ec:addImpression', {
// impression data
});
但是,这不适用于 GTM,因为 ga
未在该场景中定义。根据 GTM 增强型电子商务文档,唯一的其他 "option" 是通过 GTM 控制面板基于页面浏览量手动跟踪印象。同样,这也不可行,因为印象数据并不总是相同。
经过一番研究,我在延迟推送dataLayer
中发现了第三个"option"。例如,不是让 if 在 GTM 加载时触发,而是可以将它绑定到特定事件,然后在稍后发送该事件。我想这会让我在此部分中更改 dataLayer
,只要我确保事件在呈现后很久才发送。然而,这不仅看起来笨拙且容易出错,而且还需要我大幅更改其余的增强型电子商务跟踪代码。
有没有办法像使用直接 GA 和 GTM 那样发送印象?
我不太确定我是否理解这个问题(但无论如何我都会去)。这样做的方法是将新数据推送到数据层并有一个自定义事件,即数据层中的关键字 "event" 具有自定义值;然后,您可以使用 "custom event" 类型的触发器和您推送的值:
dataLayer.push({
"event":"mycustomevent",
"impressionData": myData
})
Specifications for EEC dataLayer are here。然后发送启用了 EEC 的 GA 事件,并从示例中的 impressionData 变量读取 EEC 数据。
您似乎已经从原理上解决了这一点,但似乎认为这在某种程度上是不好的。不,不是,这是 Google 推荐的方式。
dataLayer是一个对象数组,可以通过push方法向其中添加新的数据。这不是本机推送方法,而是 Google 的自定义实现。它在每次推送时扫描添加的数据,如果它在添加的对象中找到 "event" 键,它会将页面上 dataLayer 变量中的数据添加到 GTM 的内部数据模型中,然后您可以在标签中使用它.
你的问题可能是,如果我理解正确的话,你似乎认为你必须一次构建所有的数据层。但是将它分成多个部分并根据需要通过 dataLayer.push 添加新数据是完全没问题的。