如果我创建了一个在GTM中的“页面浏览”中触发的标记,我可以在标记被触发后将数据推送到此标记吗?
This is the event type I'm using (page view)
<script>
window.dataLayer = window.dataLayer || []; //dataLayer object is instantiated
</script>
<script>
var data = {page data, user data etc.}
dataLayer.push(data);
</script>
<script>
GoogleTagManager container code
</script>
// Will dataLayer.push(moreData) get caputured in the page view event?
我的理解是使用dataLayer.push将更新事件上的dataLayer,但是当页面视图事件在页面视图上触发时,它意味着只有在中捕获GTM容器代码之前的dataLayer 中的信息这个事件。
这是正确的,还是可以使用dataLayer.push更新网页浏览信息?
答案 0 :(得分:0)
您可以随时使用其他触发器,例如gtm.dom
或gtm.load
来读取您在触发Pageview事件后推送到dataLayer的更多信息。但我总是建议您将事件与任何其他数据一起推送并使用该事件来触发您的标记,因为您可能不一定要等到DOM加载或页面完全加载之后。
答案 1 :(得分:0)
在您提供的示例中,Google跟踪代码管理器可能会捕获有关DOM准备的额外信息。
DataLayer信息一直存在,直到页面关闭(新页面或关闭页面)。如果您想在以后收集信息(例如表单提交),这可以使其对于跟踪信息(例如,点击值)有价值。通过触发dataLayer按下点击(例如,用户点击商店?),该信息将存储在dataLayer中,并随时可以(如该页面)重新调用,如联系表单提交。这意味着您可以拥有诸如
之类的事件Event Category: Contact
Event Action: Form Submitted
Event Label: Store info interaction | No store info interaction
此外,最好在每个dataLayer推送中添加一个事件键,例如:
dataLayer.push({
'event': 'addToCart',
'ecommerce': {...
}
});
值得注意的是,默认情况下,增强型电子商务会在dataLayer版本1中读入dataLayer。这意味着只会读入最新的电子商务对象。
在实践中,这意味着如果您在同一页面上有产品和促销,并且它们是以不同的方式发送的,那么Google跟踪代码管理器只会收集最初的网页浏览上的最新推送。这就是为什么拥有事件键总是很重要的原因,因为它为您提供了一些激活标签的灵活性。
答案 2 :(得分:0)
&#34;数据&#34;标签中的内容将保持不变,您无法追溯更改&#34;数据。&#34;当您使用GTM预览和调试时,您会看到&#34;页面视图,&#34;事件,&#34; &#34; DOM Ready,&#34;当您单击这些时,您可以看到每个数据层的内容。您可以将标记设置为在不同的时间触发,以确保准备好调用所需的信息。因此,设置一个标签来执行datalayer.push,然后设置另一个标签,触发事件等于addToCart而不是pageview。这样,数据层就会在datalayer.push之后触发你想要的所有信息。