Android SDK i Google Analytics
Dziś szybki poradnik jak zaimplementować podstawowe funkcje Google Analytics we własnej aplikacji na Androida. Niby w sieci powinno być dużo na ten temat, ale:
- Oficjalny tutorial na stronie developer.android.com jest trochę zakręcony,
- Poradnik i przykłady na stronie Google Analytics jest z zupełnie innej bajki i do niczego się nie nadaje,
- Większość poradników odnosi się do Analytcs v3 lub jeszcze starszych
Spędziłem sporo czasu próbując dojść ze sprawą do porządku, a rozwiązanie okazało się jak zwykle banalne. Aby śledzić wyświetlenia ekranów naszej apki nie trzeba zbyt wiele zachodu. No to jedziemy:
- Nasza aplikacja musi obsługiwać Google Play Services. Jeśli korzystacie z Android Studio, robi to się przez dodanie
compile 'com.google.android.gms:play-services:5.0.89'w sekcji dependencies pliku app/build.gradle oraz<meta-data android:name="com.google.android.gms.version"w sekcji application pliku AndroidManifest.xml (numer wersji aktualny na wrzesień 2014). Jeśli nie korzystacie jeszcze z Android Studio, to zacznijcie,
android:value="@integer/google_play_services_version" /> - Uprawniamy aplikację do dostępu do internetu przez dodanie w pliku AndroidManifest.xml następujących uprawnień
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> - Na stronie Analytics tworzymy profil aplikacji i zapisujemy jej identyfikator w formacie UA-xxxxxxx-xx. Będzie nam potrzebny w następnym kroku.
- Jeśli jeszcze nie nadpisaliśmy klasy Application, robimy to teraz:
[gist id="7a35738d7ef5ced9fd0b"]
We właściwości TRACKING_ID podajemy oczywiście identyfikator naszej aplikacji oraz informujemy Androida, że nadpisaliśmy klasę Application przez dodanie właściwości android:name sekcji application pliku AndroidManifest.xml.
[gist id="c34578e3392ec3302a53"]
Dlaczego tracker definiujemy w klasie aplikacji? Aby mieć jego tylko jedną instancję. OK, dało by się to zrobić inaczej, ale tak też można. - W Activities które chcemy śledzić dodajemy następujący kod
[gist id="cf8c5de6365dc2d69fba"]
Oczywiście, "PogodaApplication" zastępujemy nazwą klasy naszej aplikacji, a "ForecastActivity" nazwą jaka chcemy aby pojawiła się w Analyticsach
I to tyle. Jak widać, nie ma w tym żadnej filozofii. Tylko uwaga, dane nie pojawią się na stronie Google Analytics od razu. Google Play Services wysyła dane w paczkach co pewien czas, a nie w natychmiast jak strony internetowe. Należy więc trochę poczekać.