现有 Google 个分析事件和 Google 个跟踪代码管理器
Existing Google Analytics events and Google Tag Manager
我已经在我的网站上实施了 Google Analytics (GA),我通过 ga("send", "event", ...);
功能发送了几个自定义事件并且效果很好。
我正在试验 Google 跟踪代码管理器 (GTM)。我已经删除了原始 GA 代码段,现在我使用 GTM 在我的网站上注入 GA 标签,并且可以正确跟踪网页浏览量。效果不佳的是 ga() 函数发送的自定义事件。
我注意到 GA create
有像
这样的跟踪器名称变量
ga("create", "UA-12345678-1", {name: "gtm0123456789", allowLinker: false});
和 Google Google Chrome 报告的分析调试器扩展 Command ignored. Unknown target: undefined
。
我发现发送事件调用应包含跟踪器名称,因此它看起来应该像 ga("gtm0123456789.send", "event", ...);
,但我不想更改所有现有的 GA send event
调用。
我通过在 GTM 设置中将跟踪器名称设置为空字符串(Edit Tag -> More Settings -> Advanced Configuration -> ☑ Tracker Name
,将文本框留空)来快速修复它,现在它可以工作了,但我认为这不是一个很好的解决方案。
是否有任何其他选项可以让我现有的 GA send event
调用并通过 GTM 使用事件跟踪?
最好的方法是使用 GTM 实现所有跟踪。它会让您更好地控制跟踪代码,并更灵活地部署新标签。
有一种方法——您可以在标签管理器中重命名 ga 函数(高级配置,全局函数名称),例如到 "real_ga" 。然后您在自己的页面中创建一个自定义 ga 函数,该函数从您的事件跟踪调用中获取参数并将它们传递给 real_ga-function(因此您只需要在一个地方更改跟踪器名称),或者更好地将它们推送到dataLayer(然后您可以使用 dataLayer 值在 GTM 中进行事件跟踪)。
但是你为什么要这样做?您实际上并没有遇到问题,您只是对您的解决方法感到难过。正确的答案是,只要它有效就不会难过。
我有类似的配置(Google 标签管理器中的 Universal Analytics 标签),我想在点击按钮时触发事件。
我使用 petriq 的评论解决了我的问题,因此想添加我的笔记。
Universal Analytics 默认事件代码采用以下格式:
ga("send", "event", ...);
您可以使用跟踪器名称从您的代码中触发 Universal Analytics 事件:
ga("gtmXXXXXXXXXX.send", "event", ...);
但是跟踪器名称在每次 gtm 加载时都会发生变化,因此我将代码更改为:
var trackerName = ga.getAll()[0].get('name');
ga(trackerName + '.send', 'event', { eventCategory: 'category1', eventAction: 'action1', eventValue: 0 });
http://www.lunametrics.com/blog/2015/01/21/gtm-existing-tracking/
In your GTM pageview tag, navigate to More Settings > Advanced
Configuration. Check the “Tracker Name” checkbox, but leave the field
blank.
我已经在我的网站上实施了 Google Analytics (GA),我通过 ga("send", "event", ...);
功能发送了几个自定义事件并且效果很好。
我正在试验 Google 跟踪代码管理器 (GTM)。我已经删除了原始 GA 代码段,现在我使用 GTM 在我的网站上注入 GA 标签,并且可以正确跟踪网页浏览量。效果不佳的是 ga() 函数发送的自定义事件。
我注意到 GA create
有像
ga("create", "UA-12345678-1", {name: "gtm0123456789", allowLinker: false});
和 Google Google Chrome 报告的分析调试器扩展 Command ignored. Unknown target: undefined
。
我发现发送事件调用应包含跟踪器名称,因此它看起来应该像 ga("gtm0123456789.send", "event", ...);
,但我不想更改所有现有的 GA send event
调用。
我通过在 GTM 设置中将跟踪器名称设置为空字符串(Edit Tag -> More Settings -> Advanced Configuration -> ☑ Tracker Name
,将文本框留空)来快速修复它,现在它可以工作了,但我认为这不是一个很好的解决方案。
是否有任何其他选项可以让我现有的 GA send event
调用并通过 GTM 使用事件跟踪?
最好的方法是使用 GTM 实现所有跟踪。它会让您更好地控制跟踪代码,并更灵活地部署新标签。
有一种方法——您可以在标签管理器中重命名 ga 函数(高级配置,全局函数名称),例如到 "real_ga" 。然后您在自己的页面中创建一个自定义 ga 函数,该函数从您的事件跟踪调用中获取参数并将它们传递给 real_ga-function(因此您只需要在一个地方更改跟踪器名称),或者更好地将它们推送到dataLayer(然后您可以使用 dataLayer 值在 GTM 中进行事件跟踪)。
但是你为什么要这样做?您实际上并没有遇到问题,您只是对您的解决方法感到难过。正确的答案是,只要它有效就不会难过。
我有类似的配置(Google 标签管理器中的 Universal Analytics 标签),我想在点击按钮时触发事件。
我使用 petriq 的评论解决了我的问题,因此想添加我的笔记。
Universal Analytics 默认事件代码采用以下格式:
ga("send", "event", ...);
您可以使用跟踪器名称从您的代码中触发 Universal Analytics 事件:
ga("gtmXXXXXXXXXX.send", "event", ...);
但是跟踪器名称在每次 gtm 加载时都会发生变化,因此我将代码更改为:
var trackerName = ga.getAll()[0].get('name');
ga(trackerName + '.send', 'event', { eventCategory: 'category1', eventAction: 'action1', eventValue: 0 });
http://www.lunametrics.com/blog/2015/01/21/gtm-existing-tracking/
In your GTM pageview tag, navigate to More Settings > Advanced Configuration. Check the “Tracker Name” checkbox, but leave the field blank.