我的JS代码在我的客户端上运行'网站并偶尔向GA报告某些事件,以便客户可以跟踪它们(它们几乎是点击事件)。对于使用通用分析的客户,我使用的代码是:
if (typeof ga != "undefined") ga('send', 'event', category, action,opt_label);
并且通常它可以正常工作(我使用chrome的GA调试器扩展来查看发送的值)但是对于几个客户端,GA调试器扩展会返回错误:
Command ignored. Unknown target: undefined
错误是什么意思?为什么它只在某些网站上发生?
答案 0 :(得分:2)
在错误消息中:
未知目标:未定义
“目标”一词指的是跟踪器对象。如果您正在使用GTM,它会创建自己的命名跟踪器对象,以便不与页面上的任何现有跟踪器冲突。但是如果页面上已经没有默认跟踪器,则任何ga('send', ...)
或ga('set', ...)
命令都将失败,因为它们以默认跟踪器为目标(在这种情况下不存在)。
这通常不是问题,因为大多数analytics.js用户使用默认跟踪器,并且大多数GTM用户在GTM中执行100%的实现配置,并且根本不编写analytics.js代码,但如果您< em> do 需要编写自己的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