Mobil Uygulama Uygulama Kılavuzu

Bu belge, mobil uygulama geliştiricileri için hazırlanmıştır ve kullanıcı etkileşimlerini ölçmek ve uygulama kullanımıyla ilgili soruları yanıtlamak için Google Analytics'in nasıl kullanılacağını açıklar.

Giriş

Mobil uygulamalar için Google Analytics, kullanıcı etkileşimlerini ölçen bir platform sağlayarak kullanıcıların uygulamanızla etkileşimini daha iyi anlamanıza ve optimize etmenize olanak tanır.

Google Analytics'in varsayılan uygulaması, uygulamanızla ilgili aşağıdaki bilgileri otomatik olarak sağlar:

  • kullanıcı ve oturum sayısı
  • oturum süresi
  • işletim sistemleri
  • cihaz modelleri
  • coğrafya : yer : konum (Coğrafya can be used when it is referred as subject, trivia name, filter name as in in Ads, Analytics etc)

Bu kılavuzda, kullanıcılarınızı ve davranışlarını daha iyi anlamak için ek Google Analytics özelliklerini nasıl uygulayabileceğiniz açıklanmaktadır.

Başlamadan önce

Bu kılavuz üzerinde çalışmadan önce, Mobil Uygulamalar için Google Analytics'i nasıl kuracağınızı öğrenmek üzere aşağıdaki kaynakları incelemenizi öneririz:

Genel bakış

Ejderha Tutucu

Bu kılavuzda, ek Google Analytics özelliklerinin uygulanmasında size yol göstermek için örnek bir uygulama kullanılmıştır. Dragon Keeper adlı uygulama aşağıdaki oynanabilirlik özelliklerine sahiptir:

  • Seviye bir oyuncu, ejderhalar, çitle çevrili bir alan, kuyu ve ağaçlardan oluşur.
  • Oyuncunun amacı ejderhaları çitle çevrili bir alana götürerek yakalamaktır
  • oyuncu, seviyenin farklı alanlarını ve kuyu veya sihirli ağaç gibi nesneleri ziyaret edebilir
  • oyuncu tüm ejderhaları yakaladıktan sonra bir sonraki seviyeye geçer
  • oyuncu oyuna Barren Fields adlı ilk seviyede başlar.

Google Analytics'i kullanarak, Dragon augher hakkında yanıtlanabilecek kullanıcı davranışı sorularından bazıları şunlardır:

Bu belgenin geri kalanında, Dragon augher oyunu için Google Analytics özellikleri uygulanarak bu soruların nasıl yanıtlanabileceği gösterilmektedir.

Kullanıcılarım hangi işlemleri gerçekleştiriyor? (Etkinlikler)

Uygulamanızda izlemek istediğiniz önemli işlemler varsa Google Analytics'te bu işlemi tanımlamak için etkinlikler kullanılabilir. Bir etkinlik dört parametreden oluşur: category, action, label ve value. Etkinliklerin Google Analytics'te nasıl çalıştığıyla ilgili ayrıntılar için Etkinlik İzlemenin Anatomisi bölümüne bakın.

Örneğin, Dragon Collecter'da bir ejderhayı kurtaran veya seviyedeki belirli bir alanı ziyaret eden bir kullanıcı, etkinlikleri kullanarak ölçmek istediğimiz önemli işlemlerdir. Aşağıdaki kod snippet'i, Google Analytics'te bunun nasıl ölçüleceğini göstermektedir.

Android SDK'sı v4

// To determine how many dragons are being rescued, send an event when the
// player rescues a dragon.
tracker.send(new HitBuilders.EventBuilder()
    .setCategory("Barren Fields")
    .setAction("Rescue")
    .setLabel("Dragon")
    .setValue(1)
    .build());

// To determine if players are visiting the magic tree, send an event when the
// player is in the vicinity of the magic tree.
tracker.send(new HitBuilders.EventBuilder()
    .setCategory("Barren Fields")
    .setAction("Visited")
    .setLabel("Magic Tree")
    .setValue(1)
    .build());

// To determine if players are visiting the well, send an event when the player
// is in the vicinity of the well.
tracker.send(new HitBuilders.EventBuilder()
    .setCategory("Barren Fields")
    .setAction("Visited")
    .setLabel("Well")
    .setValue(1)
    .build());

iOS SDK v3

// To determine how many dragons are being rescued, send an event when the
// player rescues a dragon.
[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Barren Fields"
                                                      action:@"Rescue"
                                                       label:@"Dragon"
                                                       value:@1] build]];

// To determine if players are visiting the magic tree, send an event when the
// player is in the vicinity of the magic tree.
[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Barren Fields"
                                                      action:@"Visited"
                                                       label:@"Magic Tree"
                                                       value:@1] build]];

