我已在我的网站上实施了Google Analytics(GA),并通过ga("send", "event", ...);
功能发送了多个自定义事件,效果很好。
我正在尝试使用Google跟踪代码管理器(GTM)。我删除了原始GA代码段,现在我使用GTM在我的网站上注入GA标记,并正确跟踪网页浏览量。什么效果不好的是由ga()函数发送的自定义事件。
我注意到GA create
有跟踪者名称变量,如
ga("create", "UA-12345678-1", {name: "gtm0123456789", allowLinker: false});
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使用事件跟踪吗?
答案 0 :(得分:56)
我有类似的配置(Google跟踪代码管理器中的通用分析代码),我想在点击按钮时触发事件。
我使用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 });
希望它有所帮助!
答案 1 :(得分:4)
http://www.lunametrics.com/blog/2015/01/21/gtm-existing-tracking/
在您的GTM综合浏览量标签中,导航至更多设置>高级 组态。选中“跟踪器名称”复选框,但保留该字段 空白。
答案 2 :(得分:2)
有一种方法 - 您可以在标签管理器中重命名ga功能(高级配置,全局功能名称),例如到" real_ga" 。然后在您自己的页面中创建一个自定义ga函数,该函数从事件跟踪调用中获取参数并将它们传递给real_ga函数(因此您只需要在一个位置更改跟踪器名称),或者更好地将它们推送到dataLayer (然后您可以在GTM中使用dataLayer值进行事件跟踪)。
但你为什么要那样做呢?你实际上没有问题,你对你的解决方法感到很糟糕。对此的正确答案是,只要它起作用就不会感觉不好。
答案 3 :(得分:-2)
最好的方法是使用GTM实现所有跟踪。它可以让您更好地控制跟踪代码,并在部署新标签时提供更大的灵活性。