现有的谷歌分析活动和谷歌标签管理器



我已经在我的网站上实现了Google Analytics(GA),我通过ga("send", "event", ...);功能发送了几个自定义事件,它运行良好。

我正在试用谷歌标签管理器(GTM)。我已经删除了原始的GA片段,现在我使用GTM在我的网站上注入GA标记,页面浏览量也得到了正确的跟踪。不起作用的是ga()函数发送的自定义事件。

我注意到GA create有类似的跟踪器名称变量

ga("create", "UA-12345678-1", {name: "gtm0123456789", allowLinker: false});

以及用于Google Chrome报告的Google Analytics Debugger扩展CCD_ 3。

我发现发送事件调用应该包括跟踪器名称,所以它看起来应该像ga("gtm0123456789.send", "event", ...);,但我不想更改所有现有的GA send event调用。

我通过在GTM设置中将tracker名称设置为空字符串(Edit Tag -> More Settings -> Advanced Configuration -> ☑ Tracker Name,将文本框留空)快速修复了它,现在它可以工作了,但我认为这不是一个很好的解决方案。

有没有其他选项可以让我现有的GA send event调用并通过GTM使用事件跟踪?

我有类似的配置(谷歌标签管理器中的通用分析标签),我想点击按钮触发事件。

我用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/

在GTM页面视图标记中,导航到"更多设置">"高级"配置选中"Tracker Name"复选框,但保留该字段空白的

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

但你为什么要这么做?你实际上没有问题,你只是对你的变通方法感到不好。正确的答案是,只要它有效,就不要感觉不好。

最好的方法是使用GTM实现所有跟踪。它将使您能够更好地控制跟踪代码,并在部署新标签时具有更大的灵活性。