Konfigurasi Lanjutan

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.