想知道是否有人可以阐明使用谷歌标签管理器是否符合 PCIDSS?
我知道其中有一些规定可以确保标签不能被注入,例如保护服务器、xss 保护等,但找不到任何关于支持动态 html 更改的标签管理器是否可以的信息。
我可以看到这两个论点...
我正在尝试使用 Rails 应用程序实现 google tagmanager,但由于 Turbolinks,我无法触发其标签。
我看到了这个答案:Firing Tags in GTM (Google Tag Manager)container under Turbolinks 和这个:Googletagmanager with Turbolinks 这告诉我,我需要在页面上触发一个事件:加载,但我似乎无法触发该事件。我试过把
$( window ).on( 'page:load', function () {
dataLayer.push({'event': 'event_name'});
} );
Run Code Online (Sandbox Code Playgroud)
在 application.js 文件中,以及将其放入视图中,我还尝试通过 Coffeescript 在 CoffeeScript 分析文件中使用以下变体:
ready = ->
dataLayer.push({'event': 'event_name'});
$(document).ready(ready)
$(document).on('page:load', ready)
Run Code Online (Sandbox Code Playgroud)
但当我由于涡轮链接而移动到另一个页面时,我仍然无法让谷歌标签管理器触发其标签。
任何帮助将非常感激。
我最近设置了跟踪代码管理器和 Google Analytics。
在谷歌分析中
在标签管理器中
当我点击其中一个网页时,我看到 - 调用 googletagmanager.com/gtm.js?id=GTM-...(带有我的标签 ID) - 调用 google-analytics.com/analytics.js -调用 google-analytics.com/collect?...tid=UI-...&tgm=GTM-...(包含我的标签和分析 ID)
现在,当我进入 Google Analytics 仪表板时,我看不到任何会话,甚至在实时会话仪表板中也看不到。
在“管理”>“属性”>“跟踪信息”>“跟踪代码”下,显示“状态:未安装跟踪”我认为这没问题,因为我没有将分析脚本复制到我的页面,而是将跟踪代码管理器脚本复制到我的页面。
是否有延迟,或者我设置错误?
我一直在关注有关此功能的大量实施指南,但尚未看到最终结果。我想做的是非常标准的:向 UA 添加一个名为“用户类型”的自定义维度。我的网站使用 Google 跟踪代码管理器。
下面是我的实现步骤:
在UA中创建自定义维度

创建了一个数据层变量名称 userType

将维度添加到我的 Analytics 页面视图标签中

var dimensionValue =$('#user_type').data('type');
dataLayer.push({'userType': dimensionValue});Run Code Online (Sandbox Code Playgroud)
发布了标签管理器更改
通过标签管理器进行调试时,我看到以下输出:


