Android için Google Analytics SDK'sı: v3'e geçiş

Bu kılavuzda, Android için Google Analytics SDK'sının V3 sürümüne nasıl geçileceği açıklanmaktadır.

Bir Bakışta: V3'teki Yenilikler

V3'teki API'ler, yerel ve web platformlarında daha tutarlı olacak şekilde yeniden düzenlendi. Tüm V2 kullanıcıları şu değişiklikleri dikkate almalıdır:

  • İsabetler artık tek bir send(Map<String, String> parameters) yöntemi kullanılarak gönderiliyor.
  • Hata ayıklama modu Logger ile değiştirildi
  • EasyTracker artık Tracker alt sınıfına girerek arayüzde bazı değişiklikler yapıyor.
  • Yeni: Gönderilen verilerin raporlarda görünmesini engellemek için dryRun işareti eklendi.

Değişikliklerin tam listesi için Android Değişiklik Günlüğü'ne bakın.

Başlamadan önce

v3'e yükseltme işlemine başlamadan önce aşağıdakilere ihtiyacınız olacaktır:

Yeni Sürüme Geçme Yolları

Başlamak için mevcut uygulamanızdan v3'e bir yükseltme yolu seçin:

EasyTracker: v1.x ile v3

EasyTracker sürüm 1.x kullanıcılarının, v3 sürümünü EasyTracker ile kullanmaya başlamak için v3 Başlangıç Kılavuzu'nu uygulamaları önerilir.

EasyTracker: v2.x ile v3

v2.x EasyTracker kullanıcıları, v3'e yükseltme işlemini tamamlamak için aşağıdaki adımları izlemelidir:

  1. Context: özelliğini sağlamak için EasyTracker.getInstance() numaralı telefona yapılan aramaları güncelleyin
    // v2 (Old)
    // EasyTracker.getInstance().activityStart(this);
    
    // v3:
    EasyTracker.getInstance(this).activityStart(this);
    
  2. EasyTracker artık Tracker alt sınıfını oluşturuyor. EasyTracker.getTracker() çağrılarını kaldırın:
    // v2 (Old)
    Tracker v2Tracker = EasyTracker.getInstance().getTracker();
    
    // v3
    Tracker v3Tracker = EasyTracker.getInstance(this);
    
  3. Tüm send<hit-type> kolaylık yöntemlerini yeni send(Map<String, String> parameters) yöntemi ile değiştirin:
    // v2 (Old)
    Tracker v2EasyTracker = EasyTracker.getInstance().getTracker(this);
    v2EasyTracker.sendView("Home Screen");
    
    // v3
    Tracker v3EasyTracker = EasyTracker.getInstance(this);
    
    // Set the screen name on the tracker so that it is used in all hits sent from this screen.
    v3EasyTracker.set(Fields.SCREEN_NAME, "Home Screen");
    
    // Send a screenview.
    v3EasyTracker.send(MapBuilder
      .createAppView()
      .build()
    );
    
    3. adımda veri gönderme hakkında daha fazla bilgi edinin.


  4. ga_debug EasyTracker parametresini ga_logLevel ve aşağıdaki ayrıntı değerlerinden biriyle değiştirin: verbose, info, warning, error:
    <!-- res/values/analytics.xml -->
    
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
      <string name="ga_trackingId">UA-XXXX-Y</string>
      <!-- REMOVE: <bool name="ga_debug">true</bool> -->
      <string name="ga_logLevel">verbose</string>
    </resources>
    
    Daha fazla bilgi için EasyTracker Parametre Referansı'na bakın.


  5. GoogleAnalytics.requestAppOptOut() kullanımdan kaldırıldı. Bunun yerine GoogleAnalytics.getAppOptOut() kullanın:
    // v2 (Old)
    GoogleAnalytics.getInstance(this).requestAppOptOut(new AppOptOutCallback() {
       @Override
       public void reportAppOptOut(boolean optOut) {
         if (optOut) {
         ... // Alert the user that they've opted out.
         }
       });
    }
    
    // v3
    boolean optOutPreference = GoogleAnalytics.getInstance(this).getAppOptOut();
    
  6. (İsteğe bağlı) Test verilerinin üretim raporlarınızda görünmesini önlemek için, uygulamanızı test ederken ga_dryRun EasyTracker parametresini ekleyin ve true olarak ayarlayın:
  7. <!-- res/values/analytics.xml -->
    
    <?xml version="1.0" encoding="utf-8"?>
    
    <resources>
      <string name="ga_trackingId">UA-XXXX-Y</string>
      <string name="ga_logLevel">verbose</string>
    
      <!-- Prevent data from appearing in reports. Useful for testing. -->
      <bool name="ga_dryRun">true</bool>
    
    </resources>
    

Özel Uygulama: v1.x - v3

EasyTracker kullanmayan v1.x kullanıcıları, V3 Başlangıç Kılavuzu'na uymalı ve gerektiğinde Gelişmiş Yapılandırma Geliştirici Kılavuzu'na başvurmalıdır.

Özel Uygulama: v2.x sürümünden v3

