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:
- Instal dan konfigurasikan Firebase dan Google Tag Manager di aplikasi Anda. Pastikan Anda menggunakan Firebase SDK untuk iOS versi 11 atau yang lebih baru.
- 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
- Klik/pilihan produk
- Tampilan detail produk
- Penambahan ke keranjang
- Penghapusan dari keranjang
- Tayangan promosi
- Klik/pilihan promosi
- Proses checkout
- Pembelian
- Pengembalian dana
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