[英]Google Analytics in AngularJS. Cannot see real-time page viewing
我正在將Google Analytics(分析)添加到我擁有的AngularJS應用程序中。 由於某種原因,它不起作用,但是我相信我的代碼是正確的。
我將此腳本包括在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() });
});
}]);
我確保每次頁面更改時都可以運行。 而且我沒有收到任何錯誤,但是當我進行分析時,在“實時”選項卡中什么也看不到。 任何幫助或想法表示贊賞。
你有SPA嗎? 嘗試使用目標狀態網址(或名稱):
.$on('$stateChangeSuccess',
function(event, toState, toParams, fromState, fromParams){
if (!$window.ga)
return;
$window.ga('send', 'pageview', { page: toState.url });
});
請記住,GA會根據同一頁面和IP上的窗口時間來丟棄跟蹤請求。
另一個選擇是在您的單頁應用程序上實現Google跟蹤代碼管理器,並在gtm.historyChange事件上觸發Google Analytics(分析)Pageview標記。 這是Google跟蹤代碼管理器v.1的指南:
https://moz.com/blog/recover-lost-pageviews-in-pushstate-experiences
使用Google Analytics(分析)“設置”可確保選擇路線以進行Google實時分析。 否則,隨后對GA的調用將不會顯示在實時面板中。
$scope.$on('$routeChangeSuccess', function() {
$window.ga('set', 'page', $location.url());
$window.ga('send', 'pageview');
});
Google強烈建議采用這種方法,而不是在“發送”中傳遞第三個參數。 https://developers.google.com/analytics/devguides/collection/analyticsjs/single-page-applications
對我來說,在實時概述中查看所有點擊的解決方案是:
$rootScope.$on('$viewContentLoaded', function() {
if ($window.ga != undefined) {
$window.ga('set', 'location', window.location.origin + window.location.pathname);
$window.ga('send', 'pageview');
}
});
但是我不知道從報告的角度來看發送位置參數而不是頁面參數是否正確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.