ट्रैकिंग Google विश्लेषिकी पृष्ठ दृश्य AngularJS के साथ


221

मैं एक नए ऐप की स्थापना कर रहा हूं, जो कि लोन के रूप में AngularJS का उपयोग कर रहा है। क्लाइंट साइड में सब कुछ HTML5 पुशस्टेट के साथ किया जाता है और मैं Google Analytics में अपने पृष्ठ दृश्य ट्रैक करने में सक्षम होना चाहूंगा।


एंजुलार्टिक्स ट्राई
David

2
angulartics पदावनत है।
webdev5

5
@ webdev5 एंगुलर्टिक्स का एक नया संस्करण है। इसे आज़माएँ: angulartics.github.io
Devner

जवाबों:


240

यदि आप ng-viewअपने Angular ऐप का उपयोग कर रहे हैं, तो आप $viewContentLoadedईवेंट के लिए सुन सकते हैं और Google Analytics पर ट्रैकिंग ईवेंट पुश कर सकते हैं ।

यह मानते हुए कि आपने अपने ट्रैकिंग var _gaqइंडेक्स को अपनी मुख्य index.html फ़ाइल में एक नाम और MyCtrl के साथ सेट किया है, जिसे आपने ng-controllerनिर्देश में परिभाषित किया है ।

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

अद्यतन: गूगल-एनालिटिक्स के नए संस्करण के लिए यह एक का उपयोग करें

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

12
एफडब्ल्यूआईडब्ल्यू यह होना चाहिए _trackPageviewऔर नहीं _trackPageView... सिर को खरोंचने के 10 मिनट खर्च किए :)
सजल

123
मैं $rootScope.$on('$routeChangeSuccess', ...)
सह

5
@DavidRivers Hm, यह एक समय हो गया है, लेकिन सिर्फ इस उत्तर और मेरी टिप्पणी पर नज़र डालने से, ऐसा लगता है कि इसे लागू करने $rootScopeकी गारंटी होगी कि इसे किसी अन्य घटना या DOM परिवर्तन द्वारा नहीं हटाया जाएगा, और उपयोग करने routeChangeSuccessसे हर बार आग लग जाएगी स्थान बार परिवर्तन, केवल समय के बजाय आप अपना दृश्य स्रोत टेम्पलेट बदलते हैं। क्या इसका कोई मतलब है?
प्रातः काल

5
@ dg988 एक $ मार्ग परिवर्तन घटना के दौरान, आप पृष्ठ के शीर्षक को उल्टा नहीं जान सकते हैं (उदाहरण के लिए, इसे कंट्रोलर से डेटा संसाधित करने के बाद नियंत्रक के अंदर सेट किया जा सकता है)। Google Analytics के URL के साथ इस तरह अकेले पिछले पृष्ठ के शीर्षक को ट्रैक करेगा।
कॉन्स्टेंटिन टर्कस

43
यदि आप GA नई स्क्रिप्ट का उपयोग कर रहे हैं, तो यह भाग के $window.ga('send', 'pageview', { page: $location.path() });बजाय है $window._gaq...। इसके अलावा, आप ga('send', 'pageview');किसी पृष्ठ पर पहली बार आने पर डुप्लिकेट को रोकने के लिए अपने मूल GA कोड से निकालना चाह सकते हैं ।
CWSpear

57

जब कोई नया दृश्य लोड किया जाता है AngularJS, तो Google Analytics इसे नए पृष्ठ लोड के रूप में नहीं गिनता है। सौभाग्य से एक पृष्ठ के रूप में एक url लॉग करने के लिए GA को मैन्युअल रूप से बताने का एक तरीका है।

_gaq.push(['_trackPageview', '<url>']); काम करेंगे, लेकिन उसे एंगुलरजेएस के साथ कैसे बांधेंगे?

यहाँ एक सेवा है जिसका आप उपयोग कर सकते हैं:

