Konfigurasi Lanjutan

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.