Gelişmiş Yapılandırma

Bu dokümanda, Android için Google Analytics SDK v4'ün bazı gelişmiş yapılandırma özelliklerine genel bir bakış sunulmaktadır.

Genel bakış

Android için Google Analytics SDK v4, Google Analytics'e veri ayarlamak ve göndermek için bir Tracker sınıfı ve uygulamanızın global yapılandırma değerleri için arayüz işlevi gören bir GoogleAnalytics teklisi sağlar.

Başlatma

Herhangi bir verinin ölçülebilmesi için bir Context nesnesi ve bir Google Analytics mülk kimliği sağlayarak GoogleAnalytics singleton'ı aracılığıyla en az bir izleyiciyi başlatmanız gerekir. Ayrıntılar için Google Analytics Referansı'na göz atın.

Yapılandırma Dosyası Kullanma

İzleyici, yapılandırma dosyası kullanılarak da başlatılabilir. Örneğin:

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);
  }
}

Veri Ayarlama ve Gönderme

Veriler, izleyici send yöntemi aracılığıyla gönderilen parametre-değer çiftlerini ayarlamak için oluşturucular kullanılarak Google Analytics'e gönderilir.

Aşağıdaki örnek, uygulama görünümü oluşturup izleyici gönderme yöntemini çağırarak Google Analytics'e nasıl ekran görünümü gönderileceğini gösterir:

// 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());

Measurement Protocol Ampers ve Söz Dizimi

HitBuilders.ScreenViewBuilder ile tek bir isabette değerler ayarlamak için Measurement Protocol ampers ve söz dizimini kullanabilirsiniz. Sonraki tüm isabetlerde değerler ayarlamak için izleyici nesnesini kullanın.

// Setting the content description field on a single hit using ampersand syntax.
tracker.send(new HitBuilders.ScreenViewBuilder()
  .set("&cd", "Home Screen")
  .build()
);

Mevcut Measurement Protocol parametrelerinin tam listesi için Measurement Protocol Parametre Referansı'na bakın.

Birden Çok İsabete Değer Uygulama

İzleyicide doğrudan ayarlanan değerler, aşağıdaki örnekte olduğu gibi korunur ve birden fazla isabete uygulanır:

// 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);

Yalnızca birden çok isabette kalmasını istediğiniz değerler doğrudan izleyicide ayarlanmalıdır. Sonraki ekran görüntülenme ve etkinlik isabetlerine aynı değer uygulanabileceği için izleyicide ekran adı ayarlamak mantıklıdır. Ancak izleyicide isabet türü gibi bir alan ayarlamanız önerilmez. Çünkü bu değer, her isabetle birlikte değişir.

Birden Çok İzleyici Kullanma

Mobil uygulamanızda, verileri farklı mülklere göndermek için birden çok izleyici kullanabilirsiniz:


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;

  ...
}

Mobil uygulamanızın birden fazla izleyicisi olsa da izleyicideki enableExceptionReporting() yöntemini çağırarak yakalanmamış istisnaları bildirmek için yalnızca bir izleyici kullanabilirsiniz.

Örnekleme

Google Analytics'e gönderilen isabet sayısını sınırlamak için istemci taraflı örneklemeyi etkinleştirebilirsiniz. Uygulamanız çok sayıda kullanıcıya sahipse veya Google Analytics'e büyük miktarda veri gönderiyorsa örneklemenin etkinleştirilmesi kesintiye uğramadan raporlama yapılmasına yardımcı olur.

Örneğin, istemci taraflı örneklemeyi %50 oranında etkinleştirmek için yapılandırma dosyanızda şu parametreyi kullanın:

<string name="ga_sampleFrequency">50.0</string>

İstemci taraflı örneklemeyi bir izleyici için programatik olarak etkinleştirmek isterseniz:

mTracker.setSampleRate(50.0d);

Uygulama Düzeyinde Kapsam Dışında Kalma

Google Analytics'i uygulamanın tamamında devre dışı bırakacak uygulama düzeyinde bir devre dışı bırakma işaretini etkinleştirebilirsiniz. Uygulama her başladığında bu işaretin ayarlanması ve varsayılan olarak false ayarının ayarlanması gerektiğini unutmayın.

Uygulama düzeyinde kapsam dışında kalma ayarını almak için şunu kullanın:

boolean isOptedOut = GoogleAnalytics.getInstance(this).getAppOptOut();

Uygulama düzeyinde kapsam dışında kalmayı ayarlamak için şunu kullanın:

GoogleAnalytics.getInstance(this).setAppOptOut(true);

Tipik bir uygulamada, bir uygulama SharedPreferences işlevindeki bir değişikliği dinleyebilir ve Google Analytics kapsamı dışında kalma ayarını buna göre güncelleyebilir:

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.
    }
  }
});

İstemci tarafı kullanıcı verilerini silme

Son kullanıcılarınız için Google Analytics istemci tarafı verilerini sıfırlamanız veya silmeniz gerekirse Client ID dosyasını silebilirsiniz.

gaClientId dosyasının silinmesi yeni bir istemci kimliğinin oluşturulmasını sağlar ve sonraki tüm isabetler yeni Client-ID'yi kullanır. Önceki veriler yeni Müşteri Kimliği ile ilişkilendirilmeyecektir.

gaClientId dosyasını silmek için Context.deleteFile yöntemini kullanın:

context.deleteFile("gaClientId");

IP Anonimleştirme

IP işlevini anonimleştirme özelliği Google Analytics'e, SDK tarafından gönderilen IP bilgilerini, IP adresi deposundan önceki son sekizliğini kaldırarak anonimleştirmesini söyler.

IP işlevini anonimleştirmek için yapılandırma dosyanızda aşağıdaki parametreyi kullanın:

<string name="ga_anonymizeIp">true</string>

İzleyici için programatik olarak IP işlevini anonimleştirmeyi etkinleştirmek amacıyla setAnonymizeIp yöntemini kullanın:

mTracker.setAnonymizeIp(true)

setAnonymizeIp yöntemini istediğiniz zaman arayabilirsiniz.

Test ve Hata Ayıklama

Android için Google Analytics SDK v4, test ve hata ayıklamayı kolaylaştıran araçlar sunar.

Prova

SDK ayarlandığında, verilerin Google Analytics'e gönderilmesini engelleyen bir dryRun işareti sağlar. Bir uygulamayı test ettiğiniz veya hatalarını ayıkladığınız ve test verilerinin Google Analytics raporlarınızda görünmesini istemediğiniz durumlarda dryRun işaretinin ayarlanması gerekir.

Prova işaretini ayarlamak için:

// 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);

Logger

Google Analytics, Android Log sistemini kullanarak GAv4 etiketinin altında logcat aracına giriş yapar. Varsayılan olarak yalnızca ERROR, WARN ve INFO düzeyleri etkindir. DEBUG seviyesini etkinleştirmek için cihazınızda veya emülatörde aşağıdaki adb komutunu çalıştırın:

adb shell setprop log.tag.GAv4 DEBUG

Yalnızca logcat'ten gelen Google Analytics mesajlarını görmek için aşağıdaki komutu kullanın:

adb logcat -v time -s GAv4

Daha fazla bilgi için Google Analytics Logger Referansı'na bakın.