7

Ich versuche das Plugin 'https://github.com/danwilson/google-analytics-plugin.git' mit ngCordova zu verwenden. Ich habe das Plugin hinzugefügt und ngCordova als eine Abhängigkeit in meinem Controller hinzugefügt.

, wenn ich versuche zu setzen:

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

ich diese Fehlermeldung: ‚Typeerror: kann Eigenschaft lesen‚startTrackerWithId‘undefinierter‘.

Ich habe meine Analytics als mobile App im Google Dashboard eingerichtet.

Kann jemand dabei helfen?

+0

Wo $ cordovaGoogleAnalytics deklariert ist? Ist es ein Parameter des Controllers? –

Antwort

7

Das passiert, weil Sie versuchen, Analytics-Plugin zu verwenden, bevor es von Cordova initialisiert wird.

einfach die Initialisierung wickeln recursevely mit einem 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

Akzeptiert die obige Antwort, musste aber '_waitForAnalytics();' nach der letzten Zeile des obigen Codes. Danke für die Antwort :-) – mcneela86

+0

Hoppla, tut mir leid, ich habe die Antwort bearbeitet –

+0

Die obige Option funktioniert gut, aber ich habe auch mit der Methode hier versucht (http://forum.ionicframework.com/t/ngcordova -google-analytics-cordovagoogleanalytics/12619/3) und es funktioniert auch. Eine Methode verwendet ngcordova und eine nicht. – mcneela86

1

Ich denke, dass dies der beste Weg, um mit Google Analytics von Tracking

$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"); 
    } 
    }); 
}); 

Diese auf die Anwendung auf jeder Statusänderung verfolgen wird und gibt Ihnen den Status, in dem der Benutzer aktiv ist.