EasyTracker kullanmayan 2.x sürümü kullanıcıları, 3. sürüme yükseltme işlemini tamamlamak için aşağıdaki adımları uygulamalıdır:

  1. Tüm ##39;send<hit-type>' uygunluk yöntemlerini yeni send(Map<String, String> parameters) yöntemi ile değiştirin:
    // v2 (Old)
    Tracker v2Tracker = GoogleAnaytics.getInstance(this).getTracker("UA-XXXX-Y");
    v2Tracker.sendView("Home Screen");
    
    // v3
    Tracker v3Tracker = GoogleAnaytics.getInstance(this).getTracker("UA-XXXX-Y");
    
    // This screen name value will remain set on the tracker and sent with
    // hits until it is set to a new value or to null.
    v3Tracker.set(Fields.SCREEN_NAME, "Home Screen");
    
    v3Tracker.send(MapBuilder
      .createAppView()
      .build()
    );
    
  2. GoogleAnalytics.setDebug() çağrılarını kaldırın, GoogleAnalytics.getLogger().setLogLevel() ile değiştirin:
    // V2 (Old)
    GoogleAnalytics.getInstance(this).setDebug(true);
    
    // V3
    GoogleAnalytics.getInstance(this)
        .getLogger()
        .setLogLevel(LogLevel.VERBOSE);  // VERBOSE | INFO | DEBUG | WARNING
    
    Logger hakkında daha fazla bilgi

  3. v3 SDK'sı artık uygulama açıldığında otomatik olarak yeni bir oturum başlatmaz (EasyTracker kullanımı hariç). v2 özel uygulamasından bu davranışı korumak istiyorsanız kullanıcı uygulamayı başlattığında kendi oturum denetimi mantığınızı uygulamanız gerekir:
  4. package com.example.app;
    
    import com.google.analytics.tracking.android.GoogleAnalytics;
    import com.google.analytics.tracking.android.Tracker;
    
    import android.app.Application;
    
    public class MyApp extends Application {
    
      private static Tracker mTracker;
      private static final String GA_PROPERTY_ID = "UA-XXXX-Y";
    
      @Override
      public void onCreate() {
        super.onCreate();
        mTracker = GoogleAnalytics.getInstance(this).getTracker(GA_PROPERTY_ID);
    
        // CAUTION: Setting session control directly on the tracker persists the
        // value across all subsequent hits, until it is manually set to null.
        // This should never be done in normal operation.
        //
        // mTracker.set(Fields.SESSION_CONTROL, "start");
    
        // Instead, send a single hit with session control to start the new session.
        mTracker.send(MapBuilder
          .createEvent("UX", "appstart", null, null)
          .set(Fields.SESSION_CONTROL, "start")
          .build()
        );
      }
    }
    
    
  5. (İsteğe bağlı) Test verilerinin üretim raporlarınız ile işlenmesini önlemek için test sırasında dryRun işaretini ayarlayın:
  6. // When true, dryRun flag prevents data from being processed with reports.
    GoogleAnalytics.getInstance(this).setDryRun(true);
    

Referans

Aşağıdaki bölümlerde, V3 SDK kullanılarak verilerin nasıl ayarlanıp gönderileceğine dair referans örnekler sağlanmaktadır.

Haritalar v3'te Haritalar kullanarak veri gönderme

V3'te, veriler Google Analytics alanlarının ve değerlerinin Map kadarını bağımsız değişken olarak alan tek bir send() yöntemi kullanılarak gönderilir. İsabet oluşturma sürecini basitleştirmek için bir MapBuilder yardımcı program sınıfı sağlanır:

// Sending a screenview in v3 using MapBuilder.
Tracker tracker = GoogleAnalytics.getInstance(this).getTracker("UA-XXXX-Y");
tracker.set(Fields.SCREEN_NAME, "Home Screen");

tracker.send(MapBuilder
  .createAppView()                           // Creates a Map of hit type 'AppView' (screenview).
  .set(Fields.customDimension(1), "Premium") // Set any additional fields for this hit.
  .build()                                   // Build and return the Map to the send method.
);

MapBuilder sınıfı, desteklenen isabet türlerinden herhangi birini (ör. etkinlikler) oluşturmak için kullanılabilir:

// Sending an event in v3 using MapBuilder.createEvent()
tracker.send(MapBuilder
    .createEvent("UX", "touch", "menuButton", null)
    .build()
);

v3'te Veri Gönderme hakkında daha fazla bilgi edinin.

v3'te İzleyici'deki Verileri Ayarlama

Değerler, set() yöntemi kullanılarak doğrudan bir Tracker üzerinde de ayarlanabilir. Doğrudan belirlenen değerler, Tracker tarihinden sonraki tüm isabetlere uygulanır:

// Values set directly on a tracker apply to all subsequent hits.
tracker.set(Fields.SCREEN_NAME, "Home Screen");

// This screenview hit will include the screen name "Home Screen".
tracker.send(MapBuilder.createAppView().build());

// And so will this event hit.
tracker.send(MapBuilder
  .createEvent("UX", "touch", "menuButton", null)
  .build()
);

Tracker üzerinde ayarlanan bir değeri temizlemek için özelliği, null değerine ayarlayın:

// Clear the previously-set screen name value.
tracker.set(Fields.SCREEN_NAME, null);

// Now this event hit will not include a screen name value.
tracker.send(MapBuilder
  .createEvent("UX", "touch", "menuButton", null)
  .build()
);

v3'te Veri Ayarlama hakkında daha fazla bilgi