// To determine if players are visiting the well, send an event when the player
// is in the vicinity of the well.
[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Barren Fields"
                                                      action:@"Visited"
                                                       label:@"Well"
                                                       value:@1] build]];

Unity v3 için GA Eklentisi

// To determine how many dragons are being rescued, send an event when the
// player rescues a dragon.
googleAnalytics.LogEvent("Barren Fields", "Rescue", "Dragon", 1);

// To determine if players are visiting the magic tree, send an event when the
// player is in the vicinity of the magic tree.
googleAnalytics.LogEvent("Barren Fields", "Visited", "Magic Tree", 1);

// To determine if players are visiting the well, send an event when the player
// is in the vicinity of the well.
googleAnalytics.LogEvent("Barren Fields", "Visited", "Well", 1);

Oyuncu "başarılarını" ölçme

Oyuncu "başarıları", Google Analytics'teki etkinlikler kullanılarak ölçülebilir. Örneğin, 5 ejderhayı kurtarma başarısını ölçmek için bir oyuncunun kurtardığı ejderhaların sayısı kaydedilir ve oyuncu eşiğe ulaştığında Google Analytics'e bir etkinlik gönderilir:

Android SDK'sı v4

if (numDragonsRescued > 5) {
  if (!user.hasAchievement(RESCUED_ACHIEVEMENT) {
    tracker.send(new HitBuilders.EventBuilder()
        .setCategory("Achievement")
        .setAction("Unlocked")
        .setLabel("5 Dragons Rescued")
        .setValue(1)
        .build());
  } else {
    tracker.send(new HitBuilders.EventBuilder()
        .setCategory("Achievement")
        .setAction("Earned")
        .setLabel("5 Dragons Rescued")
        .setValue(1)
        .build());
  }
}

iOS SDK v3

if (numDragonsRescued > 5) {
  if (![user hasAchievement:RESCUED_ACHIEVEMENT]) {
    [tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Achievement"
                                                          action:@"Unlocked"
                                                           label:@"5 Dragons Rescued"
                                                           value:@1] build]];
  } else {
    [tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Achievement"
                                                          action:@"Earned"
                                                           label:@"5 Dragons Rescued"
                                                           value:@1] build]];
  }
}

Unity v3 için GA Eklentisi

if (numDragonsRescued > 5) {
  if (!user.HasAchievement(RESCUED_ACHIEVEMENT) {
    googleAnalytics.LogEvent("Achievement", "Unlocked", "5 Dragons Rescued", 1);
  } else {
    googleAnalytics.LogEvent("Achievement", "Earned", "5 Dragons Rescued", 1);
  }
}

Etkinlikler için geliştirici kılavuzları

Etkinlikler için raporlama

Etkinlik verileri aşağıdaki sürümlerde sunulur:

Kullanıcılar uygulamamda ne kadar para harcıyor? (Geliştirilmiş E-ticaret)

Kullanıcıların uygulama içi satın alma işlemlerini ölçmek istiyorsanız, satın alma işlemini izlemek ve ilgili ürün performansı ile kullanıcı davranışını anlamak için e-ticaret izleme kullanılabilir. E-ticaret izleme, belirli bir öğenin veya sanal para biriminin satın alınmasını ölçmek için kullanılabilir.

Örneğin, Dragon Keeper'da bazı öğelerin satın alınmasını ölçmek için işlem verileri Google Analytics'e bir etkinlikle gönderilir:

Android SDK'sı v4

Product product = new Product()
    .setName("Dragon Food")
    .setPrice(40.00);

ProductAction productAction = new ProductAction(ProductAction.ACTION_PURCHASE)
    .setTransactionId("T12345");

// Add the transaction data to the event.
HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder()
    .setCategory("In-Game Store")
    .setAction("Purchase")
    .addProduct(product)
    .setProductAction(productAction);

// Send the transaction data with the event.
tracker.send(builder.build());

iOS SDK v3

GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setName:@"Dragon Food"];
[product setPrice:@40.00];

GAIEcommerceProductAction *productAction = [[GAIEcommerceProductAction alloc] init];
[productAction setAction:kGAIPAPurchase];
[productAction setTransactionId:@"T12345"];

GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"In-Game Store"
                                                                       action:@"Purchase"
                                                                        label:nil
                                                                        value:nil];
// Add the transaction data to the event.
[builder setProductAction:productAction];
[builder addProduct:product];

// Send the transaction data with the event.
[tracker send:[builder build]];

Unity v3 için GA Eklentisi

// Note: Using Android SDK v3 and standard Ecommerce tracking.

