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ğı hakkında bilgi verir.

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 modelinde
  • 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 onların 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'in nasıl kurulacağını öğ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. Uygulama Dragon Catcher adlı uygulama ve şu oynanabilirlik özelliklerine sahip:

  • Seviye; oyuncu, ejderhalar, çitle çevrili bir alan, kuyu ve ağaçlardan oluşur.
  • Oyuncunun amacı ejderhaları çitle çevrili 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 oyunu Barren Fields adlı ilk seviyede başlatır.

Google Analytics'i kullanarak Dragon Catcher hakkında kullanıcı davranışıyla ilgili cevaplanabilecek bazı sorular:

Bu belgenin geri kalanında, Dragon Catcher 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ünü inceleyin.

Örneğin, Dragon Catcher'da, bir ejderhayı kurtaran veya seviyedeki belirli bir alanı ziyaret eden bir kullanıcının etkinlikleri, 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'sı 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'sı 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ı

Etkinlik raporlama

Etkinlik verileri aşağıdaki dillerde 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 Catcher'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'sı 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 etkinlikleri kullanarak bunu ö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'sı 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-ticaretle ilgili raporlama

E-ticaret verilerinin sunulduğu ülkeler:

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

Uygulamanız için kullanıcıların tamamlamasını istediğiniz belirli hedefleriniz varsa Google Analytics'teki Hedefleri kullanarak bu hedefleri tanımlayabilir ve ölçebilirsiniz. Örneğin, hedef, kullanıcıların belirli bir oyun seviyesine ulaşması veya bir öğe satın almak 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 Catcher oyununda, her satın alma işlemi için Google Analytics'e bir etkinlik gönderilirse uygulama içi satın alma işlemlerinin ne zaman yapıldığını ölçmek için bir hedef ayarlanabilir. Hedef, web arayüzü yöneticisinde ek bir kod olmadan aşağıdaki parametreler kullanılarak 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ğıdaki dillerde 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 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ına bakın.

Örneğin, Dragon Catcher'da birinci, ikinci düzey vb. seviyelerdeki kullanıcıların yüzdesini bulmak için kullanıcının mevcut düzeyiyle bir özel 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) bölümünü inceleyin.
  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ı durumunun 1 olduğu ve kullanıcı seviyesinin Barren Fields olarak değiştiği bir durumda kullanıcının 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'sı 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 aşağıdakiler için bir segment olarak uygulanabilir:

Özel boyutu segment olarak uygulamak, o anda oyunda belirli bir seviyede bulunan kullanıcıları analiz etmenize olanak tanır.

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

Uygulamada bir işlemin ne kadar sürede tamamlandığını ölçmek istiyorsanız kullanıcı zamanlamaları, Google Analytics'teki zamana dayalı ölçümler için kullanılabilir. Kullanıcı zamanlamaları etkinliklere benzer, ancak zamana dayalıdır. 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 Catcher'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'sı 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 zamanlamalar için raporlama

Özel zamanlama verileri aşağıdaki dillerde mevcuttur:

  • Analytics Akademisi - Mobil uygulama analiziyle ilgili temel bilgileri de içeren ücretsiz çevrimiçi 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