GTM:使用 dataLayer 取消设置 page_location

问题描述 投票:0回答:1

我想为 GTM(以及 GA4)取消设置/重置

page_location

page_location
推送到 dataLayer 后,我想为后续事件恢复到默认的 page_location (即当前 URL)(这是一个单页面应用程序,因此 URL 会发生变化)。

我的理解是

dataLayer.push({page_location:undefined})
应该这样做,但是尽管
page_location
在数据层中显示为未定义(根据控制台调试器和 Tag Assistant),但我的 GA4 代码的 GTM 调用使用旧值。 当我将调用中的
undefined
替换为
'test'
时,这实际上有效,并且使用了新值。

我尝试过调用

reset
的几种变体,但它们没有做任何事情。

我几乎不想提它,冒着转移对问题注意力的风险,但为了完整起见,在 GTM 中,我们定义了一个 GA4 事件标记,用于分配事件参数

page_location
,该参数从 {{dlv_page_location} 获取因此,如果 dataLayer 中未设置 page_location,则标记将使用默认 URL 位置。 除了上面的情况之外,这工作得很好,我们试图取消/重置数据层值。

google-tag-manager google-datalayer
1个回答
0
投票

经过几个小时的实验,我确定

page_location
是一种特殊情况,必须缓存在GTM代码本身的某个地方。

我可以通过

undefined
取消设置其他数据层变量,但不能通过
page_location

由于

reset
的任何变体似乎都无济于事,我什至设置了
dataLayer.length = 1
(它对其他变量有效),但它对原始
page_location
设置没有任何作用。

此时

page_location
根据页面控制台调试器不在dataLayer中,根据TagAssistant也不在dataLayer中。 一旦你设置了它,它显然就无法取消设置,因此你必须继续显式设置它(在 SPA 中),而不是让 GTM 从当前 URL 获取它。

© www.soinside.com 2019 - 2024. All rights reserved.