Gelişmiş Yapılandırma

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

Genel bakış

Android için Google Analytics SDK v4, verileri ayarlamak ve Google Analytics'e göndermek için bir Tracker sınıfının yanı sıra uygulamanızın genel yapılandırma değerleri için arayüz görevi gören bir GoogleAnalytics tekilliği sağlar.

Başlatma

Herhangi bir veri ölçülmeden önce, bir Context nesnesi ve Google Analytics mülk kimliği sağlayarak GoogleAnalytics teklisi aracılığıyla en az bir izleyiciyi başlatmanız gerekir. Ayrıntılar için GoogleAnalytics Referansı'nı inceleyin.

Yapılandırma Dosyası Kullanma

İzleyiciyi, yapılandırma dosyası kullanarak da başlatmak mümkündür. Ö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 örnekte, bir uygulama görünümü oluşturup izleyici gönderme yöntemini çağırarak Google Analytics'e nasıl ekran görüntülenme gönderileceği gösterilmektedir:

// 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 Ve İşareti Söz Dizimi

Tek bir isabette, HitBuilders.ScreenViewBuilder ile değer belirlemek için Measurement Protocol ve işareti söz dizimini kullanabilirsiniz. Sonraki tüm isabetlerde değer ayarlamak için izleyici nesnesinin kendisini 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ı'nı inceleyin.

Değerleri Birden Çok İsabete Uygulama

Doğrudan izleyicide ayarlanan tüm 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 fazla isabette korumak istediğiniz değerler doğrudan izleyicide ayarlanmalıdır. Aynı değer sonraki ekran görüntüleme ve etkinlik isabetlerine de uygulanabildiğinden, izleyiciye bir ekran adı ayarlamak mantıklıdır. Bununla birlikte, izleyicide isabet türü gibi bir alanın ayarlanması önerilmez. Çünkü bu alan, her isabetle değişebilir.

Birden Çok İzleyici Kullanma

Mobil uygulamanızda, farklı mülklere veri göndermek için birden fazla 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ızda birden fazla izleyici olabilir, ancak izleyicide enableExceptionReporting() yöntemini çağırarak yakalanmamış istisnaları bildirmek için yalnızca bir izleyici kullanabilirsiniz.

Örneklendirme

Google Analytics'e gönderilen isabetlerin sayısını sınırlamak için istemci tarafı örneklemeyi etkinleştirebilirsiniz. Uygulamanızın çok sayıda kullanıcısı varsa veya Google Analytics'e çok fazla veri gönderiyorsa örneklemeyi etkinleştirmek kesintisiz raporlamaya yardımcı olur.

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

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

Bir izleyici için istemci tarafı örneklemeyi programatik olarak etkinleştirmek isterseniz:

mTracker.setSampleRate(50.0d);

Uygulama Düzeyinde Devre Dışı Bırakma

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

Uygulama düzeyinde devre dışı bırakma ayarını edinmek için şunları kullanın:

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

Uygulama düzeyinde devre dışı bırakma işlemini ayarlamak için şunları kullanın:

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

Tipik bir uygulamada, bir uygulama SharedPreferences metriğindeki 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 taraflı kullanıcı verilerini silme

Son kullanıcılarınızın Google Analytics istemci tarafı verilerini sıfırlamanız veya silmeniz gerekiyorsa, İstemci Kimliği dosyasını silebilirsiniz.

gaClientId dosyasının silinmesi, yeni bir İstemci Kimliği oluşturulmasını zorunlu kılar ve sonraki tüm isabetlerde yeni İstemci Kimliğinin kullanılmasını sağlar. Önceki veriler yeni Müşteri Kimliği ile ilişkilendirilmez.

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

context.deleteFile("gaClientId");

IP Anonimleştirme

IP anonimleştirme işlevinin etkinleştirilmesi, Google Analytics'e SDK tarafından gönderilen IP bilgilerini anonimleştirmesini bildirir. Bunun için, depolama yapılmadan önce IP adresinin son sekizliğini kaldırın.

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

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

Bir izleyici için IP'yi programatik olarak anonimleştirme işlevini etkinleştirmek için setAnonymizeIp yöntemini kullanın:

mTracker.setAnonymizeIp(true)

setAnonymizeIp yöntemini istediğiniz zaman çağırabilirsiniz.

Test ve Hata Ayıklama

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

Prova

SDK, ayarlandığında verilerin Google Analytics'e gönderilmesini engelleyen bir dryRun işareti sağlar. dryRun işareti, bir uygulamayı test ederken veya hata ayıklarken Google Analytics raporlarınızda test verilerinin görünmesini istemediğinizde ayarlanmalıdır.

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 logcat'i GAv4 etiketi altında günlüğe kaydeder. Varsayılan olarak sadece ERROR, WARN ve INFO düzeyleri etkinleştirilir. HATA AYIKLAMA düzeyini etkinleştirmek için cihazınızda veya emülatörünüzde 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 GoogleAnalytics Günlük Kaydedici Referansı'nı inceleyin.