iOS için Universal Analytics geliştirilmiş e-ticaret

Geliştirilmiş e-ticaret, Universal Analytics mülklerinde bulunan ve kullanıcıların alışveriş deneyimlerinde ürünlerle kurulan etkileşimlerin ölçülmesini sağlayan bir Google Analytics özelliğidir. Ürün gösterimleri, ürün tıklamaları, ürün ayrıntılarının görüntülenmesi, alışveriş sepetine ürün ekleme, ödeme işlemi başlatma, işlem yapma ve geri ödeme işlemleri bu kapsamda yer alabilir.

Hem Google Etiket Yöneticisi hem de mobil uygulamalar için Google Analytics'in yeni nesil sürümleri, Google'ın mobil uygulama platformu Firebase ile birlikte çalışır. Firebase SDK'sıyla uygulamaları ölçerken, uygulama içi kodla daha da özelleştirilebilen ve desteklenebilen otomatik olarak oluşturulmuş bir dizi mobil uygulama raporuna erişebilirsiniz. Bu raporlar, iTunes ve Google Play'de App Store tarafından işlenen uygulama içi satın alma işlemleriyle ilgili verileri otomatik olarak içerir. E-ticaret uygulamaları için önerilen etkinlikler uygulanarak e-ticaretle ilgili ek raporlar oluşturulabilir. Alışveriş davranışıyla ilgili ayrıntılı raporlar (gelişmiş e-ticaret) şu anda yalnızca Universal Analytics mülklerinde kullanılabilmektedir.

Bu belgede, Universal Analytics mülklerine geliştirilmiş e-ticaret verileri göndermek amacıyla Firebase için iOS SDK'sı ile birlikte Etiket Yöneticisi'nin nasıl kullanılacağı açıklanmaktadır. İleride ek e-ticaret raporlarına yönelik aşamayı ayarlamak için aynı etkinlik ve parametre söz dizimi kullanılmalıdır.

İlk adımlar

Başlamadan önce, uygulamanız için aşağıdaki ön koşulları ayarlayın:

  1. Uygulamanıza Firebase ve Google Etiket Yöneticisi'ni yükleyip yapılandırın. iOS için Firebase SDK'sının 11 veya sonraki bir sürümünü kullandığınızdan emin olun.
  2. Etiket Yöneticisi kapsayıcınızda "promosyonlar" adlı kullanıcı tanımlı bir değişkeni aşağıdaki ayarlarla yapılandırın:
    • Etkinlik Türü: Özel Parametre
    • Etkinlik Parametresi Anahtarı: tanıtımlar
    • Varsayılan Değer: tanımlanmamış

Uygulama

Aşağıdaki bölümlerde, geliştirilmiş e-ticaret etkinliklerini ölçmek için gerekli olan parametrelerle etkinliklerin nasıl günlüğe kaydedileceği gösterilmiştir:

Ürün Gösterimleri

kFIRParameterItemID parametresi ve ilgili alanlarla tanımlanan bir veya daha fazla öğe (ör. ürünler) içeren bir etkinlik kaydederek ürün gösterimlerini ölçün.

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterIndex : @1          // Position of the item in the list.
};

NSDictionary *product2 = @{
   kFIRParameterItemID : @"sku5678", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Capri",
   kFIRParameterItemCategory : @"Apparel/Women/Pants",
   kFIRParameterItemVariant : @"Black",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @35.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterIndex : @2          // Position of the item in the list.
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1, product2];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results" // List name.
};

// Log select_content event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventViewSearchResults
                    parameters:ecommerce];

Bu örnek için etiket yapılandırmasını inceleyin:

  • Etiket türü: Universal Analytics
  • İzleme Türü: Ekran Görüntüleme
  • Ayarlanacak Alanlar: (Alan Adı) screenName (değer, ör.) Arama Sonuçları Ekranı
  • Geliştirilmiş E-ticaret Özelliklerini Etkinleştir: True
  • Verileri Firebase Etkinliğinden oku
  • Tetikleyici, ör. (Özel > Bazı Etkinlikler) Etkinlik Adı view_search_results değerine eşittir

Ürün tıklamaları/seçimleri

