如何访问数据层变量

How to access dataLayer variables

在我们的网站上,我们有一个数据层来定义一些要传递给 Google Analytics 的变量。它是这样定义的:

deviceCategory: "DESKTOP"
deviceMode: "DESKTOP"
domainName: ".mydomain.com"
environment: "production"
operatingSystem: "UNKNOWN"
page.category.pageType: "Content"
page.category.primaryCategory: "main"
page.pageInfo.language: "en"
page.pageInfo.pageID: "productSelection"
user.profile.address.city: "Los Angeles"
user.profile.address.country: "US"

当我在控制台中输入以下内容时,它的输出完全符合预期: dataLayer[0].deviceMode --> "DESKTOP"

但是,当我尝试访问任何 page/user 变量时,出现错误: dataLayer[0].page.category.pageType --> 未捕获的类型错误:无法读取未定义的 属性 'category'

知道为什么会这样吗?访问这些值的正确方法是什么?

您使用的键只是带有点的字符串。它们不是对象的一部分,因此您需要像这样访问:

dataLayer[0]['page.pageInfo.language']

使用方括号。

编辑:请注意,这不是您在 GTM 中要做的事情(但也许不需要更多评论,因为您没有问这个问题)。