0

我想根据用户是否登录来跟踪网站上的用户行为。我想在 JavaScript 中创建自己的变量,一种具有不同值的 userState,比如说,logged 和 guest,我想将它传递给 dataLayer。怎么做?我可以做这样的事情吗

dataLayer.push({‘userType’: userState})

?

4

1 回答 1

0

基本上这会起作用。但是,GTM 只会在注册 GTM 事件时更新其内部状态。当您使用时dataLayer.push({‘userType’: userState}),userType 的新值将不会自动可用。它后面需要一个事件,可以是通过 GTM 自动事件变量设置的事件(例如使用点击触发器时的 gtm.click),也可以是自定义事件:

dataLayer.push({
  "userType": userState,
  "event":"updateUserState"
});

(另请注意,您在示例中使用了反引号,这会产生错误 - 您必须使用直引号或双引号)。

自定义事件实际上是具有推送到数据层的自定义值的关键“事件”。GTM 覆盖 dataLayer 数组的 push 方法以扫描新的推送事件关键字,然后更新 GTM 中的可用变量。

于 2020-02-11T21:19:40.573 回答