javascript - 谷歌标签管理器 - 如何从对象触发多个值
问题描述
我得到了一个带有作者和品牌的对象。我想使用 Google Analytics 跟踪哪些作者的哪些文章阅读次数最多。
<script>
MY_OBJECT = {"Ben":["BMW"],"Michael":["Mercedes"],"Charles":["Chevrolet"]}
</script>
如果我只想跟踪一个值,我会创建一个自定义变量,并在我的通用 Google Analytics 标记中将其与自定义维度一起使用。
作者的数量可能会有所不同,并不总是三个。
如何触发多个值?
解决方案
您将需要遍历该对象。由于您已使用 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 中创建了一个“自定义事件”类型的触发器,用于侦听自定义事件“推送”。然后,您创建数据层变量“作者”和“品牌”。对于每次迭代,作者变量将从您的对象接收密钥(即作者姓名)。
由于“品牌”是一个数组(即使您的示例中每个条目只有一个数组项),我已将其加入一个字符串(使用“;”作为分隔符)。您现在可以将这些变量传递给您的事件跟踪代码,并在“推送”事件时触发它(也许您想以不同的方式命名)。
推荐阅读
- command-line - 如何使用 Miller 命令行工具删除 csv 文件中的空白行?
- vue.js - Vuepress - 如何仅在特定页面上的 head 标签中添加自定义 html?
- python - 我在哪里可以找到 geckodriver 选项类的参数?
- googletest - 谷歌测试和模拟类的适当设计以减少冗余
- sql - 使用 SQL 调用 SSIS 包而不使用作业并指定 SSIS 包将作为谁运行
- angular - 角度对话框不适用于材质对话框内容
- python - 用于堆叠两个 CNN 的自适应模块设计
- c++ - grpc::grpc_cpp_plugin 在本地安装 grpc 时失败,状态码为 1
- javascript - 如何使用 fetch API 在 Django Rest 服务器上发布图像?
- javascript - 已填充文本字段时如何防止填充值?