问题标签 [google-tag-manager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-analytics - Google 跟踪代码管理器:为不同的域设置规则
根据域触发 GA 标记的最佳方法是什么?我想创建一个容器来保存多个 ccTLD 的多个 GA 帐户。最好使用包含 example.co.uk 的 {{url}} 规则,然后另一个 {{url}} 包含 example.com。如果这样做,使用“包含”还是 RegEx 更好?...
或者我应该使用域名创建数据层,然后只要该数据层在页面上就触发 GA 标记?哪个是最佳实践?
干杯
google-tag-manager - 在 GTM 标记中包含外部脚本文件的后果
在 GTM 中,假设我有一个“自定义 HTML”标签,其中包含一个外部脚本文件,例如
<script type="text/javascript" src="http://externalsite.com/file.js"></script>
这个文件是怎么加载的?它会影响页面的加载时间吗?
我知道 GTM 脚本是与标签一起异步加载的,但我无法想象在这种情况下会发生什么。
javascript - Google 跟踪代码管理器:事件跟踪不起作用
我尝试使用跟踪代码管理器跟踪我网站上所有邮件链接的点击,但它根本不起作用。查看使用 firebug 进行的网络传输,我可以看到没有任何内容提交给 Google(当然,我的分析界面中也没有出现任何内容)。
我已经使用 jQuery 将推送绑定到点击(在我的页面上正确加载):
然后在 Google Tag Manager 界面中,我使用正确的 Web-Property ID(如 UA-XXXXXX-X)将 Tag 设置为 Google Analytics Tag。使用以下参数将类型设置为“事件”:
类别:{{eventCategory}}
行动:{{eventAction}}
标签:{{eventLabel}}
value 字段为空,未设置非交互。
为了触发事件,我设置了一个规则{{eventLabel}}
等于我的事件标签。
当然,我还创建了以下宏:
名称:eventLabel
类型:dataLayer 变量 变量
名称:eventLabel
名称:eventCategory
类型:dataLayer 变量 变量
名称:eventCategory
名称:eventAction
类型:dataLayer 变量 变量
名称:eventAction
名称:事件
类型:用户定义事件
你看到这有什么错误吗?为什么没有向 Google 发送任何内容?
我知道,即实际上不需要用户定义的变量,但无论如何设置它都没有问题。
jQuery 选择器也很好,当我绑定console.log
相同的事件时,我可以在控制台中看到我的消息。
javascript - 谷歌标签管理器数据层持久性
概括
随着时间的推移,Google 跟踪代码管理器 dataLayer 会被值堵塞,这使得规则和标签过于复杂,尤其是在 AJAX 繁重的网站上。
问题
我正在一个重跟踪的网站上实施 GTM,并为以下问题寻找一个干净的解决方案。我将以谷歌分析为例。
它允许您设置和使用 4 个宏进行事件跟踪:
- 类别 {{ga 事件类别}}
- 动作 {{ga 事件动作}}
- 标签 {{ga 事件标签}}
- 值 {{ga 事件值}}
值和标签是可选的,但 dataLayer 是持久的,不是吗?那么我该如何处理以下场景:
但是稍后在同一页面上,我必须跟踪另一个事件,但没有标签和值:
如果我设置了一个类似“Event is gaEvent”的规则,然后我会触发如下所示的“Google Analytics”标签(在此处使用 HTML 标签而不是内置标签):
第二个事件将被推送到_gaq
前一个事件的标签和值。
如何处理此类案件?
对于那些想知道的人,我需要能够在同一事件的某些点上触发不同的标签,这就是为什么我想要这个“动态”解决方案,但是 dataLayer 像这样持久化会搞砸规则。
编辑1:测试例程
这是我如何测试它。
- 我在 Chrome 中安装了 Google Analytics Debugger
- 我在调试模式下有 GTM
- 加载站点后,在控制台中,我从描述中执行第一个 dataLayer 推送
- 我从 GA Debug 输出中看到 GA 事件是用 4 个值触发的
- 我从控制台进行第二次推送
- GA 调试输出告诉我 GA 事件是使用新类别和操作触发的,但之前推送的标签和值
这就是我所说的坚持。为了规避这一点,我只能想出不同的事件类型,如,gaCustomEvent
等,然后为每一个提出规则和标签。这太荒谬了,你不同意吗?gaCustomEventWithLabel
gaCustomEventWithOption
javascript - 为什么谷歌跟踪代码管理器使用 IFrame 而不是脚本 DOM 元素?
谷歌标签管理器使用隐藏 IFrame 解决方案的任何原因?我指的是这个页面https://developers.google.com/tag-manager/quickstart。为什么它不使用脚本 DOM 元素方法,就像这里描述的那样http://www.stevesouders.com/blog/2008/12/27/coupling-async-scripts/?谢谢。
google-analytics - 如何从 Google 跟踪代码管理器调用 AJAX 页面的 _trackPageView?
我有一个通过 AJAX 加载的页面。
在 Google Analytics 中,我可以直接调用gaq.push('_trackPageView','/someurl')
我的 AJAX 成功函数。但是,在通过 Google 跟踪代码管理器实施 GA 时,我似乎找不到这样做的方法。
唯一的选择似乎是“虚拟页面查看”事件,这不是我所追求的:有谁知道如何做到这一点?
javascript - Javascript CDATA 部分
最近,我正在创建一个模块来将谷歌再营销标签添加到网上商店。我根据文档为不同类型的页面(产品、类别、购物车等)准备了 google_tag_params。一切都很顺利,直到客户使用 Chrome 的 Google Tag Assistant 插件检查了该页面。它显示 CDATA 部分的警告。起初我不明白他在说什么,因为参数很好,并且我在控制台中没有收到任何错误。所以我检查了 Google Tag Assistant,令我惊讶的是它的行为如下。
对于代码:
它显示警告“缺少 CDATA 评论”并指向文档https://support.google.com/tagassistant/answer/2978937?ref_topic=2947092#cdata_comments
但是将其更改为
使警告消失。
所以我的问题是这个。任何浏览器中的单行注释和多行注释有什么区别吗?这是唯一无法识别这些评论的谷歌标签助手奇怪行为吗?
google-analytics - 通过 Sitecore CMS 将 HTML 代码插入页面模板
我需要将 Google 跟踪代码管理器调用代码插入使用 Sitecore CMS 6.3 支持的网站 - 我该怎么做?是否有可能没有源代码,重新编译和部署项目?在 CMS 级别上可行吗?谢谢。
javascript - 谷歌标签管理器中的 JavaScript Try-Catch 错误
在 GTM(Google 跟踪代码管理器)中,您可以拥有自定义 JavaScript 宏,它们是匿名函数,返回标签或规则使用的内容。
我的每个宏都使用 try/catch,因此我们可以轻松地显示任何实现错误(引发由 UA 标记捕获的 dataLayer 事件)
但这里有些奇怪……如果我取消注释 try/catch,GTM 固执地拒绝使用它并且不给出任何错误……但进入了保存模式(即浏览器一直在等待某些东西)。我知道当我在调试控制台中运行这段代码时它可以工作……而且我还有其他具有相同 try/catch 技术的宏……有什么想法吗?
google-analytics - Google 跟踪代码管理器的 gtm.formSubmit 未针对 AJAX 表单触发
当我使用谷歌标签管理器创建一个标签来监听表单提交时。
对于我没有转到新页面的 ajax 提交表单,提交表单不会将 gtm.formSubmit 事件触发到数据层。
我应该怎么做?
我需要一个“无代码”解决方案来检测表单提交并捕获提交的值。