2015-07-21 178 views
1

我有我的客户的网站上运行的JS代码,偶尔会向GA报告某些事件,以便客户端可以跟踪它们(它们几乎是点击事件)。对于使用通用分析客户我使用的代码是:Universal Analytics事件跟踪

if (typeof ga != "undefined") ga('send', 'event', category, action,opt_label); 

,通常它工作正常(我使用铬,看看哪些值发送的GA调试器扩展),但与几个客户GA的调试器扩展返回错误:

Command ignored. Unknown target: undefined 

错误是什么意思,为什么它只发生在某些网站?

+0

是否有任何使用GTM你的客户? –

+0

@PhilipWalton是的,他们这样做。 – user199421

回答

2

在错误消息:

Unknown target: undefined

词语 “靶” 指的是跟踪对象。如果您使用的是GTM,它会创建自己的指定跟踪器对象,以便不会与页面上的任何现有跟踪器发生冲突。但是,如果页面上没有默认跟踪器,则任何ga('send', ...)ga('set', ...)命令都会失败,因为它们将目标设置为默认跟踪器(在此情况下不存在)。

这通常不是问题,因为大多数analytics.js用户使用默认跟踪器,并且大多数GTM用户在GTM中完成其实施配置的100%,并且根本不编写analytics.js代码,但如果您需要编写自己的analytics.js代码使用GTM,您需要获取GTM跟踪器对象,因为默认跟踪器语法不起作用。

你可以通过以下方式创建的所有跟踪器的列表,那么你可以使用synchronous calling syntax发送事件:

ga(function() { 
    var allTrackers = ga.getAll(); 
    var firstTracker = allTrackers[0]; 

    firstTracker.send('event', category, action, opt_label); 
}); 

显然,如果你有一个以上的跟踪,你必须身材哪一个是GTM跟踪器?

有关名为跟踪对象的工作和/或使用多个跟踪器,看看这个开发人员指南的详细信息: https://developers.google.com/analytics/devguides/collection/analyticsjs/creating-trackers#working_with_multiple_trackers