2014-12-14 4 views
5

Ich versuche, den Pfad des Staates an Google Analytics zu senden. Es gibt einige Probleme. Ich verwende abstrakte Zustände, also wird die Verwendung von so etwas wie "state.url" nicht funktionieren, da es nicht die gesamte URL erfasst.UI-Router den aktuellen Pfad auf Statusänderung für Google Analytics

Ich dachte über die Verwendung von $ window.location.pathname auf $ stateChangeSuccess, aber es stellt sich heraus, Erfolg brennt, bevor die URL im Browser aktualisiert wird. Dies bedeutet, dass Seitenaufrufe zu spät zu einer Seite gesendet werden. dh.

click about: sends nothing 
click contact: sends about url 
click services: sends contact url 

Grundsätzlich ist das Endergebnis sollte in etwa so aussehen, aber mit der toState URL oder Pfadname:

$rootScope.$on("$stateChangeStart", function(event, toState, toParams, fromState, fromParams) { 
    var path = ???; 
    ga('send', 'pageview', path); 
}); 

Antwort

4

sieht aus wie Sie stattdessen $ Standort verwenden müssen, um den neuen Pfad zu erhalten:

$rootScope.$on("$stateChangeSuccess", function(event, toState, toParams, fromState, fromParams) { 
    $window.ga('send', 'pageview', $location.path()); 
}); 
+0

Dies ist keine Arbeit für "Behaviour" -Registerkarte auf Google Analytics Website-Verwaltung :(Wenn Sie dies in Echtzeit sehen, wird es perfekt funktionieren! Aber nur dort nicht in "Verhalten" -Option – RicardoGonzales

Verwandte Themen