2014-12-14 16 views
5

Sto cercando di ottenere il percorso dello stato da inviare a google analytics. Ci sono alcuni problemi Sto usando stati astratti, quindi l'uso di qualcosa come toState.url non funzionerà poiché non prenderà l'intero URL.ui-router che riceve il percorso corrente sul cambio di stato per google analytics

Ho pensato di utilizzare $ window.location.pathname su $ stateChangeSuccess, ma risulta che il successo si verifica prima che l'URL sia aggiornato nel browser. Ciò significa che le visualizzazioni di pagina vengono inviate a una visualizzazione di 1 pagina troppo tardi. vale a dire.

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

In sostanza il risultato finale dovrebbe essere qualcosa di simile, ma con l'url TOSTATE o percorso:

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

risposta

4

sembra è necessario utilizzare $ posizione invece per ottenere il nuovo percorso:

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

Questo non è il lavoro per la scheda "Comportamento" sull'amministrazione del sito di Google Analytics :(se lo vedi in tempo reale funzionerà perfettamente! Ma proprio non lì in opzione "comportamento" – RicardoGonzales

Problemi correlati