如果有任何关于问题可能是什么的想法,我将不胜感激。
谢谢,
乌里
我对分析事件跟踪等比较陌生。
我只是想知道 Google 跟踪代码管理器相当于 Google Analytics ( onchange="ga('send', 'event', 'Category', 'Change', 'Value');") 吗?
我知道我可以使用 onlayer,但我不是 100% 确定如何使用它,尝试在网上查找一些文章,但没有任何可以帮助我的。
基本上我拥有的是一个样式select元素,我想在它改变其值时跟踪它。没有提交按钮,并且它不在表单元素内。
Google 跟踪代码管理器只允许我在单击时返回错误值,因为它是一个选择元素并且需要 onchange 而不是 onclick。
我的问题是,如果有意义的话,我可以在 Google 跟踪代码管理器中使用 Google Analytics 事件跟踪代码吗?我的 Google Analytics 是通过 Google Tag Manager 插入的,跟踪也是如此。
感谢您的回复,谢谢
我有以下代码:
dataLayer.push({event: 'A',eventAttributes: { attrA: 'a' }});
dataLayer.push({event: 'B',eventAttributes: { attrB: 'b' }});
dataLayer.push({event: 'C',eventAttributes: { attrC: 'c' }});
Run Code Online (Sandbox Code Playgroud)
和一个完全空的 GTM 容器(没有标签、没有触发器、没有变量)。
当我检查Data LayerGTM 调试选项卡时,我看到以下内容:
{
gtm: {start: 1448552543040, uniqueEventId: 1448552543091},
event: 'A',
eventAttributes: {attrA: 'a'}
}
{
gtm: {start: 1448552543040, uniqueEventId: 1448552543092},
event: 'B',
eventAttributes: {attrA: 'a', attrB: 'b'}
}
{
gtm: {start: 1448552543040, uniqueEventId: 1448552543092},
event: 'C',
eventAttributes: {attrA: 'a', attrB: 'b', attrC: 'C'}
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,GTM 将值合并到eventAttributes对象而不是覆盖对象。
Q1:GTM为什么要这么做?
Q2:有没有办法可以防止这种情况发生(除了将每个对象属性定义为单独的变量之外)?
仅供参考,我eventAttributes在数据层中使用该对象,因为我想简单地重新使用其中的任何内容作为我的基于事件的工具(Mixpanel、KISSmetrics...)的属性。对于上述问题,如果我必须显式声明 DataLayer 和 …
当有人点击我网站上的“购买”按钮时,我尝试使用 dataLayer 和 dataLayer.push 通过 Google 跟踪代码管理器跟踪此事件。
它看起来像这样:
dataLayer.push({
'event': 'service',
'category': 'purchase',
'action': 'product selected',
'label': product
});Run Code Online (Sandbox Code Playgroud)
问题是,每次用户单击按钮时,服务都会立即重定向到购物车,因此在某些情况下,事件没有足够的时间触发,并且 Google Analytics 中的数据不完整。
我知道有一个“eventCallback”选项可以与 dataLayer 一起使用,如下所示
dataLayer.push({
'event': 'service',
'category': 'purchase',
'action': 'product selected',
'label': product,
'eventCallback': function () {
//redirect to the shopping cart
}
});
});Run Code Online (Sandbox Code Playgroud)
但这个选项的问题是,它产生了依赖性,并且在某些情况下,由于 Google Tag Manger 的一些问题,用户没有被重定向到购物车(这对我们来说是一个大问题)。
是否有更流畅、更有效的方法来处理这个问题,以便我们可以在不中断服务的情况下收集尽可能多的数据(例如,当在用户浏览器中启用跟踪保护时)
我正在使用 React Router 的 Link 组件来处理我的应用程序中的页面转换。
我的应用程序包含在一个外部网页中,该网页包含一些脚本(即 Google 标签管理器),用于定义文档级别链接上的事件。
这会导致与链接事件发生冲突:单击链接时页面总是重新加载。
我试图通过 onClick 回调停止在我的 Link 组件上传播,但没有成功:
<Link onClick={(e) => { e.stopPropagation(); }} [...]>...</Link>
我看到链接事件也是在文档级别定义的,所以我不知道如何停止外部事件。
关于这个的任何线索?
谢谢 !
javascript google-tag-manager reactjs react-router react-router-dom
我设置了一个新的 Google Analytics 4 属性并启用了增强跟踪,它会自动记录所有下载。使用 Google Data Studio 时,我可以看到“file_download”事件(所以它肯定有效)并使用这些数据来构建我的报告。
我需要创建一个报告,显示每个月只为特定页面下载了哪些文件。获取该页面上发生的下载总数真的很容易,但是,我一生都找不到任何方法来报告目标 URL 或文件名是什么。
根据 Analytics 支持页面,该事件有许多有用的参数(file_extension、file_name、link_classes、link_domain、link_id、link_text、link_url),但是,我在数据洞察报告中看不到这些参数的任何相关选项。
任何帮助将不胜感激。在这一点上,我几乎想禁用自动跟踪并再次通过标签管理器手动完成所有操作。
analytics google-analytics event-tracking google-tag-manager google-data-studio
我有一个基本的静态/单页应用程序,我将 Google Analytics 4 (GA4) 添加到使用gtag. 当我通过 http://localhost:8080 在本地加载我的应用程序时,页面视图按预期跟踪。但是,当我通过应用程序在 iframe 中的另一个站点上嵌入时,不会发送任何命中。
为了调试这个,我查看了 Chrome 网络检查器中的网络请求。当我直接在 http://localhost:8080 上打开我的应用程序时,我可以看到一个对https://analytics.google.com/g/collect?..的请求。在网络请求中。但是,当我在 iframe 中加载我的应用程序(例如,我添加<iframe src="http://localhost:8080"></iframe>到另一个页面)时,我注意到没有发送此请求。我还确认在实时视图中的 Google Analytics 中没有显示任何数据,即使我可以看到用于 gtag 加载的 JavaScript。
我还使用https://tagassistant.google.com/ 上的 Tag Assistant 进行了调试。即使当我连接到在 iframe 中运行的应用程序时,调试器也会显示所有事件都按预期注册,但在发送的命中下,它显示“此容器未发送命中”。
为什么在 iframe 中加载应用程序时,相同跟踪代码的行为会有所不同?如何确保始终发送命中?
更新:这似乎与 cookie 在跨域 iframe 中不可用有关,但有解决方法吗?
google-analytics google-tag-manager gtag.js google-analytics-4