2015-11-23 54 views
1

我正在將Google Analytics添加到我擁有的AngularJS應用程序中。由於某種原因,它不起作用,但我相信我的代碼是正確的。AngularJS中的Google Analytics。無法看到實時頁面查看

我包括在head標籤的底部此腳本:

<!--Google Analytics--> 
<script> 
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 
     m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 
    })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 

    ga('create', 'UA-XXXXXXX-X', 'auto'); 
</script> 

我在本地主機上測試這一點,所以「汽車」,應該工作。

這是我的模塊中的代碼:

angular 
    .module('myModule') 
    .run(['$rootScope', '$location', '$window', function($rootScope, $location, $window){ 
     $rootScope 
      .$on('$stateChangeSuccess', 
       function(event){ 

        if (!$window.ga) 
         return; 

        $window.ga('send', 'pageview', { page: $location.path() }); 
       }); 
    }]); 

我已經確定,這運行的每個頁面變更時間。我沒有收到任何錯誤,但是當我進入我的分析時,我沒有看到實時標籤中的任何內容。任何幫助或想法表示讚賞。

+0

嘗試$ locationChangeSuccess事件,它爲我工作 –

+0

$ stateChangeSuccess工作得很好。當我在console.log中寫入內容時,每當我進入新頁面時都會打印出來,所以這不是問題。 –

回答

1

你有SPA嗎? 嘗試使用目標狀態的網址(或名稱):

.$on('$stateChangeSuccess', 
      function(event, toState, toParams, fromState, fromParams){ 

       if (!$window.ga) 
        return; 

       $window.ga('send', 'pageview', { page: toState.url }); 
      }); 

記住GA將取決於從相同的頁面和IP窗口時間放棄跟蹤請求。

+0

哦,是嗎?那麼這是非常有用的信息。我會測試一下,看看是否因爲我在同一個IP上運行。如果這是原因,我一定會選擇你的答案作爲解決方案。謝謝。 –

0

對我來說,解決辦法看到我的實時概述所有點擊是這樣的:

$rootScope.$on('$viewContentLoaded', function() { 
    if ($window.ga != undefined) { 
     $window.ga('set', 'location', window.location.origin + window.location.pathname); 
     $window.ga('send', 'pageview'); 
    } 
}); 

但我不知道,如果發送的,而不是頁面參數位置參數是正確的報告的角度。

相關問題