Alakalı alanlarla tanımlanan bir öğeye (ör. ürün) sahip bir kFIREventSelectContent etkinliği kaydederek ürün tıklamalarını ölçün:

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterIndex : @1          // Position of the item in the list.
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results" // List name.
};

// Log select_content event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventSelectContent
                    parameters:ecommerce];

Bu örnek için etiket yapılandırmasını inceleyin:

  • Etiket türü: Universal Analytics
  • İzleme Türü: Etkinlik
  • Etkinlik Kategorisi, ör. E-ticaret
  • Etkinlik İşlemi, ör. Ürün Tıklaması
  • Geliştirilmiş E-ticaret Özelliklerini Etkinleştir: True
  • Verileri Firebase Etkinliğinden oku
  • Tetikleyici, ör. (Özel > Bazı Etkinlikler) Etkinlik Adı şuna eşittir: select_content VE {{promotions}} undefined

Ürün ayrıntısı görüntüleme sayısı

Alakalı alanlarla tanımlanan bir öğeye (ör. ürün) sahip bir kFIREventViewItem etkinliği kaydederek ürün ayrıntıları görüntüleme sayısını ölçün:

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results" // List name.
};

// Log view_item event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventViewItem
                    parameters:ecommerce];

Bu örnek için etiket yapılandırmasını inceleyin:

  • Etiket türü: Universal Analytics
  • İzleme Türü: Ekran Görüntüleme
  • Ayarlanacak Alanlar: (Alan Adı) screenName (değer, ör.) Ürün Ayrıntıları Ekranı
  • Geliştirilmiş E-ticaret Özelliklerini Etkinleştir: True
  • Verileri Firebase Etkinliğinden oku
  • Tetikleyici, ör. (Özel > Bazı Etkinlikler) Etkinlik Adı şuna eşittir: view_item VE
  • {{promosyonlar}} tanımlanmamış anlamına gelir

Alışveriş sepetine ekleme işlemleri

Alışveriş sepetine eklenen bir ürünü ölçmek için ilgili alanlarda tanımlanan bir öğeye (ör. ürün) sahip kFIREventAddToCart etkinliği kaydedin:

/// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items
};

// Log add_to_cart event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventAddToCart
                    parameters:ecommerce];

Bu örnek için etiket yapılandırmasını inceleyin:

  • Etiket türü: Universal Analytics
  • İzleme Türü: Etkinlik
  • Etkinlik Kategorisi, ör. E-ticaret
  • Etkinlik İşlemi, ör. Sepete Ekle
  • Geliştirilmiş E-ticaret Özelliklerini Etkinleştir: True
  • Verileri Firebase Etkinliğinden oku
  • Tetikleyici, ör. (Özel > Bazı Etkinlikler) Etkinlik adı add_to_cart

Alışveriş sepetinden kaldırma işlemleri

Alakalı alanlarla tanımlanan bir öğeye (ör. ürün) sahip bir kFIREventRemoveFromCart etkinliği kaydederek alışveriş sepetinden kaldırılan bir ürünü ölçün:

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items
};

// Log remove_from_cart event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventRemoveFromCart
                    parameters:ecommerce];

Bu örnek için etiket yapılandırmasını inceleyin:

  • Etiket türü: Universal Analytics
  • İzleme Türü: Etkinlik
  • Etkinlik Kategorisi, ör. E-ticaret
  • Etkinlik İşlemi, ör. Sepetten Kaldır
  • Geliştirilmiş E-ticaret Özelliklerini Etkinleştir: True
  • Verileri Firebase Etkinliğinden oku
  • Tetikleyici, ör. (Özel > Bazı Etkinlikler) Etkinlik Adı remove_from_cart

Tanıtımın gösterim sayısı

Alakalı alanlarla tanımlanan bir promosyon öğesinin yer aldığı bir kFIREventViewItem etkinliği kaydederek promosyon gösterimlerini ölçün.

/// Define promotion with relevant parameters.
NSDictionary *promotion = @{
   kFIRParameterItemID : @"PROMO_1234", // promotion ID; either ITEM_ID or ITEM_NAME is.
   kFIRParameterItemName : @"Summer Sale", // promotion name.
   kFIRParameterCreativeName : @"summer_banner2",
   kFIRParameterCreativeSlot : @"banner_slot1"
};

