Enhanced E-commerce Universal Analytics untuk iOS

Enhanced e-commerce adalah fitur Google Analytics yang tersedia di properti Universal Analytics yang memungkinkan pengukuran interaksi pengguna dengan produk di seluruh pengalaman belanja pengguna. Pengukuran ini dapat mencakup tayangan produk, klik produk, tampilan detail produk, menambahkan item ke keranjang belanja, memulai checkout, transaksi, dan pengembalian dana.

Generasi terbaru Google Tag Manager dan Google Analytics untuk aplikasi seluler berfungsi dengan Firebase, platform aplikasi seluler Google. Saat mengukur aplikasi dengan Firebase SDK, Anda akan memiliki akses ke host laporan aplikasi seluler yang dibuat secara otomatis, yang dapat disesuaikan dan ditambahkan lebih lanjut dengan kode dalam aplikasi. Laporan ini otomatis akan menyertakan data pembelian dalam aplikasi yang diproses oleh App Store di iTunes dan Google Play. Laporan terkait e-commerce tambahan dapat dibuat dengan menerapkan peristiwa yang disarankan untuk aplikasi e-commerce. Laporan mendalam tentang perilaku belanja (yaitu Enhanced E-commerce) saat ini hanya tersedia di properti Universal Analytics.

Dokumen ini menjelaskan cara menggunakan Tag Manager untuk aplikasi iOS bersama dengan Firebase SDK untuk mengirim data Enhanced E-commerce ke properti Universal Analytics. Sintaksis parameter dan peristiwa yang sama harus digunakan untuk menentukan tahap untuk laporan e-commerce tambahan di masa mendatang.

Langkah pertama

Sebelum memulai, siapkan prasyarat berikut untuk aplikasi Anda:

  1. Instal dan konfigurasikan Firebase dan Google Tag Manager di aplikasi Anda. Pastikan Anda menggunakan Firebase SDK untuk iOS versi 11 atau yang lebih baru.
  2. Konfigurasikan variabel buatan pengguna di penampung Tag Manager Anda yang disebut "promosi", dengan setelan berikut:
    • Jenis Peristiwa: Parameter Kustom
    • Kunci Parameter Peristiwa: promosi
    • Nilai Default: undefined (belum ditentukan)

Penerapan

Bagian berikut menunjukkan cara mencatat peristiwa ke dalam log dengan parameter yang diperlukan untuk mengukur aktivitas Enhanced E-commerce seperti:

Tayangan Produk

Ukur tayangan produk dengan mencatat peristiwa ke dalam log bersama parameter kFIRParameterItemID dan satu atau beberapa item (yaitu produk) yang ditentukan dengan kolom yang relevan.

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

Lihat konfigurasi tag untuk contoh ini:

  • Jenis Tag: Universal Analytics
  • Jenis Pelacakan: Tampilan Layar
  • Kolom untuk Ditetapkan: (Nama Kolom) screenName (nilai, misalnya) Layar Hasil Penelusuran
  • Aktifkan Fitur Enhanced E-commerce: True (Benar)
  • Baca data dari: Peristiwa Firebase
  • Pemicu, misalnya: (Kustom > Beberapa Peristiwa) Nama Peristiwa sama dengan view_search_results

Klik/pilihan produk

Ukur klik produk dengan mencatat peristiwa kFIREventSelectContent ke dalam log bersama item (yaitu produk) yang ditentukan dengan kolom yang relevan:

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

Lihat konfigurasi tag untuk contoh ini:

  • Jenis Tag: Universal Analytics
  • Jenis Pelacakan: Peristiwa
  • Kategori Peristiwa, misalnya: E-commerce
  • Tindakan Peristiwa, misalnya: Klik Produk
  • Aktifkan Fitur Enhanced E-commerce: True (Benar)
  • Baca data dari: Peristiwa Firebase
  • Pemicu, misalnya: (Kustom > Beberapa Peristiwa) Nama Peristiwa sama dengan select_content DAN {{promotions}} sama dengan undefined (belum ditentukan)

