我使用Facebook JSSDK(即客戶端)來驗證當前用戶到我的網絡應用程序是誰。Google Analytics(分析) - 訪問者級別自定義變量問題和觀察
代碼看起來是這樣的:
... inited google analytics ...
...
//events *before* authentication
_gaq.push(['_trackEvent', 'TEST', 'EVENT BEFORE AUTH', 1]);
...
//events *after* attempt at client-side authentication
// callback might return after, say, 7 seconds
authenticateUser(function(userInfo) {
// setting visitor-level custom var
_gaq.push(['_setCustomVar', 1, 'AUTHED-USER', userInfo, 1]);
_gaq.push(['_trackEvent', 'TEST', 'EVENT AFTER AUTH', 1]);
});
(如果你試圖模仿這一點,請確保您運行「setCustomVar」第一事件觸發後相當長一段時間 - 只要你想給GA「足夠的時間「已發送的第一個事件)
這將創建下列‘與跟蹤事件的問題’下自定義變量:
從Facebook,無線響應用戶的信息可能會在其他事件已發送至Google Analytics後返回 - 訪問者級別的自定義變量似乎「解決了這個問題」,因爲它似乎甚至是本會話中之前跟蹤的事件(自定義變量設置之前)都是列在「自定義var值(在它們後面設置)」下面。
不同的用戶可能會使用相同的瀏覽器來使用該應用程序。 「覆蓋」訪問者級自定義變量的行爲是有問題的 - 似乎所有從此瀏覽器發出的pre-auth事件都在最新的custom-var值列出/分組。我嘗試在覆蓋前發出_deleteCustomVar調用 - 但這並未解決問題。
以不同的方式「解決」的第一個問題 - 我想不使用訪問者級自定義變量的(而是頁/會話之一) - 但是這將意味着所有的預AUTH事件不會在自定義var下列出 - 解決這個我認爲在驗證已經完成之後,以某種方式將所有事件跟蹤推遲到- 但是這看起來......呃..很奇怪。
另一個解決方案是使用我自己的「訪客cookie」。但GA已經這樣做了,所以我不願意重新發明輪子(並且在用戶切換之後,訪客的cookie將對於預先驗證事件「撒謊」)
對如何解決這種情況?
請注意,向Google Analytics發送個人身份信息違反了他們的服務條款。 – Eduardo
當然 - 但以上是一個問題,即使我只是登錄訪客的性別,用戶類型等... –