Dokumen ini memberikan ringkasan tentang beberapa fitur konfigurasi lanjutan Google Analytics SDK v4 for Android.
Ringkasan
Google Analytics SDK v4 untuk Android menyediakan class Tracker
untuk menetapkan dan mengirim data ke Google Analytics, dan singleton GoogleAnalytics
yang berfungsi sebagai antarmuka ke nilai konfigurasi global dari penerapan Anda.
Inisialisasi
Sebelum data dapat diukur, Anda harus menginisialisasi setidaknya satu pelacak melalui singleton GoogleAnalytics
dengan memberikan objek Context
dan ID properti Google Analytics. Untuk mengetahui detailnya, lihat
Referensi Google Analytics.
Menggunakan File Konfigurasi
Anda juga dapat menginisialisasi pelacak menggunakan file konfigurasi. Contoh:
package com.google.android.apps.mobileplayground; import android.app.Application; import com.google.android.gms.analytics.GoogleAnalytics; import com.google.android.gms.analytics.Tracker; import java.util.HashMap; /** * An extension to Application class to provide tracker for analytics purposes. Having the tracker * instances here allows all the activities to access the same tracker instances. The trackers can * be initialised on startup or when they are required based on performance requirements. */ public class AnalyticsSampleApp extends Application { // The following line should be changed to include the correct property id. private static final String PROPERTY_ID = "UA-XXXXX-Y"; /** * Enum used to identify the tracker that needs to be used for tracking. * * A single tracker is usually enough for most purposes. In case you do need multiple trackers, * storing them all in Application object helps ensure that they are created only once per * application instance. */ public enum TrackerName { APP_TRACKER, // Tracker used only in this app. GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking. ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company. } HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>(); public AnalyticsSampleApp() { super(); } synchronized Tracker getTracker(TrackerName trackerId) { if (!mTrackers.containsKey(trackerId)) { GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID) : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker) : analytics.newTracker(R.xml.ecommerce_tracker); mTrackers.put(trackerId, t); } return mTrackers.get(trackerId); } }
Menetapkan dan Mengirim Data
Data dikirim ke Google Analytics menggunakan builder untuk menetapkan pasangan parameter value yang mengirimkannya melalui metode send
pelacak.
Contoh berikut menunjukkan cara mengirim tampilan layar ke Google Analytics dengan membuat tampilan aplikasi dan memanggil metode pengiriman pelacak:
// Get tracker. Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker( TrackerName.APP_TRACKER); // Set screen name. t.setScreenName(screenName); // Send a screen view. t.send(new HitBuilders.ScreenViewBuilder().build());
Sintaksis ampersand Measurement Protocol
Anda dapat menggunakan sintaksis ampersand Measurement Protocol untuk menetapkan nilai pada satu hit dengan HitBuilders.ScreenViewBuilder
. Untuk menetapkan nilai pada semua hit berikutnya, gunakan objek pelacak itu sendiri.
// Setting the content description field on a single hit using ampersand syntax. tracker.send(new HitBuilders.ScreenViewBuilder() .set("&cd", "Home Screen") .build() );
Untuk mengetahui daftar lengkap parameter Measurement Protocol yang tersedia, lihat Referensi Parameter Measurement Protocol.
Menerapkan Nilai ke Beberapa Klik
Setiap nilai yang ditetapkan di pelacak secara langsung akan dipertahankan dan diterapkan ke beberapa hit, seperti dalam contoh ini:
// Get tracker. Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker( TrackerName.APP_TRACKER); // Set screen name. t.setScreenName(screenName); // Send a screen view. t.send(new HitBuilders.ScreenViewBuilder().build()); // This event will also be sent with the most recently set screen name. // Build and send an Event. t.send(new HitBuilders.EventBuilder() .setCategory(getString(categoryId)) .setAction(getString(actionId)) .setLabel(getString(labelId)) .build()); // Clear the screen name field when we're done. t.setScreenName(null);
Hanya nilai yang ingin Anda pertahankan di beberapa hit yang harus ditetapkan langsung di pelacak. Penetapan nama layar pada pelacak adalah hal yang masuk akal, karena nilai yang sama dapat diterapkan ke tampilan layar dan hit peristiwa berikutnya. Namun, sebaiknya jangan menetapkan kolom seperti jenis hit di pelacak, karena kemungkinan akan berubah dengan setiap hit.
Menggunakan Beberapa Pelacak
Di aplikasi seluler, Anda dapat menggunakan beberapa pelacak untuk mengirim data ke properti yang berbeda:
public class MyApp extends Application { public void initTrackers() { GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); globalTracker = analytics.newTracker(R.xml.global_tracker); ecommerceTracker = analytics.newTracker(R.xml.ecommerce_tracker); } public static Tracker globalTracker; public static Tracker ecommerceTracker; ... }
Meskipun aplikasi seluler Anda dapat memiliki beberapa pelacak, Anda hanya dapat menggunakan
satu pelacak untuk melaporkan pengecualian yang tidak tertangkap dengan memanggil
metode enableExceptionReporting()
pada pelacak.
Pengambilan Sampel
Anda dapat mengaktifkan pengambilan sampel sisi klien untuk membatasi jumlah hit yang dikirim ke Google Analytics. Jika aplikasi Anda memiliki pengguna dalam jumlah besar atau akan mengirimkan volume data yang besar ke Google Analytics, mengaktifkan pengambilan sampel akan membantu memastikan pelaporan yang tidak terganggu.
Misalnya, untuk mengaktifkan sampling sisi klien pada rasio 50%, gunakan parameter berikut di file konfigurasi Anda:
<string name="ga_sampleFrequency">50.0</string>
Untuk mengaktifkan pengambilan sampel sisi klien secara terprogram untuk pelacak:
mTracker.setSampleRate(50.0d);
Pilihan Tidak Ikut Tingkat Aplikasi
Anda dapat mengaktifkan tanda pilihan tidak ikut tingkat aplikasi yang akan menonaktifkan Google Analytics
di seluruh aplikasi. Perhatikan bahwa tanda ini harus ditetapkan setiap kali aplikasi dimulai
dan akan ditetapkan secara default ke false
.
Untuk mendapatkan setelan pilihan tidak ikut tingkat aplikasi, gunakan:
boolean isOptedOut = GoogleAnalytics.getInstance(this).getAppOptOut();
Untuk menetapkan pilihan tidak ikut tingkat aplikasi, gunakan:
GoogleAnalytics.getInstance(this).setAppOptOut(true);
Dalam penerapan standar, aplikasi mungkin memproses perubahan di SharedPreferences
, dan memperbarui setelan memilih tidak ikut Google Analytics sebagaimana mestinya:
SharedPreferences userPrefs = PreferenceManager.getDefaultSharedPreferences(this); userPrefs.registerOnSharedPreferenceChangeListener(new SharedPreferences.OnSharedPreferenceChangeListener () { @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (key.equals(TRACKING_PREF_KEY)) { GoogleAnalytics.getInstance(getApplicationContext()).setAppOptOut(sharedPreferences.getBoolean(key, false)); } else { // Any additional changed preference handling. } } });
Menghapus data pengguna sisi klien
Jika Anda perlu mereset atau menghapus data sisi klien Google Analytics untuk pengguna akhir, Anda dapat menghapus file Client-ID tersebut.
Menghapus file gaClientId akan memaksa pembuatan Client ID baru dan semua hit berikutnya akan menggunakan Client ID baru. Data sebelumnya tidak akan dikaitkan dengan Client ID baru.
Untuk menghapus file gaClientId, gunakan metode Context.deleteFile
:
context.deleteFile("gaClientId");
Anonimkan IP
Mengaktifkan fungsi IP anonim akan memberi tahu Google Analytics untuk menganonimkan informasi IP yang dikirim oleh SDK dengan menghapus octet terakhir alamat IP sebelum penyimpanannya.
Untuk mengaktifkan fungsi anonimisasi IP, gunakan parameter berikut dalam file konfigurasi Anda:
<string name="ga_anonymizeIp">true</string>
Untuk mengaktifkan fungsi anonimisasi IP secara terprogram untuk pelacak, gunakan
metode
setAnonymizeIp
:
mTracker.setAnonymizeIp(true)
Metode setAnonymizeIp
dapat dipanggil kapan saja.
Pengujian dan Proses Debug
Google Analytics SDK v4 untuk Android menyediakan alat untuk mempermudah pengujian dan proses debug.
Uji Coba
SDK menyediakan flag dryRun
yang jika ditetapkan, akan mencegah data apa pun dikirim ke Google Analytics. Tanda dryRun
harus ditetapkan setiap kali Anda menguji atau men-debug penerapan dan tidak ingin data pengujian muncul dalam laporan Google Analytics.
Untuk menetapkan flag uji coba:
// When dry run is set, hits will not be dispatched, but will still be logged as // though they were dispatched. GoogleAnalytics.getInstance(this).setDryRun(true);
Pencatat
Google Analytics akan melakukan logging ke logcat dengan tag GAv4 menggunakan
sistem
Log
Android. Secara default, hanya level ERROR, WARN, dan INFO yang diaktifkan. Untuk mengaktifkan level DEBUG, jalankan perintah adb berikut pada perangkat
atau emulator Anda:
adb shell setprop log.tag.GAv4 DEBUG
Untuk melihat hanya pesan Google Analytics dari logcat, gunakan perintah berikut:
adb logcat -v time -s GAv4
Untuk informasi selengkapnya, lihat Referensi Logger Google Analytics.