【问题标题】:Passing variable with changeable value to GTM将具有可变值的变量传递给 GTM
【发布时间】:2020-02-11 14:26:24
【问题描述】:

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

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

?

【问题讨论】:

    标签: google-tag-manager data-layers


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 感谢您的回答!我在这方面有点新手,所以有点难以理解,但我会尝试与开发人员一起完成工作。
    • 真的没那么难。网站中有dataLayer,它是一个Javascript变量。然后是 GTM 的内部状态,部分来自 dataLayer。每当“事件”关键字出现在 dataLayer 中时(因为有原生 GTM 事件,或者因为您自己推送了关键字),网站 dataLayer 的内容就会合并到内部状态中。现有变量用新值更新(如果有,否则它们不变),新变量被添加到内部状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-24
    • 2020-10-30
    相关资源
    最近更新 更多