6 Stimmen

Google Analytics auf iOS gibt beim Versand NEIN zurück, keine Debug-Ausgabe

Bei dem Versuch, das Google Analytics SDK für iOS zu implementieren, bin ich auf zwei Mauern gestoßen.

Der erste ist, dass nach der Ausführung dieses Codes in application:DidFinishLaunchingWithOptions:

[[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-XXXXXXX-YY"
                                       dispatchPeriod:10
                                             delegate:self];
[[GANTracker sharedTracker] setDebug:YES];

und dann versuchen, etwas zu verfolgen oder anzurufen dispatch Es werden keinerlei Debug-Meldungen protokolliert. Ich habe hinzugefügt NSLog Zeilen vor und nach den Tracking-Aufrufen und der Code wird definitiv erreicht.

Zweitens, wenn ich versuche, einen manuellen Versand durchzuführen, wird Folgendes zurückgegeben NO . Bei allen anderen Ausgaben, die ich online gesehen habe, sind dispatch gibt zurück. YES aber es geht irgendwie nicht richtig durch. Was kann man tun, wenn dispatch gibt tatsächlich zurück NO ?

Ich habe versucht, eine NSError * Verweis auf die Track-Methoden und die tatsächlich erfolgreichen (kein Fehler, Funktion kehrt zurück YES ). Aber die Ereignisse werden definitiv nicht regelmäßig versendet, da wir mehr als 24 Stunden später nichts mehr auf dem GA-Konto sehen.

EDIT: Ich habe auch NSLog Aufrufe in den beiden Delegatenmethoden ( hitDispatched: y trackerDispatchDidComplete:eventsDispatched:eventsFailedDispatch: ), und auch diese werden nicht aufgerufen.

1voto

SachinVsSachin Punkte 6312

Ich denke, Sie sollten dies mit der Delegierungsmethode von GANTracker überprüfen

- (void)trackerDispatchDidComplete:(GANTracker *)tracker
              eventsDispatched:(NSUInteger)hitsDispatched
          eventsFailedDispatch:(NSUInteger)hitsFailedDispatch{

//print or check number of events failed or success

}

0voto

Amar Punkte 13202
//Delegate is set to 'nil' instead of class instance which implements the delegate methods.    
[[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-XXXXXXX-YY"
                                   dispatchPeriod:10
                                         delegate:nil];

In Ihrem Fall, wenn man davon ausgeht, dass UIApplicationDelegate möglicherweise Folgendes implementiert GANTrackerDelegate sollte der Nachrichtenaufruf den Delegaten als ' selbst ' .

Prost!!
Amar.

0voto

Danra Punkte 9156

Möglicherweise verlässt sich der Versand auf die Ausführungsschleife des aufrufenden Threads - ist es möglich, dass Sie dies von einem sekundären Thread aus ausführen, der zu dem Zeitpunkt, zu dem der Versand Sie zurückrufen soll, möglicherweise noch nicht existiert?

0voto

Ben Collier Punkte 618

Sie haben dryRun nicht aktiviert, oder? Überprüfen Sie dies mit:

[[GANTracker sharedTracker] setDryRun:NO];

Versuchen Sie auch dispatchSynchronous, es wird blockieren, wie es sendet, aber könnte mit helfen, wenn Dinge nicht auf die gleichen Threads sind:

[[GANTracker sharedTracker] dispatchSynchronous];

0voto

A-Live Punkte 8885

Ich habe es gerade von Grund auf überprüft, der Versand hat perfekt funktioniert.

a) Ihr Gerät ist irgendwie anders (ich habe immer noch ungelöste Abstürze auf dem bestimmten iPad 3 von Apple-Testern, also wäre es keine große Überraschung)

b) Ihr Code ist irgendwie anders - und das ist für Sie viel einfacher zu beheben.


Für a) gibt es keinen anderen Rat als den, es mit allen möglichen Geräten zu testen, für b) kann ich nur sagen, was bei mir funktioniert hat:

  • 1.4 SDK heruntergeladen aquí
  • hat Google Beispielprojekte mit git clone https://code.google.com/p/google-mobile-dev.analytics-end-to-end/
  • final/AnalyticsSample zum Starten konfiguriert, die Quelle leicht geändert

(trackEvent::::: wurde vom Beispiel aufgerufen, die Anwendung wurde manuell neu gestartet, da es keinen Zeitraum gibt, der einen Versandaufruf erfordert)

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [[GANTracker sharedTracker] startTrackerWithAccountID:kGANAccountId
                                         dispatchPeriod:0
                                               delegate:self];

    NSLog(@"Dispatch%@", [[GANTracker sharedTracker] dispatch] ? @"ed Successfully": @" Failed");

  [self.window addSubview:tabBarController.view];
  [self.window makeKeyAndVisible];

  return YES;
}

Das war's, sagt das Protokoll Dispatched Successfully einen Versuch wert, denke ich.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X