iOS için Google Analytics SDK'sı - v3'e taşıma

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

Bir Bakışta: V3'teki Yenilikler

V3'teki API'ler, yerel ve web platformları genelinde daha tutarlı olacak şekilde yeniden düzenlendi. Tüm V2 kullanıcıları şu değişikliklere dikkat etmelidir:

  • İsabetler artık tek bir send:(NSDictionary *)params yöntemi kullanılarak gönderiliyor.
  • Otomatik istemci tarafı oturum yönetimi kaldırıldı. Bunun yerine, oturum zaman aşımı yönetim arayüzünde yapılandırılabilir. Daha fazla bilgi edinin.
  • Hata ayıklama modu, Logger ile değiştirildi
  • Yeni: Dağıtılan verilerin raporlarda görünmesini önlemek için dryRun işareti eklendi.
  • Yeni: iOS için yerel para birimleri desteği eklendi.

Değişikliklerin tam listesi için 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çiş Yolları

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

v1.x'ten v3'e

Google Analytics iOS SDK v1.x kullanıcılarının, v3'ü kullanmaya başlamak için v3 Başlangıç Kılavuzu'nu izlemeleri önerilir.

v2.x'ten v3'e

v2.x kullanıcıları v3'e geçmek için şu adımları uygulamalıdır:

  1. send<hit-type> kolaylık yönteminin tamamını yeni send: yöntemiyle değiştirin:
    // v2 (Old)
    id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
    [tracker sendView:@"HomeScreen"];
    
    // v3
    id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
    // Set the screen name on the tracker so that it is used in all hits sent from this screen.
    [tracker set:kGAIScreenName value:@"Home Screen"];
    
    // Send a screenview.
    // [tracker send:[[GAIDictionaryBuilder createAppView]  build]];   // Previous V3 SDK versions.
    [tracker send:[[GAIDictionaryBuilder createScreenView]  build]];   // SDK Version 3.08 and up.
    
  2. Otomatik, istemci tarafı oturum yönetimi v3'te kaldırıldı. Oturum zaman aşımı süresi, yönetim arayüzünde ayarlanabilir ve varsayılan olarak 30 dakika'ya ayarlanır. Ayrıca oturumlar, sessionControl parametresi kullanılarak manuel olarak başlatılabilir ve durdurulabilir. 3. sürümde oturum yönetimi hakkında daha fazla bilgi edinin.

  3. Otomatik Ekran İzleme kullanıcıları, GAITrackedViewController.trackedViewName referanslarını GAITrackedViewController.screenName ile değiştirmelidir:
    // v2 (Old)
    #import "GAITrackedViewController.h"
    
    @implementation AboutViewController
    
    - (void)viewDidAppear:(BOOL)animated {
      [super viewDidAppear:animated];
      self.trackedViewName = @"About Screen";
    }
    
    // ... Rest of ViewController implementation.
    
    // v3
    #import "GAITrackedViewController.h"
    
    @implementation AboutViewController
    
    - (void)viewDidAppear:(BOOL)animated {
      [super viewDidAppear:animated];
      self.screenName = @"About Screen";
    }
    
    // ... Rest of ViewController implementation.
    
  4. Hata ayıklama modu kullanımdan kaldırıldı. Bunun yerine Logger kullanın:
    // v2 (Old)
    [GAI sharedInstance].debug = YES;
    
    // v3
    [[GAI sharedInstance].logger setLogLevel:kGAILogLevelVerbose];
    
  5. GAI.useHttp özelliği kaldırıldı. İsabetleri varsayılan HTTPS yerine HTTP kullanarak göndermek istiyorsanız bunun yerine her bir GAITracker için kGAIUseSecure parametresini ayarlayın:
    // v2 (Old)
    // AppDelegate.m
    
    #import AppDelegate.h
    #import GAI.h
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
        static NSString const *kGaPropertyId = @"UA-XXXX-Y";
        id tracker = [[GAI sharedInstance] trackerWithTrackingId:kGaPropertyId];
    
        // Send hits using HTTP (default=HTTPS).
        tracker.useHttps = NO;
    
    }
    
    // v3
    // AppDelegate.m
    
    #import AppDelegate.h
    #import GAI.h
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
        static NSString const *kGaPropertyId = @"UA-XXXX-Y";
        id tracker = [[GAI sharedInstance] trackerWithTrackingId:kGaPropertyId];
    
        // Send hits using HTTP (default=HTTPS).
        [tracker set:kGAIUseSecure value:[@NO stringValue]];
    
    }
    
  6. v3 SDK artık uygulama açıldığında otomatik olarak yeni oturum başlatmamaktadır. v2'deki bu davranışı korumak istiyorsanız bir kullanıcı uygulamayı başlattığında kendi oturum denetimi mantığınızı uygulamanız gerekir:
  7. // AppDelegate.m
    
    #import AppDelegate.h
    #import GAI.h
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
        static NSString const *kGaPropertyId = @"UA-XXXX-Y";
        id tracker = [[GAI sharedInstance] trackerWithTrackingId:kGaPropertyId];
    
        // 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.
        //
        // [tracker set:kGAISessionControl value:@"start"];
    
        // Instead, send a single hit with session control to start the new session.
        [tracker send:[[[GAIDictionaryBuilder createEventWithCategory:@"UX"
                                                               action:@"appstart"
                                                                label:nil
                                                                value:nil] set:@"start" forKey:kGAISessionControl] build]];
    
    
  8. Uygulama düzeyinde devre dışı bırakma ayarı artık SDK tarafından korunmaz ve uygulama her başlatıldığında bu ayarın ayarlanması gerekir (varsayılan olarak NO). Uygulama düzeyinde devre dışı bırakma ayarı hakkında daha fazla bilgi edinin.