Tampilan detail produk

Ukur tampilan detail produk dengan mencatat peristiwa kFIREventViewItem ke dalam log bersama item (yaitu produk) yang ditentukan dengan kolom yang relevan:

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

Lihat konfigurasi tag untuk contoh ini:

  • Jenis Tag: Universal Analytics
  • Jenis Pelacakan: Tampilan Layar
  • Kolom untuk Ditetapkan: (Nama Kolom) screenName (nilai, misalnya) Layar Detail Produk
  • Aktifkan Fitur Enhanced E-commerce: True (Benar)
  • Baca data dari: Peristiwa Firebase
  • Pemicu, misalnya: (Kustom > Beberapa Peristiwa) Nama Peristiwa sama dengan view_item DAN
  • {{promotions}} sama dengan undefined (belum ditentukan)

Penambahan ke keranjang

Ukur produk yang ditambahkan ke keranjang belanja dengan mencatat peristiwa kFIREventAddToCart ke dalam log dengan item (yaitu produk) yang ditentukan dengan kolom yang relevan:

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

Lihat konfigurasi tag untuk contoh ini:

  • Jenis Tag: Universal Analytics
  • Jenis Pelacakan: Peristiwa
  • Kategori Peristiwa, misalnya: E-commerce
  • Tindakan Peristiwa, misalnya: Tambahkan ke Keranjang
  • Aktifkan Fitur Enhanced E-commerce: True (Benar)
  • Baca data dari: Peristiwa Firebase
  • Pemicu, misalnya: (Kustom > Beberapa Peristiwa) Nama Peristiwa sama dengan add_to_cart

Penghapusan dari keranjang

Ukur produk yang dihapus dari keranjang belanja dengan mencatat peristiwa kFIREventRemoveFromCart ke dalam log bersama item (yaitu produk) yang ditentukan dengan kolom yang relevan:

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

Lihat konfigurasi tag untuk contoh ini:

  • Jenis Tag: Universal Analytics
  • Jenis Pelacakan: Peristiwa
  • Kategori Peristiwa, misalnya: E-commerce
  • Tindakan Peristiwa, misalnya : Hapus dari Keranjang
  • Aktifkan Fitur Enhanced E-commerce: True (Benar)
  • Baca data dari: Peristiwa Firebase
  • Pemicu, misalnya: (Kustom > Beberapa Peristiwa) Nama Peristiwa sama dengan remove_from_cart

Tayangan promosi

Ukur tayangan promosi dengan mencatat peristiwa kFIREventViewItem ke dalam log bersama item promosi yang ditentukan dengan kolom yang relevan:

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

Lihat konfigurasi tag untuk contoh ini:

  • Jenis Tag: Universal Analytics
  • Jenis Pelacakan: Peristiwa
  • Kategori Peristiwa, misalnya: Promosi Internal
  • Tindakan Peristiwa, misalnya: Tayangan
  • Hit Non-Interaksi: True (Benar)
  • Aktifkan Fitur Enhanced E-commerce: True (Benar)
  • Baca data dari: Peristiwa Firebase
  • Pemicu, misalnya: (Kustom > Beberapa Peristiwa) Nama Peristiwa sama dengan view_item DAN
  • {{promotions}} tidak sama dengan undefined (belum ditentukan)

Klik/pilihan promosi

Ukur klik promosi dengan mencatat peristiwa kFIREventSelectContent ke dalam log bersama promosi yang ditentukan dengan kolom yang relevan:

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

Lihat konfigurasi tag untuk contoh ini:

  • Jenis Tag: Universal Analytics
  • Jenis Pelacakan: Peristiwa
  • Kategori Peristiwa, misalnya: Promosi Internal
  • Tindakan Peristiwa, misalnya: Klik
  • Aktifkan Fitur Enhanced E-commerce: True (Benar)
  • Baca data dari: Peristiwa Firebase
  • Pemicu, misalnya: (Kustom > Beberapa Peristiwa) Nama Peristiwa sama dengan select_content DAN {{promotion}} tidak sama dengan undefined (belum ditentukan)

