问题标签 [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.

0 投票
1 回答
448 浏览

google-analytics - Google 跟踪代码管理器:为不同的域设置规则

根据域触发 GA 标记的最佳方法是什么?我想创建一个容器来保存多个 ccTLD 的多个 GA 帐户。最好使用包含 example.co.uk 的 {{url}} 规则,然后另一个 {{url}} 包含 example.com。如果这样做,使用“包含”还是 RegEx 更好?...

或者我应该使用域名创建数据层,然后只要该数据层在页面上就触发 GA 标记?哪个是最佳实践?

干杯

0 投票
3 回答
11680 浏览

google-tag-manager - 在 GTM 标记中包含外部脚本文件的后果

在 GTM 中,假设我有一个“自定义 HTML”标签,其中包含一个外部脚本文件,例如

<script type="text/javascript" src="http://externalsite.com/file.js"></script>

这个文件是怎么加载的?它会影响页面的加载时间吗?

我知道 GTM 脚本是与标签一起异步加载的,但我无法想象在这种情况下会发生什么。

0 投票
1 回答
2855 浏览

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相同的事件时,我可以在控制台中看到我的消息。

0 投票
3 回答
5452 浏览

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等,然后为每一个提出规则和标签。这太荒谬了,你不同意吗?gaCustomEventWithLabelgaCustomEventWithOption

0 投票
1 回答
3089 浏览

javascript - 为什么谷歌跟踪代码管理器使用 IFrame 而不是脚本 DOM 元素?

谷歌标签管理器使用隐藏 IFrame 解决方案的任何原因?我指的是这个页面https://developers.google.com/tag-manager/quickstart。为什么它不使用脚本 DOM 元素方法,就像这里描述的那样http://www.stevesouders.com/blog/2008/12/27/coupling-async-scripts/?谢谢。

0 投票
2 回答
5600 浏览

google-analytics - 如何从 Google 跟踪代码管理器调用 AJAX 页面的 _trackPageView?

我有一个通过 AJAX 加载的页面。

在 Google Analytics 中,我可以直接调用gaq.push('_trackPageView','/someurl')我的 AJAX 成功函数。但是,在通过 Google 跟踪代码管理器实施 GA 时,我似乎找不到这样做的方法。

唯一的选择似乎是“虚拟页面查看”事件,这不是我所追求的:有谁知道如何做到这一点?

0 投票
2 回答
2872 浏览

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

但是将其更改为

使警告消失。

所以我的问题是这个。任何浏览器中的单行注释和多行注释有什么区别吗?这是唯一无法识别这些评论的谷歌标签助手奇怪行为吗?

0 投票
1 回答
771 浏览

google-analytics - 通过 Sitecore CMS 将 HTML 代码插入页面模板

我需要将 Google 跟踪代码管理器调用代码插入使用 Sitecore CMS 6.3 支持的网站 - 我该怎么做?是否有可能没有源代码,重新编译和部署项目?在 CMS 级别上可行吗?谢谢。

0 投票
1 回答
2304 浏览

javascript - 谷歌标签管理器中的 JavaScript Try-Catch 错误

在 GTM(Google 跟踪代码管理器)中,您可以拥有自定义 JavaScript 宏,它们是匿名函数,返回标签或规则使用的内容。

我的每个宏都使用 try/catch,因此我们可以轻松地显示任何实现错误(引发由 UA 标记捕获的 dataLayer 事件)

但这里有些奇怪……如果我取消注释 try/catch,GTM 固执地拒绝使用它并且不给出任何错误……但进入了保存模式(即浏览器一直在等待某些东西)。我知道当我在调试控制台中运行这段代码时它可以工作……而且我还有其他具有相同 try/catch 技术的宏……有什么想法吗?

0 投票
3 回答
6342 浏览

google-analytics - Google 跟踪代码管理器的 gtm.formSubmit 未针对 AJAX 表单触发

当我使用谷歌标签管理器创建一个标签来监听表单提交时。

对于我没有转到新页面的 ajax 提交表单,提交表单不会将 gtm.formSubmit 事件触发到数据层。

我应该怎么做?

我需要一个“无代码”解决方案来检测表单提交并捕获提交的值。