首页 > 解决方案 > 谷歌标签管理器 - 如何从对象触发多个值

问题描述

我得到了一个带有作者和品牌的对象。我想使用 Google Analytics 跟踪哪些作者的哪些文章阅读次数最多。

<script>
MY_OBJECT = {"Ben":["BMW"],"Michael":["Mercedes"],"Charles":["Chevrolet"]}
</script>

如果我只想跟踪一个值,我会创建一个自定义变量,并在我的通用 Google Analytics 标记中将其与自定义维度一起使用。

作者的数量可能会有所不同,并不总是三个。

如何触发多个值?

标签: javascriptgoogle-tag-manager

解决方案


您将需要遍历该对象。由于您已使用 Google 跟踪代码管理器对此进行了标记,因此我假设您想使用 GTM,因此您无需直接发送跟踪调用,而是将值推送到 dataLayer:

MY_OBJECT = {"Ben":["BMW"],"Michael":["Mercedes"],"Charles":["Chevrolet"]};
for(key in MY_OBJECT) { 
  dataLayer.push({"event":"push" , "author":key, "brand":MY_OBJECT[key].join(";")}); 
}

现在,您在 GTM 中创建了一个“自定义事件”类型的触发器,用于侦听自定义事件“推送”。然后,您创建数据层变量“作者”和“品牌”。对于每次迭代,作者变量将从您的对象接收密钥(即作者姓名)。

由于“品牌”是一个数组(即使您的示例中每个条目只有一个数组项),我已将其加入一个字符串(使用“;”作为分隔符)。您现在可以将这些变量传递给您的事件跟踪代码,并在“推送”事件时触发它(也许您想以不同的方式命名)。


推荐阅读