2016-03-11 45 views
0

我已經實現了Google analytics Opt out功能,但我實際需要的是一個用戶選擇undo他的行動。切換谷歌分析 - 選擇退出/選擇在

拉特說,用戶點擊按鈕退出,但後來改變了主意。在任何情況下,我們都希望進行該跟蹤,因此用戶有權重新啓用跟蹤是一件好事。

我遇到的問題是不確定如何處理這個問題。在這篇文章的最後是jsFiddle的例子。 我在做什麼最初包括跟蹤代碼,然後optionally creating the tracker

if (document.cookie.indexOf(disableGa + '=true') > -1) { 
    window[disableGa] = true; 

    // Remove the tracker 
    ga(function() { 
     ga('remove', gaProperty); 
    }); 

} else { 

    // Create the tracker 
    ga('create', gaProperty, 'auto', { 
     anonymizeIp: true 
    }); 
    ga('send', 'pageview'); 
} 

所以,當用戶到達頁面我要麼實例的創建跟蹤器,還是不行。 我不清楚的是remove屬性。

在此之後,在頁面上有允許用戶切換GA狀態的按鈕。

功能與上述相同。但我也希望允許動態啓用Google分析的選項。

我處理的cookie按例子:

// Set to the same value as the web property used on the site 
var gaProperty = 'UA-XXXX-Y'; 

// Disable tracking if the opt-out cookie exists. 
var disableStr = 'ga-disable-' + gaProperty; 
if (document.cookie.indexOf(disableStr + '=true') > -1) { 
    window[disableStr] = true; 
} 

// Opt-out function 
function gaOptout() { 
    document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59  UTC; path=/'; 
    window[disableStr] = true; 
} 

然後我的想法是要註冊/註銷每個用戶請求的跟蹤器,但我不知道如果我做正確。

// Remove the tracker 
ga(function() { 
    ga('remove', gaProperty); 
}); 

不知道是否值得一提,但我在一個Angular應用中實現了這一點。

此外,我有條件地創建和刪除的原因是因爲我記得在發佈ga('create')之前必須設置全局屬性window.ga-disable-UA-XXXX-Y = true

對於調試,我使用的是Google's Tag Assistant,它在切換GA時報告重複使用跟蹤ID。 https://jsfiddle.net/vLyeszfg/18/

正如您可能看到的,我已成功通過編程啓用谷歌分析,但移除是問題所在。

+0

通過使用這個工具我發現我沒有註銷Google分析,並且每次啓用分析時都會一直添加新節點。 https://chrome.google。 com/webstore/detail/waspinspector-analytics -s/niaoghengfohplclhbjnjheodgkejpih –

回答

1

我從來沒有使用刪除,但according to the docs它並不需要一個參數 - 它通過名稱移除一個跟蹤程序,而不是跟蹤給定屬性(所以ga('remove')刪除默認的跟蹤器,ga('myCustomTracker.remove')刪除一個名爲跟蹤程序「myCustomTracker」等

我不知道但是你爲什麼會打擾既能夠選擇退出,並刪除跟蹤器(選擇退出是沒有意義的,當沒有跟蹤程序)。

+0

我試過刪除默認跟蹤器的方式,但似乎沒有工作。我的調試方法是Google的「標記助手」,當我打開和關閉選項時會發生什麼,它說:「相同的網絡媒體資源ID被跟蹤兩次。「 –

+0

刪除默認跟蹤器是ga('remove')應該自己做的 - 你發現Google文檔在這裏不正確嗎?順便說一句,」跟蹤兩次相同的id「似乎是SPA的人造物,或者至少特別是Angular--這個彈出了幾個以前的問題(AFAIK全都沒有答案唉) –

+0

我已經將jsFiddle添加到上面的描述中。 –