Proses checkout

Memulai pembayaran

Ukur langkah pertama dalam proses checkout dengan mencatat peristiwa kFIREventBeginCheckout ke dalam log bersama satu atau beberapa item (yaitu produk) yang ditentukan dengan kolom yang relevan:

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

Lihat konfigurasi tag untuk contoh ini:

  • Jenis Tag: Universal Analytics
  • Jenis Pelacakan: Tampilan Layar
  • Kolom untuk Ditetapkan: (Nama Kolom) screenName (nilai, misalnya) Layar Keranjang
  • Aktifkan Fitur Enhanced E-commerce: True (Benar)
  • Baca data dari: Peristiwa Firebase
  • Pemicu, misalnya: (Kustom > Beberapa Peristiwa) Nama Peristiwa sama dengan start_checkout

Opsi checkout

Dengan opsi checkout, Anda dapat mengukur informasi tambahan tentang status proses checkout. Anda dapat mengukur opsi checkout sebagai bagian dari peristiwa langkah checkout (seperti yang ditunjukkan di atas) atau setelah pengguna memilih opsi setelah peristiwa untuk langkah checkout tertentu dicatat ke dalam log.

Ukur opsi checkout setelah langkah checkout dengan mencatat peristiwa kFIREventCheckoutProgress ke dalam log bersama parameter kFIRParameterCheckoutStep dan kFIRParameterCheckoutOption yang sesuai:

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

Lihat konfigurasi tag untuk contoh ini:

  • Jenis Tag: Universal Analytics
  • Jenis Pelacakan: Peristiwa
  • Kategori Peristiwa, misalnya: E-commerce
  • Tindakan Peristiwa, misalnya: Tetapkan Opsi Checkout
  • Aktifkan Fitur Enhanced E-commerce: True (Benar)
  • Baca data dari: Peristiwa Firebase
  • Pemicu, misalnya: (Kustom > Beberapa Peristiwa) Nama Peristiwa sama dengan set_checkout_option

Pembelian

Ukur pembelian dengan mencatat peristiwa kFIREventEcommercePurchase ke dalam log bersama satu atau beberapa item (yaitu produk) yang ditentukan dengan kolom yang relevan:

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

Lihat konfigurasi tag untuk contoh ini:

  • Jenis Tag: Universal Analytics
  • Jenis Pelacakan: Tampilan Layar
  • Kolom untuk Ditetapkan: (Nama Kolom) screenName (nilai, misalnya) Layar Terima Kasih
  • Aktifkan Fitur Enhanced E-commerce: True (Benar)
  • Baca data dari: Peristiwa Firebase
  • Pemicu, misalnya: (Kustom > Beberapa Peristiwa) Nama Peristiwa sama dengan ecommerce_purchase

Pengembalian dana

Ukur pengembalian dana dengan mencatat peristiwa kFIREventPurchaseRefund ke dalam log bersama ID transaksi relevan yang ditentukan, dan secara opsional (untuk pengembalian dana sebagian) satu atau beberapa item (yaitu produk) yang ditentukan dengan ID dan jumlah item:

// (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];

Lihat konfigurasi tag untuk contoh ini:

  • Jenis Tag: Universal Analytics
  • Jenis Pelacakan: Peristiwa
  • Kategori Peristiwa, misalnya: E-commerce
  • Tindakan Peristiwa, misalnya: Pengembalian Dana
  • Aktifkan Fitur Enhanced E-commerce: True (Benar)
  • Baca data dari: Peristiwa Firebase
  • Pemicu, misalnya: (Kustom > Beberapa Peristiwa) Nama Peristiwa sama dengan purchase_refund