现有的Google Analytics事件和Google跟踪代码管理器

pet*_*riq 28 google-analytics google-tag-manager universal-analytics

我已在我的网站上实施了Google Analytics(GA),并通过ga("send", "event", ...);功能发送了多个自定义事件,效果很好.

我正在尝试使用Google跟踪代码管理器(GTM).我删除了原始的GA代码段,现在我使用GTM在我的网站上注入GA标记,并正确跟踪网页浏览量.什么效果不好的是由ga()函数发送的自定义事件.

我注意到GA create跟踪器名称变量就像

ga("create", "UA-12345678-1", {name: "gtm0123456789", allowLinker: false});
Run Code Online (Sandbox Code Playgroud)

Google Chrome浏览器的Google Analytics Debugger扩展程序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使用现有呼叫并使用事件跟踪?

Mer*_*lis 61

我有类似的配置(Google跟踪代码管理器中的Universal Analytics代码),我想点击按钮触发事件.

我使用petriq的评论来解决我的问题,因此想要添加我的笔记.

普通Universal Analytics事件代码采用以下格式:

ga("send", "event", ...);
Run Code Online (Sandbox Code Playgroud)

您可以使用跟踪器名称从代码中触发Universal Analytics事件:

ga("gtmXXXXXXXXXX.send", "event", ...);
Run Code Online (Sandbox Code Playgroud)

但是跟踪器名称在每个gtm加载中都会发生变化,因此我更改了以下代码:

var trackerName = ga.getAll()[0].get('name');
ga(trackerName + '.send', 'event', { eventCategory: 'category1', eventAction: 'action1', eventValue: 0 });
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!

  • 这是一个很好的解决方案,尤其适用于以下情况:您有一个工作GA帐户已更新为使用Google跟踪代码管理器,尤其是在单页面应用程序中,很难将ID附加到除按钮和链接之外的其他内容. (4认同)

Eik*_*rff 3

有一种方法 - 您可以在标签管理器中重命名 ga 函数(高级配置,全局函数名称),例如“real_ga”。然后,您在自己的页面中创建一个自定义 ga 函数,该函数从事件跟踪调用中获取参数并将它们传递给 real_ga 函数(因此您只需在一处更改跟踪器名称),或者更好地将它们推送到 dataLayer (然后您可以使用 dataLayer 值在 GTM 中进行事件跟踪)。

但你为什么要这么做呢?您实际上并没有遇到问题,您只是对自己的解决方法感到不好。正确的答案是,只要有效就不要感觉不好。