2015-07-21 187 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