(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 Analytics ट्रैकिंग कोड का उपयोग करना चाहिए:

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

6
यहां ध्यान देने योग्य बात यह है कि आपको "एनालिटिक्स" सेवा को कहीं न कहीं शामिल करना होगा। मैं app.run में मेरा किया था।
निक्स

क्या यह हर मॉड्यूल, या सिर्फ शुरुआती ऐप में शामिल होगा?
designermonkey

2
@Designermonkey यह काम करना चाहिए यदि आप अपने मुख्य ऐप मॉड्यूल में शामिल करते हैं। यदि आपके पास एक पूरी तरह से स्वतंत्र मॉड्यूल है, जिसे आपके मुख्य मॉड्यूल की आवश्यकता नहीं है, तो आपको इसे फिर से शामिल करने की आवश्यकता हो सकती है। चीयर्स!
हरलान डोबरेव

यदि आप किसी सेवा का उपयोग कर रहे हैं, तो आपको अपने कार्यों को "यह" कीवर्ड: स्रोत के साथ परिभाषित करना चाहिए । उदाहरण के लिए, सेवा के भीतर यह this.track = function($window.ga('send', 'pageview', {page: $location.url()});यह आपको googleAnalytics.track();अपने app.run () फ़ंक्शन के भीतर उपयोग करने की अनुमति देगा
zcoon

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

8
नोट: यदि आप न्यूनतम नाम / संकलन का उपयोग करते हैं, तो आपको पैरामीटर नाम निर्दिष्ट करने की आवश्यकता है:app.run(["$rootScope", "$location", function(...
dplass

यदि आप हर कंट्रोलर में GA कोड शामिल नहीं करना चाहते हैं तो यह समाधान बेहतरीन है।
breez

1
यदि आप async कोड है कि इतना महान नहीं है कि गतिशील रूप से अपना शीर्षक बदल देता है, तो यह बहुत अच्छा नहीं है।
जोहान

40

बस एक त्वरित इसके अलावा। यदि आप नए analytics.js का उपयोग कर रहे हैं, तो:

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

इसके अतिरिक्त एक टिप यह है कि गूगल एनालिटिक्स लोकलहोस्ट पर फायर नहीं करेगा। इसलिए यदि आप लोकलहोस्ट पर परीक्षण कर रहे हैं, तो डिफ़ॉल्ट बनाएं ( पूर्ण प्रलेखन ) के बजाय निम्नलिखित का उपयोग करें

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

अरे यार, थैंक्स। मुझे अजीब त्रुटियां हो रही थीं, और मैंने देखा कि मेरे स्निपेट में _gaq भी नहीं था, हे। मूर्खतापूर्ण Google: उनके कोड और वह सब अपडेट कर रहा है! Haha।
CWSpear

3
सुनिश्चित करें कि आप $windowखिड़की का उपयोग करने के लिए उपयोग करते हैं ( gaअकेले कोणीय के अंदर बहुत संभावना है undefined)। इसके अलावा, आप ga('send', 'pageview');किसी पृष्ठ पर पहली बार आने पर डुप्लिकेट को रोकने के लिए अपने मूल GA कोड से निकालना चाह सकते हैं ।
CWSpear

6
यूआई-राउटर का उपयोग करके आप पृष्ठ दृश्य इस तरह भेज सकते हैं:$rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams) { ga('send', 'pageview', { 'page': $location.path(), 'title': toState.name }); });
फेरिस

2
जोड़ने के लिए: यदि आप अपने ऐप में खोज मापदंडों का उपयोग कर रहे हैं, तो आप उपयोग करने वालों को ट्रैक कर सकते हैं$location.url()
Ade

2
.Path () .url () से बेहतर है क्योंकि आप सामान्य रूप से क्वेरी स्ट्रिंग परम को बाहर करना चाहते हैं। देखें: Google Analytics कॉन्फ़िगरेशन गलती # 2: क्वेरी स्ट्रिंग चर
frodo2975

11

मैंने एक सेवा + फ़िल्टर बनाया है जो इस से आप लोगों की मदद कर सकता है, और शायद कुछ अन्य प्रदाताओं के साथ भी अगर आप भविष्य में उन्हें जोड़ना चाहते हैं।

की जाँच करें https://github.com/mgonto/angularytics और मुझे पता है कि यह कैसे आप के लिए बाहर काम करता है।


10

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 () के बजाय) और $ pathChangeSuccess का उपयोग करके $ StateChangeSuccess के बजाय ट्रिक किया।

उम्मीद है की यह मदद करेगा।


7

मैंने उपर्युक्त दृष्टिकोण का उपयोग करके जीथब पर एक सरल उदाहरण बनाया है।

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


मैंने पथ को बेहतर ढंग से रिपोर्ट करने के लिए एक सुधार जोड़ा। तो अब अगर आपके पास /account/:accountId उर्फ मार्ग का मार्ग है http://somesite.com/account/123तो क्या अब यह मार्ग रिपोर्ट करेगा/account?accountId=123
IBootstrap

@IBootstrap मार्ग स्ट्रिंग को क्वेरी स्ट्रिंग में रखने का क्या लाभ है?
पावेल निकोलोव

@IBootstrap मेरा एक ही सवाल है, रूट पैरा को क्वेरी स्ट्रिंग में डालने से क्या लाभ है?
डिजंग गुयेन

1
सभी मार्ग अलग-अलग पृष्ठ नहीं हैं और GA प्रत्येक मार्ग को अलग-अलग पृष्ठ मानते हैं। मार्ग को क्वेरी स्ट्रिंग में परिवर्तित करके, आपके पास क्वेरी स्ट्रिंग के कुछ हिस्सों को अनदेखा करने का विकल्प है।
IBootstrap

5

ऐसा करने का सबसे अच्छा तरीका Google श्रोता प्रबंधक का उपयोग इतिहास श्रोताओं के आधार पर आपके Google Analytics टैग को आग लगाने के लिए किया जाता है। ये GTM इंटरफ़ेस में बनाए गए हैं और क्लाइंट साइड HTML5 इंटरैक्शन पर आसानी से नज़र रखने की अनुमति देते हैं।

अंतर्निहित को सक्षम करें इतिहास चर को और इतिहास परिवर्तनों के आधार पर किसी घटना को आग लगाने के लिए ट्रिगर बनाएं।


5

अपने में index.html, गा स्निपेट कॉपी और पेस्ट करें लेकिन लाइन हटा देंga('send', 'pageview');

<!-- Google Analytics: change UA-XXXXX-X to be your site's ID -->
<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-XXXXXXXX-X');
</script>

मैं इसे my-google-analytics.jsस्वयं इंजेक्शन के साथ अपने कारखाने की फ़ाइल देना पसंद करता हूं :

angular.module('myApp')
  .factory('myGoogleAnalytics', [
    '$rootScope', '$window', '$location', 
    function ($rootScope, $window, $location) {

      var myGoogleAnalytics = {};

      /**
       * Set the page to the current location path
       * and then send a pageview to log path change.
       */
      myGoogleAnalytics.sendPageview = function() {
        if ($window.ga) {
          $window.ga('set', 'page', $location.path());
          $window.ga('send', 'pageview');
        }
      }

      // subscribe to events
      $rootScope.$on('$viewContentLoaded', myGoogleAnalytics.sendPageview);

      return myGoogleAnalytics;
    }
  ])
  .run([
    'myGoogleAnalytics', 
    function(myGoogleAnalytics) {
        // inject self
    }
  ]);

मुझे वह सेल्फी आपत्तिजनक लगती है :) अप
सैम व्लोबार्ग्स

जिज्ञासा से बाहर, आप pageवर्तमान पथ के साथ क्यों सेट करते हैं , और फिर इसे एक के रूप में प्रस्तुत करते हैं pageview? सिर्फ इसके बजाय इस तरह से करने से क्या फर्क पड़ता है $window.ga('send', 'pageview', {page: $location.url()});?
फिज़िक्स

1
मुझे टीबीएच याद नहीं है, लेकिन इसे देखकर मैं कहूंगा कि यह अन्य कार्यों के लिए लचीलापन छोड़ देता है या अतिरिक्त सामान को कहीं और लॉग कर रहा है, और वर्तमान पृष्ठ के स्पष्ट रूप से बता कर अधिक सटीक हो सकता है, इसलिए जीए इसके बजाय सही ढंग से कार्य कर सकता है। बस कुछ "मनमाना" पृष्ठ url के लिए एक पृष्ठदृश्य लॉगिंग करना चाहिए।
२०

यदि आप चाहते हैं कि Google में रियलटाइम एनालिटिक्स काम करे तो आपको "सेट" करना चाहिए। दस्तावेज़ीकरण संदर्भ क्यों देखें: Developers.google.com/analytics/devguides/collection/…
fuzzysearch

'सेट' की सिफारिश की जाती है ताकि एक ही पृष्ठ पर भेजे जाने वाले हर एक हिट (जैसे GA ईवेंट को ट्रैक करने के लिए उपयोगकर्ता इंटरैक्शन) को एक ही पेज वैल्यू के साथ भेजा जाए। रियलटाइम एनालिटिक्स से कोई लेना-देना नहीं। देख developers.google.com/analytics/devguides/collection/...
ओपन एसईओ

5

मैंने पाया कि gtag()इसके बजाय फ़ंक्शन ने काम कियाga()

Index.html फ़ाइल में, <head>अनुभाग में:

<script async src="https://www.googletagmanager.com/gtag/js?id=TrackingId"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'TrackingId');
</script>