Referans

Aşağıdaki bölümlerde, V3 SDK'sını kullanarak verilerin nasıl ayarlanacağı ve gönderileceği ile ilgili referans örnekler verilmiştir.

v3'teki Sözlükleri Kullanarak Veri Gönderme

V3'te veriler, bağımsız değişken olarak bir NSDictionary Google Analytics alanı ve değeri alan tek bir send: yöntemi kullanılarak gönderilir. İsabet oluşturma sürecini basitleştirmek için bir GAIDictionaryBuilder yardımcı programı sınıfı sağlanmıştır:

id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
[tracker set:kGAIScreenName value:@"Home Screen"];

// Previous V3 SDK versions.
// [tracker send:[[GAIDictionaryBuilder createAppView] setValue:@"Premium"  // Creates a Map of hit type 'AppView' (screenview) and set any additional fields.
//                                                     forKey:[customDimensionForIndex:1] build]; // Build and return the dictionary to the send method.

// SDK Version 3.08 and up.
[tracker send:[[GAIDictionaryBuilder createScreenView] setValue:@"Premium"  // Creates a Map of hit type 'ScreenView' and set any additional fields.
                                                       forKey:[customDimensionForIndex:1] build]; // Build and return the dictionary to the send method.

GAIDictionaryBuilder sınıfı, etkinlikler gibi desteklenen isabet türlerinden herhangi birini oluşturmak için kullanılabilir:

id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];

[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"ui_action"     // Event category (required)
                                                      action:@"button_press"  // Event action (required)
                                                       label:@"play"          // Event label
                                                       value:nil] build]];    // Event value

v3 sürümünde Veri gönderme hakkında daha fazla bilgi edinin.

v3'te İzleyicide Veri Ayarlama

Değerler, set:value:forKey yöntemi kullanılarak doğrudan bir GAITracker üzerinde de ayarlanabilir. Doğrudan ayarlanan değerler, söz konusu GAITracker kaynağından sonraki tüm isabetlere uygulanır:

// Values set directly on a tracker apply to all subsequent hits.
[tracker set:kGAIScreenName value:@"Home Screen"];

// This screenview hit will include the screen name "Home Screen".
// [tracker send:[[GAIDictionaryBuilder createAppView] build]];   // Previous V3 SDK versions.
[tracker send:[[GAIDictionaryBuilder createScreenView] build]];   // SDK Version 3.08 and up.

// And so will this event hit.
[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"ui_action"
                                                      action:@"button_press"
                                                       label:@"play"
                                                       value:nil] build]];

GAITracker için ayarlanan bir değeri temizlemek için özelliği nil olarak ayarlayın:

// Clear the previously-set screen name value.
[tracker set:kGAIScreenName
       value:nil];

// Now this event hit will not include a screen name value.
[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"ui_action"
                                                      action:@"button_press"
                                                       label:@"play"
                                                       value:nil] build]];

v3'te Veri Ayarlama hakkında daha fazla bilgi