googleAnalytics.LogItem("T12345", "Dragon Food", "Food_SKU", "Items", 40.00, 1);
googleAnalytics.LogTransaction("T12345", "In-Game Store", 40.00, 0.00, 0.00);

Bir kullanıcı sanal para birimi satın alırsa işlem verilerini Google Analytics'e gönderirken gerçek para kurunu ölçmeniz önerilir. Kullanıcı öğe satın almak için sanal para birimini harcadığında, bunu etkinlikler kullanarak ölçün. Örneğin:

Android SDK'sı v4

/**
 * When the user purchases the virtual currency (Gems) measure the transaction
 * using enhanced ecommerce.
 */
Product product =  new Product()
    .setName("2500 Gems")
    .setPrice(5.99);

ProductAction productAction = new ProductAction(ProductAction.ACTION_PURCHASE)
    .setTransactionId("T67890");

// Add the transaction to the screenview.
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addProduct(product)
    .setProductAction(productAction);

// Send the transaction with the screenview.
tracker.setScreenName("In-Game Store");
tracker.send(builder.build());


/**
 * When the user purchases an item using the virtual currency (Gems) send an
 * event to measure this in Google Analytics.
 */
HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder()
    .setCategory("In-Game Store")
    .setAction("Purchase")
    .setLabel("Sword")
    .setValue(35);
tracker.send(builder.build());

iOS SDK v3

/**
 * When the user purchases the virtual currency (Gems) measure the transaction
 * using enhanced ecommerce.
 */
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setName:@"2500 Gems"];
[product setPrice:@5.99];

GAIEcommerceProductAction *productAction = [[GAIEcommerceProductAction alloc] init];
[productAction setAction:kGAIPAPurchase];
[productAction setTransactionId:@"T67890"];

GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];

// Add the transaction data to the screenview.
[builder setProductAction:productAction];
[builder addProduct:product];

// Send the transaction with the screenview.
[tracker set:kGAIScreenName value:@"In-Game Store"]
[tracker send:[builder build]];


/**
 * When the user purchases an item using the virtual currency (Gems) send an
 * event to measure this in Google Analytics.
 */
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"In-Game Store"
                                                                       action:@"Purchase"
                                                                        label:@"Sword"
                                                                        value:@35];
[tracker send:[builder build]];

Unity v3 için GA Eklentisi

// Note: Using Android SDK v3 and standard Ecommerce tracking.

/**
 * When the user purchases the virtual currency (Gems) measure the transaction
 * using enhanced ecommerce.
 */

googleAnalytics.LogItem("T12345", "2500 Gems", "GEM2500_SKU", "Items", 5.99, 1);
googleAnalytics.LogTransaction("T12345", "In-Game Store", 5.99, 0.00, 0.00);

/**
 * When the user purchases an item using the virtual currency (Gems) send an
 * event to measure this in Google Analytics.
 */
googleAnalytics.LogEvent("In-Game Store", "Purchase", "Sword", 35);

Geliştirilmiş e-ticaret için geliştirici kılavuzları

Geliştirilmiş e-ticaret için raporlama

E-ticaret verileri şu dillerde sunulur:

Kullanıcılar uygulama hedeflerimi tamamlıyor mu? (Hedefler)

Uygulamanız için kullanıcıların tamamlamasını istediğiniz belirli hedefler varsa Google Analytics'teki Hedefler özelliğini kullanarak bu hedefleri tanımlayabilir ve ölçebilirsiniz. Örneğin, hedef, kullanıcıların belirli bir oyun seviyesine ulaşmaları veya bir öğeyi satın almaları olabilir. Hedeflerin işleyiş şekli hakkında daha fazla bilgi edinmek için Hedefler hakkında (Yardım Merkezi) bölümünü inceleyin.

Dragon Collecter oyununda, her satın alma işlemi için Google Analytics'e bir etkinlik gönderilirse uygulama içi satın alma işleminin ne zaman yapıldığını ölçmek için bir hedef ayarlanabilir. Hedef, aşağıdaki parametreler kullanılarak herhangi bir ek kod olmadan web arayüzü yöneticisinde tanımlanabilir:

  • Hedef Türü (Eşittir): Etkinlik
  • Kategori (Eşittir): Oyun İçi Mağaza
  • İşlem (Eşittir): Satın alma
  • Etkinlik değerini dönüşüm için Hedef Değeri olarak kullan: Yes

Hedef Raporlama

Hedef verileri aşağıdakilerde sunulur:

Belirli bir özelliğe sahip kullanıcılar nasıl davranıyor? (Özel Boyutlar ve Metrikler)

