2014-11-13 40 views
7

Sto cercando di utilizzare il plug-in "https://github.com/danwilson/google-analytics-plugin.git" con ngCordova. Ho aggiunto il plugin e aggiunto ngCordova come dipendenza nel mio controller.

quando provo a impostare:

$cordovaGoogleAnalytics.startTrackerWithId('UA-XXXXXXXX-X'); 

ottengo questo errore: 'TypeError: Impossibile leggere la proprietà 'startTrackerWithId' undefined'.

Ho impostato la mia analisi come app per dispositivi mobili nella dashboard di Google.

Qualcuno può aiutare con questo?

+0

Dove viene dichiarato $ cordovaGoogleAnalytics? È un parametro del controller? –

risposta

7

Ciò accade perché si sta tentando di utilizzare il plug-in di analisi prima che sia inizializzato da cordova.

Basta avvolgere l'inizializzazione recursevely con un setTimetout:

function _waitForAnalytics(){ 
    if(typeof analytics !== 'undefined'){ 
     $cordovaGoogleAnalytics.debugMode(); 
     $cordovaGoogleAnalytics.startTrackerWithId('UA-XXXXXXXX-X'); 
     $cordovaGoogleAnalytics.trackView('APP first screen'); 
    } 
    else{ 
     setTimeout(function(){ 
      _waitForAnalytics(); 
     },250); 
    } 
}; 
_waitForAnalytics(); 
+0

Accettare la risposta di cui sopra, ma è necessario aggiungere '_waitForAnalytics();' dopo l'ultima riga di codice sopra. Grazie per la risposta :-) – mcneela86

+0

Ooops, mi dispiace, ho modificato la risposta –

+0

L'opzione sopra funziona bene, ma ho anche provato con il metodo qui (http://forum.ionicframework.com/t/ngcordova -google-analytics-cordovagoogleanalytics/12619/3) e funziona anche. un metodo usa ngcordova e uno no. – mcneela86

1

Penso che questo sia il modo migliore di monitoraggio con Google Analytics

$ionicPlatform.ready(function() { 
    $rootScope.$on('$stateChangeSuccess', function() { 
    if(typeof analytics !== undefined) { 
     analytics.debugMode(); 
     analytics.startTrackerWithId("UA-xxxxxxxx-x"); 
     analytics.trackView($state.current.name); 
    } else { 
     console.log("Google Analytics Unavailable"); 
    } 
    }); 
}); 

Questo terrà traccia di ogni cambiamento di stato sulla domanda e ti fornirà lo stato dell'utente.