Dokumen ini berisi ringkasan tentang beberapa fitur konfigurasi lanjutan Google Analytics SDK v4 untuk 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 implementasi Anda.
Inisialisasi
Sebelum data dapat diukur, Anda harus melakukan inisialisasi setidaknya satu pelacak
melalui singleton GoogleAnalytics
dengan memberikan
objek Context
dan ID properti Google Analytics. Untuk mengetahui detailnya, lihat Referensi GoogleAnalytics.
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 Hit
Setiap nilai yang ditetapkan pada pelacak secara langsung akan disimpan 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 dipertahankan di beberapa hit yang harus ditetapkan langsung di pelacak. Menetapkan nama layar di pelacak akan masuk akal, karena nilai yang sama dapat diterapkan ke tampilan layar dan hit peristiwa berikutnya. Namun, sebaiknya jangan menetapkan kolom seperti jenis hit pada pelacak, karena kolom tersebut 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 klik yang dikirim ke Google Analytics. Jika aplikasi Anda memiliki banyak pengguna atau mengirim volume data yang besar ke Google Analytics, mengaktifkan pengambilan sampel akan membantu memastikan pelaporan yang tidak terganggu.
Misalnya, untuk mengaktifkan pengambilan sampel sisi klien dengan rasio 50%, gunakan parameter berikut dalam file konfigurasi Anda:
<string name="ga_sampleFrequency">50.0</string>
Untuk mengaktifkan pengambilan sampel sisi klien secara terprogram untuk pelacak:
mTracker.setSampleRate(50.0d);
Memilih Tidak Ikut Tingkat Aplikasi
Anda dapat mengaktifkan flag pilihan tidak ikut tingkat aplikasi yang akan menonaktifkan Google Analytics di seluruh aplikasi. Perlu diperhatikan bahwa flag ini harus ditetapkan setiap kali aplikasi dimulai dan akan ditetapkan secara default ke false
.
Untuk mendapatkan setelan tidak ikut tingkat aplikasi, gunakan:
boolean isOptedOut = GoogleAnalytics.getInstance(this).getAppOptOut();
Untuk menetapkan pilihan tidak ikut di tingkat aplikasi, gunakan:
GoogleAnalytics.getInstance(this).setAppOptOut(true);
Dalam implementasi standar, aplikasi mungkin memproses perubahan di SharedPreferences
,
dan perbarui setelan pilihan 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.
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
Dengan mengaktifkan fungsi IP anonim, Google Analytics akan menganonimkan informasi IP yang dikirim oleh SDK dengan menghapus octet terakhir alamat IP sebelum penyimpanannya.
Untuk mengaktifkan fungsi anonimisasi IP, gunakan parameter berikut di file konfigurasi Anda:
<string name="ga_anonymizeIp">true</string>
Untuk mengaktifkan anonimisasi fungsi 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.
Lari Kering
SDK memberikan tanda dryRun
yang jika ditetapkan, akan mencegah pengiriman data ke Google Analytics. Flag dryRun
harus ditetapkan setiap kali Anda menguji atau men-debug penerapan dan tidak ingin data pengujian muncul dalam laporan Google Analytics.
Untuk menetapkan flag dry run:
// 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 mencatat log ke logcat dengan tag GAv4 menggunakan
sistem
Log
Android. Hanya default ERROR, level WARN dan INFO diaktifkan. Untuk mengaktifkan level DEBUG, jalankan perintah adb berikut pada perangkat atau emulator Anda:
adb shell setprop log.tag.GAv4 DEBUG
Untuk hanya melihat pesan Google Analytics dari logcat, gunakan perintah berikut:
adb logcat -v time -s GAv4
Untuk informasi selengkapnya, lihat Referensi Logger GoogleAnalytics.