Kullanıcıları belirli özelliklere/özelliklere/meta verilere sahip şekilde izlemek istiyorsanız bu tür verileri Google Analytics'e ve analize göndermek için özel boyutlar kullanılabilir. Özel boyutların işleyiş şekli hakkında daha fazla bilgi edinmek için Özel Boyutlar ve Metrikler özellik referansı bölümüne bakın.

Örneğin, Dragon Keeper'da birinci, ikinci seviyedeki kullanıcıların yüzdesini bulmak için kullanıcının mevcut düzeyiyle özel bir boyut ayarlanabilir ve bu boyut Google Analytics'e gönderilebilir. Adımlar aşağıdaki gibidr:

  1. User kapsamı olan bir özel boyut oluşturun. User kapsamı, bu değerin ilgili kullanıcının tüm oturumlarında kalması gerektiği için kullanılır. Özel boyutları oluşturma veya düzenleme (Yardım Merkezi) konusuna bakın.
  2. Kullanıcının düzeyi değiştiğinde özel boyut değerini güncelleyin.

Aşağıdaki snippet, Google Analytics'te kullanıcı düzeyinde özel boyut dizininin 1 ve kullanıcı düzeyinin Barren Fields olarak değiştiği bir durumda kullanıcı durumunun nasıl güncelleneceğini gösterir:

Android SDK'sı v4

// Set the user level custom dimension when sending a hit to Google Analytics
// such as a screenview or event.
tracker.setScreen("BarrenFields");
tracker.send(new HitBuilders.ScreenViewBuilder()
    .setCustomDimension(1, "Barren Fields")
    .build()
);

iOS SDK v3

// Set the user level custom dimension when sending a hit to Google Analytics
// such as a screenview or event.
[tracker set:kGAIScreenName value:@"BarrenFields"];
[tracker send:[[[GAIDictionaryBuilder createScreenView]
         set:@"Barren Fields"
      forKey:[GAIFields customDimensionForIndex:1]] build]];

Unity v3 için GA Eklentisi

// Set the user level custom dimension when sending a hit to Google Analytics
// such as a screenview or event.
googleAnalytics.LogScreen(new AppViewHitBuilder()
    .SetScreenName("BarrenFields").SetCustomDimension(1, "Barren Fields"));

Özel Boyutlar ve Metrikler için geliştirici kılavuzları

Özel Boyutlar ve Metrikler için raporlama

Özel boyutlar, şunlara dahil edilebilir ve bir segment olarak uygulanabilir:

Özel boyutu segment olarak uygulamak, oyunda belirli bir düzeyde bulunan kullanıcıları analiz etmenize olanak tanır.

Kullanıcının bir görevi tamamlaması ne kadar sürüyor? (Özel Zamanlamalar)

Bir işlemin uygulamada tamamlanmasının ne kadar sürdüğünü ölçmek istiyorsanız kullanıcı zamanlamaları Google Analytics'te zamana dayalı ölçümler için kullanılabilir. Kullanıcı zamanlamaları etkinliklere benzer ancak zamana dayanır ve category, value, name (variable) ve label içerebilir. Kullanıcı zamanlamalarının işleyiş şekli hakkında bilgi edinmek için Site Hızı hakkında başlıklı makaleyi inceleyin.

Örneğin, bir kullanıcının ilk ejderhasını kurtarmasının ne kadar sürdüğünü ölçmek için Dragon Keeper'da aşağıdakine benzer bir şey gönderebilirsiniz:

Android SDK'sı v4

// Build and send a timing hit.
tracker.send(new HitBuilders.TimingBuilder()
    .setCategory("Barren Fields")
    .setValue(45000)  // 45 seconds.
    .setVariable("First Rescue")
    .setLabel("Dragon")
    .build());

iOS SDK v3

[tracker send:[[GAIDictionaryBuilder createTimingWithCategory:@"Barren Fields"
                                                     interval:@45000   // 45 seconds.
                                                         name:@"First Rescue"
                                                        label:@"Dragon"] build]];

Unity v3 için GA Eklentisi

// Build and send a timing hit.
googleAnalytics.LogTiming("Barren Fields",45000,"First Rescue","Dragon");

Özel zamanlamalar için geliştirici kılavuzları

Özel zamanlamalarla ilgili raporlama

Özel zamanlama verileri aşağıdaki seçeneklerde sunulur:

  • Analytics Akademisi - Mobil uygulama analiziyle ilgili temel bilgileri de içeren ücretsiz online kurslarla Analytics becerilerinizi geliştirin.
  • Toplama API'leri ve SDK'ları - Google Analytics'e veri gönderebileceğiniz tüm yöntemler hakkında bilgi edinin