[google-analytics] AngularJS로 Google 웹 로그 분석 페이지 조회수 추적

AngularJS를 프론트 엔드로 사용하여 새 앱을 설정하고 있습니다. 클라이언트 측의 모든 것은 HTML5 푸시 상태로 수행되며 Google 애널리틱스에서 내 페이지 조회수를 추적하고 싶습니다.



답변

ng-viewAngular 앱에서 사용중인 경우 $viewContentLoaded이벤트를 수신 하고 추적 이벤트를 Google 웹 로그 분석으로 푸시 할 수 있습니다 .

이름이 var _gaqMyCtrl 인 기본 index.html 파일에 추적 코드를 설정했다고 가정하면 ng-controller지시문 에서 정의한 것입니다 .

function MyCtrl($scope, $location, $window) {
  $scope.$on('$viewContentLoaded', function(event) {
    $window._gaq.push(['_trackPageView', $location.url()]);
  });
}

업데이트 :
새로운 버전의 google-analytics는이 버전을 사용하십시오.

function MyCtrl($scope, $location, $window) {
  $scope.$on('$viewContentLoaded', function(event) {
    $window.ga('send', 'pageview', { page: $location.url() });
  });
}


답변

에 새보기가로드 AngularJS되면 Google 웹 로그 분석은 새 페이지로드로 계산하지 않습니다. 다행히도 GA에 URL을 새 페이지 뷰로 기록하도록 수동으로 지시하는 방법이 있습니다.

_gaq.push(['_trackPageview', '<url>']); 작업을 수행하지만 AngularJS와 바인딩하는 방법은 무엇입니까?

사용할 수있는 서비스는 다음과 같습니다.

(function(angular) {

  angular.module('analytics', ['ng']).service('analytics', [
    '$rootScope', '$window', '$location', function($rootScope, $window, $location) {
      var track = function() {
        $window._gaq.push(['_trackPageview', $location.path()]);
      };
      $rootScope.$on('$viewContentLoaded', track);
    }
  ]);

}(window.angular));

각도 모듈을 정의 할 때 다음과 같이 분석 모듈을 포함하십시오.

angular.module('myappname', ['analytics']);

업데이트 :

다음과 함께 새로운 범용 Google 웹 로그 분석 추적 코드를 사용해야합니다.

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


답변

app.run(function ($rootScope, $location) {
    $rootScope.$on('$routeChangeSuccess', function(){
        ga('send', 'pageview', $location.path());
    });
});


답변

빠른 추가. 새로운 analytics.js를 사용중인 경우 다음을 수행하십시오.

var track = function() {
 ga('send', 'pageview', {'page': $location.path()});
};

또한 한 가지 팁은 Google 웹 로그 분석이 localhost에서 실행되지 않는다는 것입니다. 따라서 localhost에서 테스트하는 경우 기본 작성 ( 전체 문서 ) 대신 다음을 사용하십시오.

ga('create', 'UA-XXXX-Y', {'cookieDomain': 'none'});


답변

나는 당신을 도울 수있는 서비스 + 필터를 만들었으며, 나중에 추가하도록 선택하면 다른 공급자와 함께 할 수도 있습니다.

https://github.com/mgonto/angularytics를 확인하고 이것이 어떻게 작동하는지 알려주세요.


답변

wynnwu와 dpineda의 답변을 병합하는 것이 저에게 효과적이었습니다.

angular.module('app', [])
  .run(['$rootScope', '$location', '$window',
    function($rootScope, $location, $window) {
      $rootScope.$on('$routeChangeSuccess',
        function(event) {
          if (!$window.ga) {
            return;
          }
          $window.ga('send', 'pageview', {
            page: $location.path()
          });
        });
    }
  ]);

세 번째 매개 변수를 $ location.path () 대신 객체로 설정하고 $ stateChangeSuccess 대신 $ routeChangeSuccess를 사용하여 트릭을 수행했습니다.

도움이 되었기를 바랍니다.


답변

위의 접근 방식을 사용하여 github에 대한 간단한 예를 만들었습니다.

https://github.com/isamuelson/angularjs-googleanalytics