AngularJS कोड में:

app.run(function ($rootScope, $location) {
  $rootScope.$on('$routeChangeSuccess', function() {
    gtag('config', 'TrackingId', {'page_path': $location.path()});
  });
});

TrackingIdअपने खुद के ट्रैकिंग आईडी से बदलें ।


4

अगर कोई निर्देशों का उपयोग करके लागू करना चाहता है, तो index.html में एक div की पहचान करें (या बनाएं) (बस बॉडी टैग के तहत, या अन्य DOM स्तर पर)

<div class="google-analytics"/>

और फिर निर्देश में निम्नलिखित कोड जोड़ें

myApp.directive('googleAnalytics', function ( $location, $window ) {
  return {
    scope: true,
    link: function (scope) {
      scope.$on( '$routeChangeSuccess', function () {
        $window._gaq.push(['_trackPageview', $location.path()]);
      });
    }
  };
});

3

यदि आप यू-राउटर का उपयोग कर रहे हैं, तो आप $ StateChangeSuccess की सदस्यता इस तरह ले सकते हैं:

$rootScope.$on('$stateChangeSuccess', function (event) {
    $window.ga('send', 'pageview', $location.path());
});

पूरी तरह से काम करने वाले उदाहरण के लिए इस ब्लॉग पोस्ट को देखें


