现有 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.