2013-04-13 10 views
5

Ustanawiam klasę pomocy, która zgłasza zdarzenia i ekrany do Google Analytics, przez EasyTracker, z nieznanego powodu za każdym razem, gdy ponownie uruchomię aplikację, raportuje cały ekran oraz zdarzenia jako nowy użytkownik. Sprawdziłem plik gaClientId, w którym przechowywany jest unikalny identyfikator. Ale za każdym razem, gdy ponownie uruchamiam aplikację, identyfikator zapisany w tym pliku zmienia się w porównaniu do innych aplikacji, w których pozostaje taki sam.EasyTracker (GA) każde uruchomienie aplikacji zgłoszone jako nowy użytkownik

Oto kod używam w mojej klasie pomocnika pamiętać, że próbowałem przy użyciu kontekstu ApplicationContext jak well.I próbowali wyłączyć natychmiastową wysyłkę (i tak wiem, że to nie jest dobre praktyki natychmiast sprawozdawczym)

private static String mLastView = ""; 

public static void sendView(String view,Context ctx) { 

    // Don't report screen twice in a row 
    if(view.equals(mLastView)) return; 

    mLastView = view; 

    EasyTracker.getInstance().setContext(ctx); 
    EasyTracker.getTracker().sendView(view); 
    EasyTracker.getInstance().dispatch(); 
} 

public static void sendEvent(Context ctx,String category,String action,String label,long value){ 

    EasyTracker.getInstance().setContext(ctx); 
    EasyTracker.getTracker().sendEvent(category, action, label, value); 
    EasyTracker.getInstance().dispatch(); 
} 

Aktualizacja: próbowałem przy użyciu klasy Google Analytics bez łatwego śledzenia, ale nadal nie work.I odgadnąć tam jakąś kwestię uprawnień do odczytu (ale można go napisać?), plik znajdujący się data/data/com.my.app/files/gaClientId

Aktualizacja: Próbowałem czegokolwiek, mogę odczytać plik gaClientId ręcznie, bez problemu, zmęczony raportowanie z i bez klasy pomocnika, nadal tworzyć nowe ID klienta przy każdym uruchomieniu aplikacji.

+0

1. które GA SDK używasz? 2. czy testowałeś na innych urządzeniach/emulatorach? – Raanan

+0

Tak, testowałem to w emulatorze i na więcej niż 10 urządzeniach. Korzystam z najnowszej wersji GA V2 Beta 5 –

+0

Beta 5 została wydana 8 dni temu, czy próbowałeś przejść na beta 4? To wydaje się być zagadnieniem env/setup, proponuję skonfigurować mały prosty testowy projekt. – Raanan

Odpowiedz

4

wiecie co? plik, który przechowuje identyfikator klienta znajdujący się pod adresem data/data/com.my.app/files/gaClientId, a także plik pobierania aplikacji do tego folderu .. każde uruchomienie aplikacji, którą przebiegłem przez folder i usunąłem jej zawartość.thus, kiedy analityka została uśpiona, nie mogła znaleźć plik gaClientId i stworzył nowy, który stworzył nowy użytkownik

TIP niczego nie przechowywać u podstaw files

1

Używam łatwego modułu śledzącego i nie mam tego problemu. Oto jak to zrobić: W onCreate() swojej aktywności po prostu umieścić:

gaInstance = GoogleAnalytics.getInstance(this); 
    tracker = gaInstance.getDefaultTracker() 

gaInstance & tracker pola są globalne.

Następnie w onStart() po prostu nazwać jak:

tracker.sendView("/youractivity"); 

że dla widoku. Impreza jak dobrze jest po prostu:

  tracker.sendEvent("String", 
        "String", 
        "String", 
        "long"); 

Ostatnią rzeczą do zrobienia jest zmienić domyślną wartość limitu czasu sesji w pliku analytics.xml. Domyślnie wynosi 30 sekund, w poniższym przykładem jest 30 minut

<integer name="ga_sessionTimeout">1800</integer> 
Powiązane problemy