// Prepare ecommerce dictionary.
NSArray *promotions = @[promotion];
NSDictionary *ecommerce = @{
   @"promotions" : promotions
};

// Log view_item, view_item_list, or view_search_results
// event with ecommerce bundle.
[FIRAnalytics logEventWithName:kFIREventViewItem
                    parameters:ecommerce];

Bu örnek için etiket yapılandırmasını inceleyin:

  • Etiket türü: Universal Analytics
  • İzleme Türü: Etkinlik
  • Etkinlik Kategorisi, ör. Dahili Promosyon
  • Etkinlik İşlemi, ör. Gösterim
  • Etkileşim Dışı İsabet: Doğru
  • Geliştirilmiş E-ticaret Özelliklerini Etkinleştir: True
  • Verileri Firebase Etkinliğinden oku
  • Tetikleyici, ör. (Özel > Bazı Etkinlikler) Etkinlik Adı şuna eşittir: view_item VE
  • {{promosyonlar}} "tanımlanmamış" değerine eşit değildir

Tanıtım tıklamaları/seçimleri

Alakalı alanlarla tanımlanan bir promosyonla bir kFIREventSelectContent etkinliği kaydederek promosyon tıklamalarını ölçün:

// Define promotion with relevant parameters.
NSDictionary *promotion = @{
   kFIRParameterItemID : @"PROMO_1234", // promotion ID; either ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Summer Sale", // promotion name.
   kFIRParameterCreativeName : @"summer_banner2",
   kFIRParameterCreativeSlot : @"banner_slot1"
};

// Prepare ecommerce dictionary.
NSArray *promotions = @[promotion];

// Set properties for the event to be shown in the Google Analytics (Firebase) reports.
// These properties will not impact the Universal Analytics reporting.
NSDictionary *ecommerce = @{
   kFIRParameterItemID : @"PROMO_1234",
   kFIRParameterContentType : @"Internal Promotions",
   @"promotions" : promotions
};

// Log select_content, view_item_list, or view_search_results event with ecommerce bundle.
[FIRAnalytics logEventWithName:kFIREventSelectContent
                    parameters:ecommerce];

Bu örnek için etiket yapılandırmasını inceleyin:

  • Etiket türü: Universal Analytics
  • İzleme Türü: Etkinlik
  • Etkinlik Kategorisi, ör. Dahili Promosyon
  • Etkinlik İşlemi, ör. : Tıklama
  • Geliştirilmiş E-ticaret Özelliklerini Etkinleştir: True
  • Verileri Firebase Etkinliğinden oku
  • Tetikleyici, ör. (Özel > Bazı Etkinlikler) Etkinlik Adı seç_içerik VE {{promosyonlar}} eşdeğer değildir

Ödeme işlemi

Ödeme başlatma

Alakalı alanlarla tanımlanan bir veya daha fazla öğeyi (ürünleri) içeren bir kFIREventBeginCheckout etkinliği kaydederek ödeme işleminin ilk adımını ölçün:

// Define products with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

// Set checkout step and optional checkout option.
NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterCheckoutStep : @1, // Optional for first step.
   kFIRParameterCheckoutOption : @"Visa" // Optional.
};

// Log BEGIN_CHECKOUT event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventBeginCheckout
                    parameters:ecommerce];

Bu örnek için etiket yapılandırmasını inceleyin:

  • Etiket türü: Universal Analytics
  • İzleme Türü: Ekran Görüntüleme
  • Ayarlanacak Alanlar: (Alan Adı) screenName (değer, ör.) Sepet Ekranı
  • Geliştirilmiş E-ticaret Özelliklerini Etkinleştir: True
  • Verileri Firebase Etkinliğinden oku
  • Tetikleyici, ör. (Özel > Bazı Etkinlikler) Etkinlik Adı start_checkout değerine eşittir

Ödeme seçenekleri

Ödeme seçenekleri, ödeme sürecinin durumuyla ilgili ek bilgileri ölçmenize olanak tanır. Ödeme seçeneklerini bir ödeme adımı etkinliğinin parçası olarak (yukarıda gösterildiği gibi) veya kullanıcı belirli bir ödeme adımına ait etkinlik oluşturulduktan sonra bir seçenek belirledikten sonra ölçebilirsiniz.

