Bu kılavuzda, Android için Google Etiket Yöneticisi SDK'sı kullanılarak Universal Analytics Geliştirilmiş E-ticaret özelliklerinin nasıl uygulanacağı açıklanmaktadır.
Genel bakış
Google Analytics Geliştirilmiş E-ticaret; ürün gösterimi, tanıtım ve satış verilerinin tüm Google Analytics ekran görüntülenmeleriniz ve etkinliklerinizle birlikte gönderilmesine olanak tanır.
Başlamadan önce
Uygulamanızı planlamanıza yardımcı olması için Google Analytics Geliştirilmiş E-ticaret Geliştirici Kılavuzu'nun (Web) Geliştirilmiş E-ticaret Veri Türleri ve İşlemleri bölümünü incelemenizi öneririz. Bu kılavuz, ölçmek istediğiniz e-ticaret etkileşimlerinin her biri için hangi alanların zorunlu ve isteğe bağlı olduğunu anlamanıza yardımcı olacaktır.
Uygulama
Aşağıdaki bölümlerde, aşağıdaki geliştirilmiş e-ticaret etkinliklerini ölçmek için veri katmanının nasıl kullanılacağı gösterilmektedir:
- Ürün Gösterim Sayısı
- Ürün Tıklamaları/Seçimleri
- Ürün Ayrıntısı Gösterim Sayısı
- Alışveriş Sepetine Ekleme / Kaldırma
- Promosyon Gösterim Sayısı
- Tanıtım Tıklamaları/Seçimleri
- Ödeme
- Satın alma işlemleri
- Geri ödemeler
Ürün Gösterimlerini Ölçme
- E-ticaret Ölçümü:
impressions
- Veriyi kabul eder:
impressionFieldObjects
dizisi
impression
işlemini ve en az bir impressionFieldObjects
özelliğini kullanarak ürün gösterimlerini ölçün. Aşağıdaki örnekte, ekran gösterildiği sırada görüntülenen ürünlerle ilgili ayrıntıların bilindiği varsayılmaktadır:
// Product impressions are sent by pushing an impressions object // containing one or more impressionFieldObjects. dataLayer.push("ecommerce", DataLayer.mapOf( "currencyCode", "EUR", // Local currency is optional. "impressions", DataLayer.listOf( DataLayer.mapOf( "name", "Triblend Android T-Shirt", // Name or ID is required. "id", "12345", "price", "15.25", "brand", "Google", "category", "Apparel", "variant", "Gray", "list", "Search Results", "position", 1), DataLayer.mapOf( "name", "Donut Friday Scented T-Shirt", "id", "67890", "price", "33.75", "brand", "Google", "category", "Apparel", "variant", "Black", "list", "Search Results", "position", 2))));
Ürün Tıklamalarını/Seçimlerini Ölçme
- E-ticaret Ölçümü:
click
- Şu verileri kabul eder:
list
,productFieldObjects
dizisi
Seçilen ürünü temsil eden bir productFieldObject
ile birlikte veri katmanına bir click
işlemi aktararak ürün seçimlerini ölçün:
dataLayer.pushEvent("productClick", DataLayer.mapOf( "ecommerce", DataLayer.mapOf( "click", DataLayer.mapOf( "actionField", DataLayer.mapOf( "list", "Search Results"), // Optional list property. "products", DataLayer.listOf( DataLayer.mapOf( "name", "Triblend Android T-Shirt", // Name or ID is required. "id", "12345", "price", "15.25", "brand", "Google", "category", "Apparel", "variant", "Gray"))))));
Ürün Ayrıntılarının Görüntülenmelerini Ölçme
- E-ticaret Ölçümü:
detail
- Şu verileri kabul eder:
list
,productFieldObjects
dizisi
Görüntülenen ürünleri temsil eden bir veya daha fazla productFieldObjects
ile birlikte, veri katmanına bir detail
işlemi göndererek ürün ayrıntıları görünümünü ölçün:
// Measure a view of product details. dataLayer.push("ecommerce", DataLayer.mapOf( "detail", DataLayer.mapOf( "actionField", DataLayer.mapOf( "list", "Apparel Gallery"), // detail actions have an optional list property. "products", DataLayer.listOf( DataLayer.mapOf( "name", "Triblend Android T-Shirt", // Name or ID is required. "id", "12345", "price", "15.25", "brand", "Google", "category", "Apparel", "variant", "Gray")))));
Alışveriş Sepetine Yapılan Eklemeleri veya Kaldırmaları Ölçme
- E-ticaret Ölçümü:
add
,remove
- Şu verileri kabul eder:
list
,productFieldObjects
dizisi
Bir add
veya remove
actionFieldObject
ve bir productFieldObjects
listesi kullanarak alışveriş sepetine ekleme ya da kaldırma işlemlerini ölçün:
Alışveriş Sepetine Ürün Ekleme
// Measure adding a product to a shopping cart by using an "add" // actionFieldObject and a list of productFieldObjects. dataLayer.pushEvent("addToCart", DataLayer.mapOf( "ecommerce", DataLayer.mapOf( "currencyCode", "EUR", "add", DataLayer.mapOf( // 'add' actionFieldObject measures. "products", DataLayer.listOf( DataLayer.mapOf( "name", "Triblend Android T-Shirt", "id", "12345", "price", "15.25", "brand", "Google", "category", "Apparel", "variant", "Gray", "quantity", 1))))));
Alışveriş Sepetinden Ürün Kaldırma
// Measure the removal of a product from a shopping cart. dataLayer.pushEvent("removeFromCart", DataLayer.mapOf( "ecommerce", DataLayer.mapOf( "remove", DataLayer.mapOf( // 'remove' actionFieldObject measures. "products", DataLayer.listOf( DataLayer.mapOf( "name", "Triblend Android T-Shirt", "id", "12345", "price", "15.25", "brand", "Google", "category", "Apparel", "variant", "Gray", "quantity", 1))))));
Promosyonları Ölçme
Dahili uygulama tanıtımlarındaki gösterimleri ve seçimleri (ör. belirli bir ürün alt kümesindeki indirimin reklamını yapmak için uygulamada görüntülenen banner'lar veya ücretsiz kargo teklifleri) ölçebilirsiniz.
Tanıtım Gösterimlerini Ölçme
- E-ticaret Ölçümü:
promoView
- Veriyi kabul eder:
promoFieldObjects
dizisi
Bir promosyon gösterimini ölçmek için e-ticaret veri katmanındaki promoView
anahtarını, ekranda kullanıcılara gösterilen promosyonları açıklayan bir promoFieldObject
değerine ayarlayın:
// An example of measuring promotion views. This example assumes that // information about the promotions displayed is available when the screen is // displayed. dataLayer.push("ecommerce", DataLayer.mapOf( "promoView", DataLayer.mapOf( "promotions", DataLayer.listOf( // List of promoFieldObjects. DataLayer.mapOf( "id", "JUNE_PROMO13", // ID or Name is required. "name", "June Sale", "creative", "banner1", "position", "slot1"), DataLayer.mapOf( "id", "FREE_SHIP13", "name", "Free Shipping Promo", "creative", "skyscraper1", "position", "slot2")))));
Tanıtım Tıklamalarını/Seçimlerini Ölçme
Bir sıra yükseltme seçimini ölçmek için promoClick
işlemini, seçilen promosyonu açıklayan promoFieldObject
içeren bir diziyle veri katmanına aktarın:
dataLayer.pushEvent("promotionClick", DataLayer.mapOf( "ecommerce", DataLayer.mapOf( "promoClick", DataLayer.mapOf( "promotions", DataLayer.listOf( DataLayer.mapOf( "id", "JUNE_PROMO13", // Name or ID is required. "name", "June Sale", "creative", "banner1", "position", "slot1"))))));
Ödeme İşlemini Ölçme
Ödeme sürecindeki her adımı ölçmek için şunları yapmanız gerekir:
checkout
işlemini kullanarak ödeme işleminin her adımını ölçün.- Mümkünse ödeme seçeneklerini,
checkout_option
işlemini kullanarak ölçün. - İsteğe bağlı olarak, web arayüzünün Yönetici bölümünde E-ticaret Ayarları'nı yapılandırarak ödeme dönüşüm hunisi raporu için kullanıcı dostu adım adları belirleyin.
1. Ödeme Adımlarını Ölçme
- E-ticaret Ölçümü:
checkout
- Şu verileri kabul eder:
step
,productFieldObjects
dizisi
Ödeme düğmesinin yanı sıra kullanıcıların gönderim ve ödeme bilgilerini girdiği bir veya daha fazla ödeme ekranı gibi ödeme sürecini ölçmek için checkout
işlemini ve step
alanını kullanarak ödeme sürecinin hangi aşamasının ölçüldüğünü belirtin.
option
alanını, ödeme işlemi hakkında kullanıcı tarafından seçilen ödeme türü gibi ek veriler sağlamak için de kullanabilirsiniz.
dataLayer.pushEvent("checkout", DataLayer.mapOf( "ecommerce", DataLayer.mapOf( "checkout", DataLayer.mapOf( "actionField", DataLayer.mapOf( "step", 1, "option", "Visa"), "products", DataLayer.listOf( DataLayer.mapOf( "name", "Triblend Android T-Shirt", "id", "12345", "price", "15.25", "brand", "Google", "category", "Apparel", "variant", "Gray", "quantity", 1))))));
2. Ödeme Seçeneklerini Ölçme
- E-ticaret Ölçümü:
checkout_option
- Veri Kabul Edilir:
step
,option
Ödeme seçeneği, daha önce bir ödeme adımını ölçtüğünüz ancak aynı ödeme adımıyla ilgili ek bilgiler toplamak istediğiniz durumlarda kullanışlıdır. Örneğin, bir kullanıcı tarafından seçilen gönderim yöntemi.
Bunu ölçmek için step
ve option
alanlarıyla birlikte checkout_option
işlemini kullanın.
dataLayer.pushEvent("checkoutOption", DataLayer.mapOf( "ecommerce", DataLayer.mapOf( "checkout_option", DataLayer.mapOf( "products", DataLayer.listOf(), // checkout_option expects a list of products. The workaround is to provide an empty list. "actionField", DataLayer.mapOf( "step", 1, "option", "Express")))));
3. Ödeme Dönüşüm Hunisi Yapılandırması
İsteğe bağlı olarak, ödeme sürecinizdeki her adıma raporlarda kullanılacak açıklayıcı bir ad verilebilir. Bu adları yapılandırmak için Google Analytics Web arayüzünün Yönetici bölümünü ziyaret edin, görünümü (profili) seçin ve E-ticaret Ayarları'nı tıklayın. İzlemek istediğiniz her ödeme adımını etiketlemek için e-ticaret kurulum talimatlarını uygulayın.
Satın Almaları Ölçme
- E-ticaret Ölçümü:
purchase
- Şu verileri kabul eder:
id
(İşlem kimliği),productFieldObjects
dizisi
purchase
işlemini ve geliştirilmiş e-ticaretin etkin olduğu bir etiketi tetikleyecek event
işlemini kullanarak işlem ayrıntılarınızı veri katmanına aktarın. Bu örnekte, işlem ayrıntıları ekran görüntülendiği anda bilinmektedir:
// Send transaction data with a screenview if possible. // Otherwise, use an event when the transaction data becomes available. dataLayer.push("ecommerce", DataLayer.mapOf( "purchase", DataLayer.mapOf( "actionField", DataLayer.mapOf( "id", "T12345", // Transaction ID. Required for purchases and refunds. "affiliation", "Online Store", "revenue", "35.43", // Total transaction value (incl. tax and shipping) "tax", "4.90", "shipping", "5.99", "coupon", "SUMMER_SALE"), "products", DataLayer.listOf( // List of productFieldObjects. DataLayer.mapOf( "name", "Triblend Android T-Shirt", // Name or ID is required. "id", "12345", "price", "15.25", "brand", "Google", "category", "Apparel", "variant", "Gray", "quantity", 1, "coupon", ""), // Optional fields may be omitted or set to empty string. DataLayer.mapOf( "name", "Donut Friday Scented T-Shirt", "id", "67890", "price", "33.75", "brand", "Google", "category", "Apparel", "variant", "Black", "quantity", 1)))));
Geri Ödemeleri Ölçme
- E-ticaret Ölçümü:
refund
- Şu verileri kabul eder:
id
(İşlem kimliği),productFieldObjects
dizisi
Bir işlemin eksiksiz geri ödemesini ölçmek için geri ödeme yapılan işlemin işlem kimliğiyle birlikte refund
actionFieldObject
aktarın:
// Refund an entire transaction by providing the transaction ID. This example // assumes the details of the completed refund are available when the screen // is displayed. dataLayer.push("ecommerce", DataLayer.mapOf( "refund", DataLayer.mapOf( "products", DataLayer.listOf(), // refund expects a list of products. The workaround is to provide an empty list. "actionField", DataLayer.mapOf( "id", "T12345")))); // Transaction ID. Required for refunds.
Kısmi geri ödemeyi ölçmek için, geri ödeme yapılan ürün kimlikleri ve miktarlar dahil olmak üzere productFieldObjects
listesini ekleyin:
// Measure a partial refund by providing an array of productFieldObjects and // specifying the ID and quantity of each product being returned. This example // assumes the partial refund details are known at the time the screen is // displayed: dataLayer.push("ecommerce", DataLayer.mapOf( "refund", DataLayer.mapOf( "products", DataLayer.listOf( DataLayer.mapOf( "id", "P4567", "quantity", 1), // Product ID & quantity. Required for partial refunds. DataLayer.mapOf( "id", "P8901", "quantity", 2)), "actionField", DataLayer.mapOf( "id", "T12345")))); // Transaction ID.
Gösterimleri ve İşlemleri Birleştirme
Hem ürün gösterimlerinizin hem de bir işlemin olduğu durumlarda, bunu tek bir isabette birleştirip ölçmek mümkündür.
Aşağıdaki örnekte, ilgili ürünler bölümünden ürün gösterimleri ile ürün ayrıntıları görünümünün nasıl ölçüleceği gösterilmektedir:
dataLayer.push("ecommerce", DataLayer.mapOf( "impressions", DataLayer.listOf( DataLayer.mapOf( "name", "Triblend Android T-Shirt", // Name or ID is required. "id", "12345", "price", "15.25", "brand", "Google", "category", "Apparel", "variant", "Gray", "list", "Related Products", "position", 1), DataLayer.mapOf( "name", "Donut Friday Scented T-Shirt", "id", "67890", "price", "33.75", "brand", "Google", "category", "Apparel", "variant", "Black", "list", "Related Products", "position", 2)), "detail", DataLayer.mapOf( "actionField", DataLayer.mapOf( "list", "Apparel Gallery"), // 'detail' actions have an optional list property. "products", DataLayer.listOf( DataLayer.mapOf( "name", "Triblend Android T-Shirt", // Name or ID is required. "id", "12345", "price", "15.25", "brand", "Google", "category", "Apparel", "variant", "Gray")))));