3

यह सुनिश्चित करने के लिए कि Google realtime विश्लेषिकी के लिए मार्ग उठाए गए हैं, GA 'सेट' का उपयोग करें। अन्यथा GA के लिए बाद की कॉलें रियलटाइम पैनल में नहीं दिखाई देंगी।

$scope.$on('$routeChangeSuccess', function() {
    $window.ga('set', 'page', $location.url());
    $window.ga('send', 'pageview');
});

Google इस दृष्टिकोण को आमतौर पर 'send' में 3rd param पास करने के बजाय दृढ़ता से सलाह देता है। https://developers.google.com/analytics/devguides/collection/analyticsjs/single-page-applications


3

आप में से जो लोग ngRoute के बजाय AngularUI Router का उपयोग कर रहे हैं, वे पृष्ठ दृश्यों को ट्रैक करने के लिए निम्न कोड का उपयोग कर सकते हैं।

app.run(function ($rootScope) {
    $rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams) {
        ga('set', 'page', toState.url);
        ga('send', 'pageview');
    });
});

3

सिंगल पेज एप्लिकेशन बनाने वाले डेवलपर्स ऑटोट्रैक का उपयोग कर सकते हैं , जिसमें एक urlChangeTracker प्लगइन शामिल है जो आपके लिए इस गाइड में सूचीबद्ध सभी महत्वपूर्ण विचारों को संभालता है। उपयोग और स्थापना निर्देशों के लिए ऑटोट्रैक प्रलेखन देखें ।


3

मैं html5 मोड में AngluarJS का उपयोग कर रहा हूं। मैंने निम्नलिखित समाधान को सबसे विश्वसनीय पाया:

कोणीय-गूगल-एनालिटिक्स लाइब्रेरी का उपयोग करें । इसे कुछ इस तरह से शुरू करें:

//Do this in module that is always initialized on your webapp    
angular.module('core').config(["AnalyticsProvider",
  function (AnalyticsProvider) {
    AnalyticsProvider.setAccount(YOUR_GOOGLE_ANALYTICS_TRACKING_CODE);

    //Ignoring first page load because of HTML5 route mode to ensure that page view is called only when you explicitly call for pageview event
    AnalyticsProvider.ignoreFirstPageLoad(true);
  }
]);

उसके बाद, $ StateChangeSuccess पर श्रोता जोड़ें और ट्रैकपेज इवेंट भेजें।

angular.module('core').run(['$rootScope', '$location', 'Analytics', 
    function($rootScope, $location, Analytics) {
        $rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams, options) {
            try {
                Analytics.trackPage($location.url());
            }
            catch(err) {
              //user browser is disabling tracking
            }
        });
    }
]);

किसी भी समय, जब आपके पास आपका उपयोगकर्ता initalized है, तो आप वहां Analytics को इंजेक्ट कर सकते हैं और कॉल कर सकते हैं:

Analytics.set('&uid', user.id);

2

मैं यूआई-राउटर का उपयोग कर रहा हूं और मेरा कोड इस तरह दिखता है:

$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams){
  /* Google analytics */
  var path = toState.url;
  for(var i in toParams){
    path = path.replace(':' + i, toParams[i]);
  }
  /* global ga */
  ga('send', 'pageview', path);
});

इस तरह मैं विभिन्न राज्यों को ट्रैक कर सकता हूं। शायद किसी को यह उपयोगी लगेगा।


1

