2013-02-19 16 views
8

Próbuję śledzić szybkość mojej aplikacji za pomocą Google Analytics, ale na moim koncie Google Analytics nie widzę niczego pod aplikacją. Śledziłem inne parametry, takie jak zdarzenia, awarie i wyjątki. Dla tych parametrów jestem w stanie zobaczyć raporty generowane na moim koncie analitycznym Google. Poniżej znajduje się kod, którego używam do wysyłania taktowania zdarzeń.iOS: raport czasowy użytkownika Google Analytics nie jest aktualizowany na moim koncie Google Analytics

self.endDate=[NSDate date]; 
double timeDiff=[_startDate 
timeIntervalSinceDate:_endDate]; 
NSLog(@"timeDiff----%f",timeDiff); 
if([[[GAI sharedInstance]defaultTracker] sendTimingWithCategory:category 
                 withValue:timeDiff 
                 withName:@"LoadTime"  
                 withLabel:category]) { 
     NSLog(@"Succesfully sent load time to GA"); 
} 

Poniżej przedstawiono komunikat wydrukowany w konsoli.

GoogleAnalytics 2.0b4 -[GAIDispatcher dispatchComplete:withStartTime:withRetryNumber:withResponse:withData:withError:] (GAIDispatcher.m:415) DEBUG: Successfully dispatched hit /GAIHit/p479 (0 retries).

Podaj mi przykładowy kod, jeśli masz. Proszę, pomóż mi w tym. Z góry dziękuję.

+0

dziwne, działa bez zarzutu dla mnie. Którą wersję mobilnej wersji beta GA masz? Jak zainicjować Google Analytics? – Vinzius

+0

nevermind, masz najnowszą wersję beta (nie widzisz jej w dziennikach). Wygląda na to, że wysyłasz dobre parametry. Spróbuj wysłać "NSTimeInterval", ale to jest to samo, co podwójne, więc nie powinno to wpływać na nic. Co drukuje NSLog? – Vinzius

+0

Używam iOS SDK wersja 2.0 beta 4, Intiating GA jak pokazano poniżej, [GAI sharedInstance] .trackUncaughtExceptions = YES; [GAI sharedInstance] .dispatchInterval = 20; [GAI sharedInstance] .debug = YES; self.tracker = [[GAI sharedInstance] trackerWithTrackingId: @ "UA-38230774-2"]; –

Odpowiedz

0

Twoje wdrożenie wydaje się być w porządku. Nie sądzę, żeby to był problem (a skoro dostajesz podstawowe zdarzenia, to prawdopodobnie nie jest to problem inicjalizacji). Mam taki sam sposób rejestrowania zdarzeń związanych z synchronizacją (poniżej możesz znaleźć mój kod, jeśli chcesz porównać).

Co mogę powiedzieć, to:

1/Jest to "beta" wersja (tak ok, wszystko @google są w beta xD), dość niestabilny i wydarzenia trochę czasu, aby być wyświetlane w administracji (na razie nie widzę żadnych wydarzeń z 18 lutego). Przynajmniej więcej niż na stronie o podobnych statystykach.

2/Nie mogę wyświetlić zdarzenia na czas dłuższy niż 2 dni lub wyświetla mi jakieś błędy ^^ (prawdopodobnie zbyt wiele dane teleadresowe poprosił o dużej strefy czasowej)

3/Jeśli nie ma etykiety , nie umieszczaj kategorii, po prostu ustaw zero. To samo dotyczy nazwy. Myślę, że oba są parametrami opcjonalnymi. Spowoduje to spowolnienie wyświetlania Twoich statystyk, gdy będziesz mieć więcej statystyk.

4/W przypadku dużych zestawów dat zdarzenia czasu są obliczane na podstawie części wizyt. Ale teraz nie powinno to być problemem^^ http://support.google.com/analytics/bin/answer.py?hl=en&answer=1042498

Poczekaj 2 dni. Jeśli nadal nic nie widzisz, spróbuj skontaktować się z przedstawicielem Google Analytics. Lub podjąć „ryzyko„, aby przedstawić jak jest

Moja implementacja

(w przypadku może pomóc)

+ (void)trackGoogleTimingInCategory:(NSString *)category withTimeInterval:(NSTimeInterval)time withName:(NSString *)name withLabel:(NSString *)label { 

    // 
    if (![ category isKindOfClass:[ NSString class ] ]) 
     return; 

    NSLog(@"[%@] %@ time=%f (%@)", category, name, time, label); 

    // 
    if (![ name isKindOfClass:[ NSString class ] ]) 
     name = nil; 
    if (![ label isKindOfClass:[ NSString class ] ]) 
     label = nil; 

    // 
    [ [ [ GAI sharedInstance ] defaultTracker ] sendTimingWithCategory:category withValue:time withName:name withLabel:label ]; 

} 

Do obliczenia czasu, robię to samo.:

NSTimeInterval timeInterval = [ [ NSDate date ] timeIntervalSinceDate:timeStart ]; 
+0

Czekałem na więcej niż 4 dni. Ale nic nie zaktualizowałem w tempie aplikacji. Czy otrzymujesz zaktualizowany raport w tempie aplikacji? –

+0

Zaktualizowany raport? Mam swoje statystyki na stronie "Szybkość aplikacji". – Vinzius

1

Czy zdarzy ci się zobaczyć kartę danych w czasie rzeczywistym w AH desce rozdzielczej ??? pokazują ostatnich 30 minut dane o użytkowaniu. Później aktualizuje go w Google ana panel kontrolny. Pracowałem z gwarem, Google Analytics, uważam, że GA jest lepsze i szybsze. Próbuj dalej!!!.

0

musi upłynąć co najmniej 24 godziny, zanim dane będą dostępne w panelu Google Analytics, jeżeli nie masz konta GA Premium:

http://www.google.com/analytics/premium/features.html

+0

Moje doświadczenie jest takie, że dzięki regularnym kontom czasowym wyniki będą dostępne w ciągu kilku minut. –

+0

Nie pokazało mi się w minutach, może potrzebuję więcej czasu. –

22

okazało się, że przerwa musi być liczbą całkowitą .Oczekuje milisekund, ale NSTimeInterval to sekundy, więc próbuje wysłać go jako "3.1234", ale jeśli przekonwertujesz go na całe milisekundy, wyśle ​​go jako 3123 i powinieneś zobaczyć wyniki. Aby przekonwertować użyłem (GA V3)

[tracker send:[[GAIDictionaryBuilder createTimingWithCategory:category interval:@((int)(interval * 1000)) name:name label:label] build]] 
+1

Dzięki! Spędziłem dużo czasu nad tym problemem z GA V3, i to w końcu rozwiązało to! – alleus

0

miałem ten sam problem z komponentem Google Analytics dla Xamarin na iOS, ale mam to działa przy użyciu NSNumber.FromInt32:

var start = DateTime.Now; 

// do operation 

var finish = DateTime.Now; 
var timeElapsed = finish.Subtract (start); 

GAI.SharedInstance.DefaultTracker 
    .Send(GAIDictionaryBuilder.CreateTiming(
      "Storage", 
      NSNumber.FromInt32((int)timeElapsed.TotalMilliseconds), 
      "LoadItems", null) 
     .Build()); 
Powiązane problemy