2013-02-19 11 views
8

Sto provando a monitorare la velocità della mia app utilizzando Google analytics ma non sono riuscito a vedere nulla sotto la velocità dell'app nel mio account Google Analytics. Ho rintracciato gli altri parametri come eventi, arresti anomali ed eccezioni. Per quei parametri sono in grado di vedere i report generati nel mio account analitico di google. Di seguito è riportato il codice che sto usando per inviare i tempi degli eventi.iOS: il rapporto di sincronizzazione dell'utente di Google Analytics non viene aggiornato nel mio account 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"); 
} 

Di seguito è riportato il messaggio nella console.

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

Fornire qualsiasi codice di esempio se si dispone. Per favore aiutatemi. Grazie in anticipo.

+0

Strano, funziona bene per me. Quale versione beta di GA mobile hai? Come si avvia google analytics? – Vinzius

+0

non importa, hai l'ultima versione beta (non l'ho vista nei log). Sembra che tu stia inviando i buoni parametri. Prova a inviare un "NSTimeInterval" ma è lo stesso di un doppio, quindi non dovrebbe avere alcun impatto su nulla. Cosa stampa NSLog? – Vinzius

+0

Sto usando iOS SDK versione 2.0 beta 4, sto intendo GA come mostrato di seguito, [GAI sharedInstance] .trackUncaughtExceptions = YES; [GAI sharedInstance] .dispatchInterval = 20; [GAI sharedInstance] .debug = YES; self.tracker = [[GAI sharedInstance] trackerWithTrackingId: @ "UA-38230774-2"]; –

risposta

0

L'implementazione sembra soddisfacente. Non penso che sia il problema (e come si ottengono gli eventi di base, probabilmente non è un problema di inizializzazione). Ho lo stesso modo di registrare gli eventi di temporizzazione (puoi trovare il mio codice qui sotto se vuoi confrontare).

Quello che posso dirvi è:

1/E 'una versione "beta" (si ok, tutte le cose @google sono in versione beta xD), piuttosto instabile e gli eventi richiedono tempo per essere visualizzato nell'amministrazione (non vedo ancora eventi per il 18 febbraio, per esempio). Almeno, più che per un sito web con statistiche simili.

2/non riesco a visualizzare gli eventi di tempo in più di 2 giorni, o mi mostra alcuni errori ^^ (probabilmente troppi dati chiesto un grande fuso orario)

3/Se non c'è nessuna etichetta , non mettere la categoria, basta impostare nulla. Lo stesso per il nome. Penso che siano entrambi parametri opzionali. E rallenterà la visualizzazione della tua analisi quando avrai più statistiche.

4/Per grandi serie di dati, gli eventi temporali vengono calcolati su una parte delle visite. Ma non dovrebbe essere il tuo problema adesso ^^ http://support.google.com/analytics/bin/answer.py?hl=en&answer=1042498

Attendere 2 giorni. Se continui a non vedere nulla, prova a contattare un rappresentante di google analytics. Oppure prendete il "rischio“di presentare le cose come stanno

mia implementazione

(nel caso in cui esso potrebbe aiutare)

+ (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 ]; 

} 

Per il calcolo del tempo, lo faccio allo stesso modo.:

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

Ho aspettato più di 4 giorni. Ma non ho ricevuto nulla aggiornato alla velocità dell'app. Ricevi il rapporto aggiornato alla velocità dell'app. –

+0

Il rapporto aggiornato? Ho le mie statistiche nella pagina "App Speed". – Vinzius

1

V'è mai capitato di vedere la scheda dei dati in tempo reale nel cruscotto GA ??? Essi mostrano gli ultimi 30 minuti i dati di utilizzo. in seguito si aggiorna in Google ana cruscotto di lytics. Ho lavorato con raffica, Google Analytics, trovo che GA è migliore e più veloce. Continua a provare!!!.

0

È necessario attendere almeno 24 ore per i dati diventino disponibili nella dashboard di Google Analytics, a meno che non si dispone di un account di GA Premium:

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

+0

La mia esperienza è che con un account regolare i risultati saranno disponibili entro i minuti –

+0

Non è stato mostrato in minuti per me, forse ha bisogno di più tempo. –

22

ho scoperto che l'intervallo doveva essere un numero intero .Si prevede millisecondi ma NSTimeInterval è secondi, quindi prova a inviarlo come "3.1234" ma se lo converti in millisecondi interi lo invierà come 3123 e dovresti vedere i risultati. Per convertire ho usato (GA V3)

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

Grazie! Ho passato molto tempo su questo problema con GA V3, e questo alla fine l'ho risolto! – alleus

0

ho avuto lo stesso problema con il componente di Google Analytics per Xamarin su iOS, ma ottenuto che funziona utilizzando 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());