İlgili kFIRParameterCheckoutStep ve kFIRParameterCheckoutOption parametreleriyle bir kFIREventCheckoutProgress etkinliği kaydederek, ödeme adımından sonra ödeme seçeneklerini ölçün:

// Define products with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

// Set checkout step and optional checkout option.
NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterCheckoutStep : @2, // Optional for first step.
   kFIRParameterCheckoutOption : @"Visa" // Optional.
};

// Log CHECKOUT_PROGRESS event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventCheckoutProgress
                   parameters:ecommerce];

Bu örnek için etiket yapılandırmasını inceleyin:

  • g Türü: Universal Analytics
  • ack Tür: Etkinlik
  • ent Kategorisi, ör.: E-ticaret
  • ent Action, ör. : Ödeme Seçeneği Oluştur
  • Geliştirilmiş E-ticaret Özellikleri mümkün: True
  • Firebase Etkinliği reklam verileri
  • Tetikleyici, ör. (Özel > Bazı Etkinlikler) Etkinlik Adı set_checkout_option değerine eşittir

Satın alma işlemleri

Alakalı alanlarla tanımlanan bir veya daha fazla öğeyi (ör. ürünler) içeren bir kFIREventEcommercePurchase etkinliği kaydederek satın alma işlemlerini ölçün:

// Define products with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

NSDictionary *product2 = @{
   kFIRParameterItemID : @"sku5678", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Capri",
   kFIRParameterItemCategory : @"Apparel/Women/Pants",
   kFIRParameterItemVariant : @"Black",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @35.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1, product2];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results", // List name.
   kFIRParameterTransactionID : @"T12345",
   kFIRParameterAffiliation : @"Google Store - Online",
   kFIRParameterValue : @75.98, // Revenue.
   kFIRParameterTax : @3.80,
   kFIRParameterShipping : @5.34,
   kFIRParameterCurrency : @"USD",
   kFIRParameterCoupon : @"SUMMER2017"
};

// Log ecommerce_purchase event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventEcommercePurchase
                    parameters:ecommerce];

Bu örnek için etiket yapılandırmasını inceleyin:

  • Etiket türü: Universal Analytics
  • İzleme Türü: Ekran Görüntüleme
  • Ayarlanacak Alanlar: (Alan Adı) screenName (değer, ör.) Teşekkür Ekranı
  • Geliştirilmiş E-ticaret Özelliklerini Etkinleştir: True
  • Verileri Firebase Etkinliğinden oku
  • Tetikleyici, ör. (Özel > Bazı Etkinlikler) Etkinlik Adı ecommerce_purchase değerine eşittir

Geri ödemeler

Geri ödemeyi, ilgili işlem kimliğiyle belirtilen kFIREventPurchaseRefund etkinliğinde ve isteğe bağlı olarak (kısmi geri ödemelerde) öğe kimlikleri ve miktarlarla tanımlanan bir veya daha fazla öğeyi (ör.ürünler) kaydederek ölçün.

// (OPTIONAL) For partial refunds, define the item IDs and
// quantities of products being refunded.
NSDictionary *refundedProduct = @{
   kFIRParameterItemID : @"sku1234", // Required for partial refund.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce bundle with transaction ID to be refunded.
NSDictionary *ecommerce = @{
   @"items" : @[ refundedProduct ],
   kFIRParameterTransactionID : @"T12345", // Required.
   kFIRParameterValue : @75.98 // Optional in Universal Analytics.
};

// Log purchase_refund event with ecommerce.
[FIRAnalytics logEventWithName:kFIREventPurchaseRefund
                    parameters:ecommerce];

Bu örnek için etiket yapılandırmasını inceleyin:

  • Etiket türü: Universal Analytics
  • İzleme Türü: Etkinlik
  • Etkinlik Kategorisi, ör. E-ticaret
  • Etkinlik İşlemi, ör.Refund .
  • Geliştirilmiş E-ticaret Özelliklerini Etkinleştir: True
  • Verileri Firebase Etkinliğinden oku
  • Tetikleyici, ör. (Özel > Bazı Etkinlikler) Event Name purchase_refund