2015-10-19 203 views
2

我正在嘗試在我的Angular App中設置兩個分析跟蹤器。我的一個要求是爲每個登錄到應用程序的用戶設置一個跟蹤器,該應用程序會將頁面跟蹤和事件數據轉發到配置時已知的靜態跟蹤器。但是,第二個跟蹤器需要在運行時在用戶登錄後設置。它需要將分析數據發送到與其帳戶關聯的跟蹤器。AngularJS Google Analytics(分析)動態跟蹤器

我是使用谷歌分析的新手,並認爲它會像將ga命令隊列推送給追蹤者一樣簡單,但在閱讀分析開發者文獻後,似乎必須明確向兩個追蹤者發送頁面追蹤命令。

所以不是重新發明輪子,我看着revolunet/angular-google-analytics希望能解決我的問題。但是,它抱怨在運行時不設置跟蹤器。我試着用

AnalyticsProvider.delayScriptTag(true);

然後變異數組

Analytics.configuration.accounts;

在運行,但它似乎產生任何影響。

如果有人在過去有過這方面的經驗,請讓我知道,除了在ga命令隊列中放置封裝外,我正在尋找乾淨的Angular-ish解決方案,除非這是我最好的選擇。

謝謝!

+0

你能發佈你的配置代碼嗎? – webdev5

回答

0

有點遲,但對那些可能有幫助的人,我最終創建了一個負責設置動態跟蹤器的analyticsService。爲了它的工作添加以下到我的應用程序的config

AnalyticsProvider.delayScriptTag(true); 
AnalyticsProvider.ignoreFirstPageLoad(true); 
AnalyticsProvider.setPageEvent('$stateChangeSuccess'); 

這延緩了自動跟蹤的初始化。然後我分叉angular-google-analytics,在我analyticsService我做了我的API請求添加以下代碼

this._kickOffAutoTracking = function() { 
    // activates page tracking 
    if (trackRoutes) { 
    $rootScope.$on(pageEvent, function() { 
     that._trackPage(); 
    }); 
    } 
}; 

最後,得到了用戶的跟蹤並將其添加如下:

Analytics.setAccount([ 
    { tracker: DEFAULT_TRACKER, name: "defaultTracker", trackEvent: true }, 
    { tracker: user.analyticCode, name: "userTracker" } 
]) 

Analytics.createAnalyticsScriptTag(); 
Analytics.kickOffAutoTracking(); 

這是一個快速的骯髒的解決方案。

相關問題