Mobil Uygulama Uygulama Kılavuzu

Bu doküman, mobil uygulama geliştiricileri içindir ve Google Analytics'i kullanarak kullanıcı etkileşimlerini ölçmek ve uygulama kullanımıyla ilgili soruları yanıtlamak için kullanılır.

Giriş

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

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

  • Kullanıcı ve oturum sayısı
  • Oturum süresi
  • İşletim sistemleri
  • Cihaz modelleri
  • Konum

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

Mobil Uygulamalar için Google Analytics'i ayarlamak üzere bu kılavuzda uygulamadan önce:

Genel bakış

Ejderha Yakalayıcı

Bu kılavuzda, ek Google Analytics özelliklerinin uygulanmasında size yol gösterecek örnek bir uygulama yer almaktadır. Dragon Catcher adı verilen bu uygulama, aşağıdaki oynanabilirlik özelliklerine sahip:

  • Seviyeler oyuncu, ejderha, çitle çevrili bir alan, bir kuyu ve ağaçlardan oluşur
  • Oyuncunun amacı ejderhaları çitle çevrili alana taşımaktır
  • Oyuncular, seviyelerin farklı alanlarını ve bir kuyu ya da sihirli ağaç gibi nesneleri ziyaret edebiliyor
  • Oyuncu tüm ejderhaları yakaladıktan sonra bir üst seviyeye çıkıyor
  • Oyuncu, oyunu Barren Fields adlı ilk seviyede başlatıyor.

Google Analytics'i kullanarak, Dragon Catcher hakkında yanıtlanabilecek bazı kullanıcı davranışı soruları vardır:

Bu dokümanın geri kalanında, Dragon Catcher oyunu için Google Analytics özelliklerini uygulayarak bu soruların nasıl yanıtlanabileceği gösterilmiştir.

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

Uygulamanızda izlemek istediğiniz önemli işlemler varsa bu işlemleri Google Analytics'te açıklamak için etkinlikleri kullanabilirsiniz. Bir etkinlik dört parametreden oluşur: category, action, label ve value.

Örneğin, Dragon Catcher'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, bunun Google Analytics'te nasıl ölçüleceğini gösterir.

Android SDK

// 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

// 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 İç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);

Oyuncuların başarılarını ölçme

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

Android SDK

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

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 İç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 ülkelerde kullanılabilir:

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

Kullanıcıların uygulama içi satın almaları ölçmek istiyorsanız satın alma işlemini izlemek ve ilgili ürün performansını ve 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 alma işlemini ölçmek için işlem verileri bir etkinlikle birlikte Google Analytics'e gönderilir:

Android SDK

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

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 İç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 borsasını ölçmeniz önerilir. Kullanıcı öğe satın almak için sanal para birimini harcadığında bunu etkinlikleri kullanarak ölçün. Örneğin:

Android SDK

/**
 * 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

/**
 * 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 *viewBuilder = [GAIDictionaryBuilder createScreenView];

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

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


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

Unity İç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 ülkelerde kullanılabilir:

Kullanıcılar uygulama hedeflerimi gerçekleştiriyor mu? (Hedefler)

Kullanıcıların uygulamanız için gerçekleştirmesini istediğiniz belirli hedefleri varsa Google Analytics'teki Hedefler'i kullanarak bu hedefleri tanımlayabilir ve ölçebilirsiniz. Örneğin, kullanıcıların belirli bir oyun düzeyine ulaşması veya bir öğeyi satın alması amaçlanabilir. Hedeflerin işleyiş şekli hakkında daha fazla bilgi edinmek için Hedefler hakkında (Yardım Merkezi) başlıklı makaleyi 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 ölçüleceğini ölçmek için bir hedef ayarlanabilir. Hedef, ek parametreler olmadan web arayüzü yöneticisinde 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ın: Evet

Hedef Raporlama

Hedef verileri aşağıdaki ülkelerde kullanılabilir:

Belirli bir özelliğe sahip kullanıcılar nasıl davranır? (Özel Boyutlar &Metrikleri)

Belirli özelliklere/özelliklere/meta verilere sahip kullanıcıları izlemek istiyorsanız bu tür verileri Google Analytics'e ve analizde 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 Metrik özelliği referansına bakın.

Örneğin, Dragon Catcher'da birinci, ikinci düzey vb. seviyelerdeki kullanıcıların yüzdesini öğrenmek için kullanıcının geçerli düzeyiyle özel bir boyut belirlenip Google Analytics'e gönderilebilir. Adımlar aşağıdaki gibidr:

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

Aşağıdaki snippet'te, kullanıcı düzeyindeki özel boyut dizininin 1 olduğu ve kullanıcı seviyesinin Barren Fields olarak değiştiği Google Analytics'te kullanıcının durumunun nasıl güncelleneceği gösterilmektedir:

Android SDK

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

iOS SDK

// 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 İç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 için geliştirici kılavuzları

Özel Boyutlar için Raporlama ve Metrikler

Özel boyutlar şunları yapmak için dahil edilebilir ve segment olarak uygulanabilir:

Özel boyutu segment olarak uygulamak, şu anda oyun içinde belirli bir düzeydeki kullanıcıları analiz etmenize olanak tanır.

Bir kullanıcının bir görevi gerçekleştirmesi ne kadar sürer? (Özel Zamanlamalar)

Uygulamada bir işlemin ne kadar sürede tamamlandığını ölçmek istiyorsanız Google Analytics'te zamana dayalı ölçümler için kullanıcı zamanlamaları kullanılabilir. Kullanıcı etkinlikleri etkinliklere benzer, ancak zaman temellidir ve bir category, value, name (variable) ve label içerebilir. Kullanıcı zamanlamasının işleyiş şekli hakkında bilgi edinmek için Site Hızı hakkında başlıklı makaleyi inceleyin.

Örneğin, Dragon Catcher'da bir kullanıcının ilk ejderhasını kurtarmasının ne kadar sürdüğünü ölçmek için aşağıdaki gibi bir mesaj gönderebilirsiniz:

Android SDK

// 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

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

Unity İç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 şu ülkelerde kullanılabilir:

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