मैं व्यक्तिगत रूप से वर्तमान पथ के बजाय टेम्पलेट URL के साथ अपने विश्लेषिकी को स्थापित करना पसंद करता हूं। यह मुख्य रूप से है क्योंकि मेरे आवेदन में कई कस्टम पथ हैं जैसे message/:idया profile/:id। अगर मुझे ये रास्ते भेजने थे, तो मेरे पास इतने सारे पेज होंगे जिन्हें एनालिटिक्स के भीतर देखा जा सकता है, यह जांचना बहुत मुश्किल होगा कि कौन से पेज पर यूजर्स सबसे ज्यादा विजिट कर रहे हैं।

$rootScope.$on('$viewContentLoaded', function(event) {
    $window.ga('send', 'pageview', {
        page: $route.current.templateUrl.replace("views", "")
    });
});

अब मुझे अपने विश्लेषिकी के भीतर user-profile.htmlऔर message.htmlइसके बजाय कई पृष्ठों के स्वच्छ पृष्ठ दृश्य मिलते हैं profile/1, profile/2औरprofile/3 । अब मैं रिपोर्ट देखने के लिए रिपोर्ट कर सकता हूं कि कितने लोग उपयोगकर्ता प्रोफाइल देख रहे हैं।

अगर किसी को इस बात पर कोई आपत्ति है कि यह एनालिटिक्स के भीतर बुरा व्यवहार क्यों है, तो मुझे इसके बारे में सुनकर ज्यादा खुशी होगी। Google Analytics का उपयोग करने के लिए काफी नया है, इसलिए यह सुनिश्चित नहीं है कि यह सबसे अच्छा तरीका है या नहीं।


1

मेरा सुझाव है कि सेगमेंट एनालिटिक्स लाइब्रेरी का उपयोग करें और हमारे कोणीय क्विकस्टार्ट गाइड का अनुसरण करें । आप एक ही एपीआई के साथ पृष्ठ के भ्रमण को ट्रैक करने और उपयोगकर्ता के व्यवहार को ट्रैक करने में सक्षम होंगे। यदि आपके पास एक एसपीए है, तो आप RouterOutletपृष्ठ को प्रस्तुत करने और कॉल ngOnInitको आह्वान करने के लिए घटक को संभालने की अनुमति दे सकते pageहैं। नीचे दिए गए उदाहरण से पता चलता है कि आप ऐसा कैसे कर सकते हैं:

@Component({
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {
  ngOnInit() {
    window.analytics.page('Home');
  }
}

मैं https://github.com/segmentio/analytics-angular का अनुचर हूं । सेगमेंट के साथ, यदि आप बिना कोई अतिरिक्त कोड लिखने के कई एनालिटिक्स टूल (हम 250+ से अधिक गंतव्यों का समर्थन करते हैं) को आज़माने के इच्छुक हैं, तो आप स्विच के फ्लिप द्वारा अलग-अलग गंतव्यों को बंद कर सकते हैं। 🙂


0

पेड्रो लोपेज के जवाब के साथ और भी विलय,

मैंने इसे अपने ngGoogleAnalytis मॉड्यूल में जोड़ा (जिसका मैं कई ऐप्स में पुन: उपयोग करता हूं):

var base = $('base').attr('href').replace(/\/$/, "");

इस मामले में, मेरे पास अपनी अनुक्रमणिका लिंक में एक टैग है:

  <base href="/store/">

यह उपयोगी है जब html5 मोड को angular.js v1.3 पर उपयोग किया जाता है

(यदि आपका आधार टैग स्लैश / से समाप्त नहीं होता है तो रिप्लेसमेंट () फंक्शन कॉल को हटा दें)

angular.module("ngGoogleAnalytics", []).run(['$rootScope', '$location', '$window',
    function($rootScope, $location, $window) {
      $rootScope.$on('$routeChangeSuccess',
        function(event) {
          if (!$window.ga) { return; }
          var base = $('base').attr('href').replace(/\/$/, "");

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

-3

यदि आप Google Analytics के नए ट्रैकिंग कोड के पूर्ण नियंत्रण की तलाश में हैं, तो आप मेरे बहुत ही कोणीय-GA का उपयोग कर सकते हैं ।

यह gaइंजेक्शन के माध्यम से उपलब्ध करता है, इसलिए यह परीक्षण करना आसान है। यह किसी भी जादू नहीं करता है, इसके अलावा हर मार्ग पर परिवर्तन सेट करें। आपको अभी भी यहाँ की तरह पेजव्यू भेजना है।

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

अतिरिक्त वहाँ एक निर्देश है gaजो घटनाओं के लिए कई विश्लेषिकी कार्यों को बांधने की अनुमति देता है, जैसे:

<a href="#" ga="[['set', 'metric1', 10], ['send', 'event', 'player', 'play', video.id]]"></a>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.