تتيح ميزة التجارة الإلكترونية قياس تفاعلات المستخدمين مع المنتجات في مختلف تجارب التسوّق التي يخوضها المستخدمون، بما في ذلك تفاعلات مثل مشاهدة قوائم المنتجات (السلع) والنقر على قوائم المنتجات وعرض تفاصيل المنتجات وإضافة منتج إلى سلة التسوّق وبدء عملية الدفع وعمليات الشراء وعمليات ردّ الأموال.
للحصول على تفاصيل حول تنفيذ تطبيقات الويب للتجارة الإلكترونية، اطّلِع على مقالة التجارة الإلكترونية في "إحصاءات Google".
قبل البدء
تأكَّد من إعداد مشروعك ومن إمكانية الوصول إلى "إحصاءات Google" كما هو موضّح في مقالة البدء في استخدام "إحصاءات Google". يتطلّب قياس التجارة الإلكترونية ربط مشروعك على Firebase بحساب، وأن يتضمّن تطبيقك الإصدار 17.3.0 أو إصدارًا أحدث من حزمة تطوير البرامج لنظام التشغيل Android، أو الإصدار 6.20.0 أو إصدارًا أحدث من حزمة تطوير البرامج لنظام التشغيل iOS.Analytics
التنفيذ
تقيس عملية تنفيذ التجارة الإلكترونية النموذجية أيًا من الإجراءات التالية:
- اختيار منتج من قائمة
- عرض تفاصيل المنتج
- إضافة منتج إلى سلة التسوّق أو إزالته منها
- بدء عملية الدفع
- إجراء عمليات شراء أو ردّ الأموال
- تطبيق العروض الترويجية
وتستند هذه الإجراءات إلى المنتجات. يمكن إعداد المنتجات كمجموعة من السلع التي يمكن إضافتها إلى أحداث التجارة الإلكترونية المحدّدة. يمكنك تضمين ما يصل إلى 27 مَعلمة مخصّصة في مصفوفة السلع، بالإضافة إلى المَعلمات المحدّدة.
يوضّح المثال التالي كيفية إنشاء مصفوفة من العناصر التي تتم الإشارة إليها في هذا الدليل.
Swift
// A pair of jeggings var jeggings: [String: Any] = [ AnalyticsParameterItemID: "SKU_123", AnalyticsParameterItemName: "jeggings", AnalyticsParameterItemCategory: "pants", AnalyticsParameterItemVariant: "black", AnalyticsParameterItemBrand: "Google", AnalyticsParameterPrice: 9.99, ] // A pair of boots var boots: [String: Any] = [ AnalyticsParameterItemID: "SKU_456", AnalyticsParameterItemName: "boots", AnalyticsParameterItemCategory: "shoes", AnalyticsParameterItemVariant: "brown", AnalyticsParameterItemBrand: "Google", AnalyticsParameterPrice: 24.99, ] // A pair of socks var socks: [String: Any] = [ AnalyticsParameterItemID: "SKU_789", AnalyticsParameterItemName: "ankle_socks", AnalyticsParameterItemCategory: "socks", AnalyticsParameterItemVariant: "red", AnalyticsParameterItemBrand: "Google", AnalyticsParameterPrice: 5.99, ]
Objective-C
// A pair of jeggings NSMutableDictionary *jeggings = [@{ kFIRParameterItemID: @"SKU_123", kFIRParameterItemName: @"jeggings", kFIRParameterItemCategory: @"pants", kFIRParameterItemVariant: @"black", kFIRParameterItemBrand: @"Google", kFIRParameterPrice: @9.99, } mutableCopy]; // A pair of boots NSMutableDictionary *boots = [@{ kFIRParameterItemID: @"SKU_456", kFIRParameterItemName: @"boots", kFIRParameterItemCategory: @"shoes", kFIRParameterItemVariant: @"brown", kFIRParameterItemBrand: @"Google", kFIRParameterPrice: @24.99, } mutableCopy]; // A pair of socks NSMutableDictionary *socks = [@{ kFIRParameterItemID: @"SKU_789", kFIRParameterItemName: @"ankle_socks", kFIRParameterItemCategory: @"socks", kFIRParameterItemVariant: @"red", kFIRParameterItemBrand: @"Google", kFIRParameterPrice: @5.99, } mutableCopy];
Kotlin
val itemJeggings = Bundle().apply { putString(FirebaseAnalytics.Param.ITEM_ID, "SKU_123") putString(FirebaseAnalytics.Param.ITEM_NAME, "jeggings") putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "pants") putString(FirebaseAnalytics.Param.ITEM_VARIANT, "black") putString(FirebaseAnalytics.Param.ITEM_BRAND, "Google") putDouble(FirebaseAnalytics.Param.PRICE, 9.99) } val itemBoots = Bundle().apply { putString(FirebaseAnalytics.Param.ITEM_ID, "SKU_456") putString(FirebaseAnalytics.Param.ITEM_NAME, "boots") putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "shoes") putString(FirebaseAnalytics.Param.ITEM_VARIANT, "brown") putString(FirebaseAnalytics.Param.ITEM_BRAND, "Google") putDouble(FirebaseAnalytics.Param.PRICE, 24.99) } val itemSocks = Bundle().apply { putString(FirebaseAnalytics.Param.ITEM_ID, "SKU_789") putString(FirebaseAnalytics.Param.ITEM_NAME, "ankle_socks") putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "socks") putString(FirebaseAnalytics.Param.ITEM_VARIANT, "red") putString(FirebaseAnalytics.Param.ITEM_BRAND, "Google") putDouble(FirebaseAnalytics.Param.PRICE, 5.99) }
Java
Bundle itemJeggings = new Bundle(); itemJeggings.putString(FirebaseAnalytics.Param.ITEM_ID, "SKU_123"); itemJeggings.putString(FirebaseAnalytics.Param.ITEM_NAME, "jeggings"); itemJeggings.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "pants"); itemJeggings.putString(FirebaseAnalytics.Param.ITEM_VARIANT, "black"); itemJeggings.putString(FirebaseAnalytics.Param.ITEM_BRAND, "Google"); itemJeggings.putDouble(FirebaseAnalytics.Param.PRICE, 9.99); Bundle itemBoots = new Bundle(); itemBoots.putString(FirebaseAnalytics.Param.ITEM_ID, "SKU_456"); itemBoots.putString(FirebaseAnalytics.Param.ITEM_NAME, "boots"); itemBoots.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "shoes"); itemBoots.putString(FirebaseAnalytics.Param.ITEM_VARIANT, "brown"); itemBoots.putString(FirebaseAnalytics.Param.ITEM_BRAND, "Google"); itemBoots.putDouble(FirebaseAnalytics.Param.PRICE, 24.99); Bundle itemSocks = new Bundle(); itemSocks.putString(FirebaseAnalytics.Param.ITEM_ID, "SKU_789"); itemSocks.putString(FirebaseAnalytics.Param.ITEM_NAME, "ankle_socks"); itemSocks.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "socks"); itemSocks.putString(FirebaseAnalytics.Param.ITEM_VARIANT, "red"); itemSocks.putString(FirebaseAnalytics.Param.ITEM_BRAND, "Google"); itemSocks.putDouble(FirebaseAnalytics.Param.PRICE, 5.99);
Web
// A pair of jeggings const item_jeggings = { item_id: 'SKU_123', item_name: 'jeggings', item_category: 'pants', item_variant: 'black', item_brand: 'Google', price: 9.99 }; // A pair of boots const item_boots = { item_id: 'SKU_456', item_name: 'boots', item_category: 'shoes', item_variant: 'brown', item_brand: 'Google', price: 24.99 }; // A pair of socks const item_socks = { item_id: 'SKU_789', item_name: 'ankle_socks', item_category: 'socks', item_variant: 'red', item_brand: 'Google', price: 5.99 };
Web
// A pair of jeggings const item_jeggings = { item_id: 'SKU_123', item_name: 'jeggings', item_category: 'pants', item_variant: 'black', item_brand: 'Google', price: 9.99 }; // A pair of boots const item_boots = { item_id: 'SKU_456', item_name: 'boots', item_category: 'shoes', item_variant: 'brown', item_brand: 'Google', price: 24.99 }; // A pair of socks const item_socks = { item_id: 'SKU_789', item_name: 'ankle_socks', item_category: 'socks', item_variant: 'red', item_brand: 'Google', price: 5.99 };
Dart
// A pair of jeggings
final jeggings = AnalyticsEventItem(
itemId: "SKU_123",
itemName: "jeggings",
itemCategory: "pants",
itemVariant: "black",
itemBrand: "Google",
price: 9.99,
);
// A pair of boots
final boots = AnalyticsEventItem(
itemId: "SKU_456",
itemName: "boots",
itemCategory: "shoes",
itemVariant: "brown",
itemBrand: "Google",
price: 24.99,
);
// A pair of socks
final socks = AnalyticsEventItem(
itemId: "SKU_789",
itemName: "ankle_socks",
itemCategory: "socks",
itemVariant: "red",
itemBrand: "Google",
price: 5.99,
);
اختيار منتج من قائمة
عندما يتم عرض قائمة بالنتائج للمستخدم، سجِّل حدث view_item_list
يتضمّن مَعلمة مصفوفة items
تحتوي على المنتجات المعروضة.
Swift
// Add item indexes jeggings[AnalyticsParameterIndex] = 1 boots[AnalyticsParameterIndex] = 2 socks[AnalyticsParameterIndex] = 3 // Prepare ecommerce parameters var itemList: [String: Any] = [ AnalyticsParameterItemListID: "L001", AnalyticsParameterItemListName: "Related products", ] // Add items array itemList[AnalyticsParameterItems] = [jeggings, boots, socks] // Log view item list event Analytics.logEvent(AnalyticsEventViewItemList, parameters: itemList)
Objective-C
// Add item indexes jeggings[kFIRParameterIndex] = @1; boots[kFIRParameterIndex] = @2; socks[kFIRParameterIndex] = @3; // Prepare ecommerce parameters NSMutableDictionary *itemList = [@{ kFIRParameterItemListID: @"L001", kFIRParameterItemListName: @"Related products", } mutableCopy]; // Add items array itemList[kFIRParameterItems] = @[jeggings, boots, socks]; // Log view item list event [FIRAnalytics logEventWithName:kFIREventViewItemList parameters:itemList];
Kotlin
val itemJeggingsWithIndex = Bundle(itemJeggings).apply { putLong(FirebaseAnalytics.Param.INDEX, 1) } val itemBootsWithIndex = Bundle(itemBoots).apply { putLong(FirebaseAnalytics.Param.INDEX, 2) } val itemSocksWithIndex = Bundle(itemSocks).apply { putLong(FirebaseAnalytics.Param.INDEX, 3) } firebaseAnalytics.logEvent(FirebaseAnalytics.Event.VIEW_ITEM_LIST) { param(FirebaseAnalytics.Param.ITEM_LIST_ID, "L001") param(FirebaseAnalytics.Param.ITEM_LIST_NAME, "Related products") param( FirebaseAnalytics.Param.ITEMS, arrayOf(itemJeggingsWithIndex, itemBootsWithIndex, itemSocksWithIndex), ) }
Java
Bundle itemJeggingsWithIndex = new Bundle(itemJeggings); itemJeggingsWithIndex.putLong(FirebaseAnalytics.Param.INDEX, 1); Bundle itemBootsWithIndex = new Bundle(itemBoots); itemBootsWithIndex.putLong(FirebaseAnalytics.Param.INDEX, 2); Bundle itemSocksWithIndex = new Bundle(itemSocks); itemSocksWithIndex.putLong(FirebaseAnalytics.Param.INDEX, 3); Bundle viewItemListParams = new Bundle(); viewItemListParams.putString(FirebaseAnalytics.Param.ITEM_LIST_ID, "L001"); viewItemListParams.putString(FirebaseAnalytics.Param.ITEM_LIST_NAME, "Related products"); viewItemListParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS, new Parcelable[]{itemJeggingsWithIndex, itemBootsWithIndex, itemSocksWithIndex}); mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.VIEW_ITEM_LIST, viewItemListParams);
Web
import { getAnalytics, logEvent } from "firebase/analytics"; // Prepare ecommerce params const params1 = { item_list_id: 'L001', item_list_name: 'Related products', items: [item_jeggings, item_boots, item_socks] }; // Log event const analytics = getAnalytics(); logEvent(analytics, 'view_item_list', params1);
Web
// Prepare ecommerce params const params1 = { item_list_id: 'L001', item_list_name: 'Related products', items: [item_jeggings, item_boots, item_socks] }; // Log event firebase.analytics().logEvent(firebase.analytics.EventName.VIEW_ITEM_LIST, params1);
Dart
await FirebaseAnalytics.instance.logViewItemList(
itemListId: "L001",
itemListName: "Related products",
items: [jeggings, boots, socks],
);
بعد أن يختار المستخدم منتجًا معيّنًا من القائمة، سجِّل select_item
حدثًا
يتضمّن المنتج المحدّد في مَعلمة مصفوفة items
.
Swift
// Prepare ecommerce parameters var selectedItem: [String: Any] = [ AnalyticsParameterItemListID: "L001", AnalyticsParameterItemListName: "Related products", ] // Add items array selectedItem[AnalyticsParameterItems] = [jeggings] // Log select item event Analytics.logEvent(AnalyticsEventSelectItem, parameters: selectedItem)
Objective-C
// Prepare ecommerce parameters NSMutableDictionary *selectedItem = [@{ kFIRParameterItemListID: @"L001", kFIRParameterItemListName: @"Related products", } mutableCopy]; // Add items array selectedItem[kFIRParameterItems] = @[jeggings]; // Log select item event [FIRAnalytics logEventWithName:kFIREventSelectItem parameters:selectedItem];
Kotlin
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM) { param(FirebaseAnalytics.Param.ITEM_LIST_ID, "L001") param(FirebaseAnalytics.Param.ITEM_LIST_NAME, "Related products") param(FirebaseAnalytics.Param.ITEMS, arrayOf(itemJeggings)) }
Java
Bundle selectItemParams = new Bundle(); selectItemParams.putString(FirebaseAnalytics.Param.ITEM_LIST_ID, "L001"); selectItemParams.putString(FirebaseAnalytics.Param.ITEM_LIST_NAME, "Related products"); selectItemParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS, new Parcelable[]{itemJeggings}); mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM, selectItemParams);
Web
import { getAnalytics, logEvent } from "firebase/analytics"; // Prepare ecommerce event params const params2 = { item_list_id: 'L001', item_list_name: 'Related products', items: [item_jeggings] }; // Log event const analytics = getAnalytics(); logEvent(analytics, 'select_item', params2);
Web
// Prepare ecommerce event params const params2 = { item_list_id: 'L001', item_list_name: 'Related products', items: [item_jeggings] }; // Log event firebase.analytics().logEvent(firebase.analytics.EventName.SELECT_ITEM, params2);
Dart
await FirebaseAnalytics.instance.logSelectItem(
itemListId: "L001",
itemListName: "Related products",
items: [jeggings],
);
الاطّلاع على تفاصيل المنتج
لقياس عدد المرات التي يتم فيها عرض تفاصيل المنتج، سجِّل حدث view_item
كلما شاهد المستخدم شاشة تفاصيل المنتج.
Swift
// Prepare ecommerce parameters var productDetails: [String: Any] = [ AnalyticsParameterCurrency: "USD", AnalyticsParameterValue: 9.99 ] // Add items array productDetails[AnalyticsParameterItems] = [jeggings] // Log view item event Analytics.logEvent(AnalyticsEventViewItem, parameters: productDetails)
Objective-C
// Prepare ecommerce parameters NSMutableDictionary *productDetails = [@{ kFIRParameterCurrency: @"USD", kFIRParameterValue: @9.99 } mutableCopy]; // Add items array productDetails[kFIRParameterItems] = @[jeggings]; // Log view item event [FIRAnalytics logEventWithName:kFIREventViewItem parameters:productDetails];
Kotlin
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.VIEW_ITEM) { param(FirebaseAnalytics.Param.CURRENCY, "USD") param(FirebaseAnalytics.Param.VALUE, 9.99) param(FirebaseAnalytics.Param.ITEMS, arrayOf(itemJeggings)) }
Java
Bundle viewItemParams = new Bundle(); viewItemParams.putString(FirebaseAnalytics.Param.CURRENCY, "USD"); viewItemParams.putDouble(FirebaseAnalytics.Param.VALUE, 9.99); viewItemParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS, new Parcelable[]{itemJeggings}); mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.VIEW_ITEM, viewItemParams);
Web
import { getAnalytics, logEvent } from "firebase/analytics"; // Prepare ecommerce event params const params3 = { currency: 'USD', value: 9.99, items: [item_jeggings] }; // Log event const analytics = getAnalytics(); logEvent(analytics, 'view_item', params3);
Web
// Prepare ecommerce event params const params3 = { currency: 'USD', value: 9.99, items: [item_jeggings] }; // Log event firebase.analytics().logEvent(firebase.analytics.EventName.VIEW_ITEM, params3);
Dart
await FirebaseAnalytics.instance.logViewItem(
currency: 'USD',
value: 9.99,
items: [jeggings],
);
إضافة منتج إلى سلة التسوّق أو إزالته منها
يمكنك قياس إضافة منتج إلى قائمة أمنيات أو سلّة تسوّق من خلال تسجيل حدث add_to_wishlist
أو add_to_cart
على التوالي، مع المنتجات ذات الصلة في مَعلمة مصفوفة items
.
Swift
// Specify order quantity jeggings[AnalyticsParameterQuantity] = 2 // Prepare item detail params var itemDetails: [String: Any] = [ AnalyticsParameterCurrency: "USD", AnalyticsParameterValue: 19.98 ] // Add items itemDetails[AnalyticsParameterItems] = [jeggings] // Log an event when product is added to wishlist Analytics.logEvent(AnalyticsEventAddToWishlist, parameters: itemDetails) // Log an event when product is added to cart Analytics.logEvent(AnalyticsEventAddToCart, parameters: itemDetails)
Objective-C
// Specify order quantity jeggings[kFIRParameterQuantity] = @2; // Prepare item detail params NSMutableDictionary *itemDetails = [@{ kFIRParameterCurrency: @"USD", kFIRParameterValue: @19.98 } mutableCopy]; // Add items itemDetails[kFIRParameterItems] = @[jeggings]; // Log an event when product is added to wishlist [FIRAnalytics logEventWithName:kFIREventAddToWishlist parameters:itemDetails]; // Log an event when product is added to cart [FIRAnalytics logEventWithName:kFIREventAddToCart parameters:itemDetails];
Kotlin
val itemJeggingsWishlist = Bundle(itemJeggings).apply { putLong(FirebaseAnalytics.Param.QUANTITY, 2) } firebaseAnalytics.logEvent(FirebaseAnalytics.Event.ADD_TO_WISHLIST) { param(FirebaseAnalytics.Param.CURRENCY, "USD") param(FirebaseAnalytics.Param.VALUE, 2 * 9.99) param(FirebaseAnalytics.Param.ITEMS, arrayOf(itemJeggingsWishlist)) }
Java
Bundle itemJeggingsWishlist = new Bundle(itemJeggings); itemJeggingsWishlist.putLong(FirebaseAnalytics.Param.QUANTITY, 2); Bundle addToWishlistParams = new Bundle(); addToWishlistParams.putString(FirebaseAnalytics.Param.CURRENCY, "USD"); addToWishlistParams.putDouble(FirebaseAnalytics.Param.VALUE, 2 * 9.99); addToWishlistParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS, new Parcelable[]{itemJeggingsWishlist}); mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.ADD_TO_WISHLIST, addToWishlistParams);
Web
import { getAnalytics, logEvent } from "firebase/analytics"; // Specify order quantity const item_jeggings_quantity = { ...item_jeggings, quantity: 2 }; // Prepare ecommerce bundle const params4 = { currency: 'USD', value: 19.98, items: [item_jeggings_quantity] }; // Log event when a product is added to a wishlist const analytics = getAnalytics(); logEvent(analytics, 'add_to_wishlist', params4); // Log event when a product is added to the cart logEvent(analytics, 'add_to_cart', params4);
Web
// Specify order quantity const item_jeggings_quantity = { ...item_jeggings, quantity: 2 }; // Prepare ecommerce bundle const params4 = { currency: 'USD', value: 19.98, items: [item_jeggings_quantity] }; // Log event when a product is added to a wishlist firebase.analytics().logEvent(firebase.analytics.EventName.ADD_TO_WISHLIST, params4); // Log event when a product is added to the cart firebase.analytics().logEvent(firebase.analytics.EventName.ADD_TO_CART, params4);
Dart
final jeggingsWithQuantity = AnalyticsEventItem(
itemId: jeggings.itemId,
itemName: jeggings.itemName,
itemCategory: jeggings.itemCategory,
itemVariant: jeggings.itemVariant,
itemBrand: jeggings.itemBrand,
price: jeggings.price,
quantity: 2,
);
await FirebaseAnalytics.instance.logAddToWishlist(
currency: 'USD',
value: 19.98,
items: [jeggingsWithQuantity],
);
await FirebaseAnalytics.instance.logAddToCart(
currency: 'USD',
value: 19.98,
items: [jeggingsWithQuantity],
);
عندما يعرض المستخدم سلة التسوق لاحقًا، سجِّل الحدث view_cart
مع كل
items
في سلة التسوق.
Swift
// Specify order quantity jeggings[AnalyticsParameterQuantity] = 2 boots[AnalyticsParameterQuantity] = 1 // Prepare order parameters var orderParameters: [String: Any] = [ AnalyticsParameterCurrency: "USD", AnalyticsParameterValue: 44.97 ] // Add items array orderParameters[AnalyticsParameterItems] = [jeggings, boots] // Log event when cart is viewed Analytics.logEvent(AnalyticsEventViewCart, parameters: orderParameters)
Objective-C
// Specify order quantity jeggings[kFIRParameterQuantity] = @2; boots[kFIRParameterQuantity] = @1; // Prepare order parameters NSMutableDictionary *orderParameters = [@{ kFIRParameterCurrency: @"USD", kFIRParameterValue: @44.97 } mutableCopy]; // Add items array orderParameters[kFIRParameterItems] = @[jeggings, boots]; // Log event when cart is viewed [FIRAnalytics logEventWithName:kFIREventViewCart parameters:orderParameters];
Kotlin
val itemJeggingsCart = Bundle(itemJeggings).apply { putLong(FirebaseAnalytics.Param.QUANTITY, 2) } val itemBootsCart = Bundle(itemBoots).apply { putLong(FirebaseAnalytics.Param.QUANTITY, 1) } firebaseAnalytics.logEvent(FirebaseAnalytics.Event.VIEW_CART) { param(FirebaseAnalytics.Param.CURRENCY, "USD") param(FirebaseAnalytics.Param.VALUE, 2 * 9.99 + 1 * 24.99) param(FirebaseAnalytics.Param.ITEMS, arrayOf(itemJeggingsCart, itemBootsCart)) }
Java
Bundle itemJeggingsCart = new Bundle(itemJeggings); itemJeggingsCart.putLong(FirebaseAnalytics.Param.QUANTITY, 2); Bundle itemBootsCart = new Bundle(itemBoots); itemBootsCart.putLong(FirebaseAnalytics.Param.QUANTITY, 1); Bundle viewCartParams = new Bundle(); viewCartParams.putString(FirebaseAnalytics.Param.CURRENCY, "USD"); viewCartParams.putDouble(FirebaseAnalytics.Param.VALUE, (2 * 9.99) + (1 * 24.99)); viewCartParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS, new Parcelable[]{itemJeggingsCart, itemBootsCart}); mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.VIEW_CART, viewCartParams);
Web
import { getAnalytics, logEvent } from "firebase/analytics"; // Specify order quantity const item_jeggings_quantity = { ...item_jeggings, quantity: 2 }; const item_boots_quantity = { ...item_boots, quantity: 1 }; // Prepare ecommerce params const params5 = { currency: 'USD', value: 44.97, items: [item_jeggings_quantity, item_boots_quantity] }; // Log event when the cart is viewed const analytics = getAnalytics(); logEvent(analytics, 'view_cart', params5);
Web
// Specify order quantity const item_jeggings_quantity = { ...item_jeggings, quantity: 2 }; const item_boots_quantity = { ...item_boots, quantity: 1 }; // Prepare ecommerce params const params5 = { currency: 'USD', value: 44.97, items: [item_jeggings_quantity, item_boots_quantity] }; // Log event when the cart is viewed firebase.analytics().logEvent(firebase.analytics.EventName.VIEW_CART, params5);
Dart
await FirebaseAnalytics.instance.logViewCart(
currency: 'USD',
value: 19.98,
items: [jeggingsWithQuantity],
);
لقياس عدد المرات التي يزيل فيها المستخدم منتجًا من سلة التسوّق، سجِّل الحدث remove_from_cart
.
Swift
// Specify removal quantity boots[AnalyticsParameterQuantity] = 1 // Prepare params var removeParams: [String: Any] = [ AnalyticsParameterCurrency: "USD", AnalyticsParameterValue: 24.99 ] // Add items removeParams[AnalyticsParameterItems] = [boots] // Log removal event Analytics.logEvent(AnalyticsEventRemoveFromCart, parameters: removeParams)
Objective-C
// Specify removal quantity boots[kFIRParameterQuantity] = @1; // Prepare params NSMutableDictionary *removeParams = [@{ kFIRParameterCurrency: @"USD", kFIRParameterValue: @24.99 } mutableCopy]; // Add items removeParams[kFIRParameterItems] = @[boots]; // Log removal event [FIRAnalytics logEventWithName:kFIREventRemoveFromCart parameters:removeParams];
Kotlin
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.REMOVE_FROM_CART) { param(FirebaseAnalytics.Param.CURRENCY, "USD") param(FirebaseAnalytics.Param.VALUE, 1 * 24.99) param(FirebaseAnalytics.Param.ITEMS, arrayOf(itemBootsCart)) }
Java
Bundle removeCartParams = new Bundle(); removeCartParams.putString(FirebaseAnalytics.Param.CURRENCY, "USD"); removeCartParams.putDouble(FirebaseAnalytics.Param.VALUE, (1 * 24.99)); removeCartParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS, new Parcelable[]{itemBootsCart}); mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.REMOVE_FROM_CART, removeCartParams);
Web
import { getAnalytics, logEvent } from "firebase/analytics"; // Prepare ecommerce params const params6 = { currency: 'USD', value: 24.99, items: [item_jeggings] }; // Log event const analytics = getAnalytics(); logEvent(analytics, 'remove_from_cart', params6);
Web
// Prepare ecommerce params const params6 = { currency: 'USD', value: 24.99, items: [item_jeggings] }; // Log event firebase.analytics().logEvent(firebase.analytics.EventName.REMOVE_FROM_CART, params6);
Dart
final jeggingsWithQuantity = AnalyticsEventItem(
itemId: jeggings.itemId,
itemName: jeggings.itemName,
itemCategory: jeggings.itemCategory,
itemVariant: jeggings.itemVariant,
itemBrand: jeggings.itemBrand,
price: jeggings.price,
quantity: 1,
);
await FirebaseAnalytics.instance.logRemoveFromCart(
currency: 'USD',
value: 9.99,
items: [jeggingsWithQuantity],
);
بدء عملية الدفع
يمكنك قياس الخطوة الأولى في عملية الدفع من خلال تسجيل حدث begin_checkout
مع سمة واحدة أو أكثر من سمات items
المحدّدة بالحقول ذات الصلة. يمكن أيضًا إضافة قسيمة في هذه المرحلة إلى الطلب بأكمله من خلال إضافتها إلى الحدث أو تطبيقها على منتج معيّن من خلال إضافتها إلى عناصر محدّدة في مصفوفة items
.
Swift
// Prepare checkout params var checkoutParams: [String: Any] = [ AnalyticsParameterCurrency: "USD", AnalyticsParameterValue: 14.98, AnalyticsParameterCoupon: "SUMMER_FUN" ]; // Add items checkoutParams[AnalyticsParameterItems] = [jeggings] // Log checkout event Analytics.logEvent(AnalyticsEventBeginCheckout, parameters: checkoutParams)
Objective-C
// Prepare checkout params NSMutableDictionary *checkoutParams = [@{ kFIRParameterCurrency: @"USD", kFIRParameterValue: @14.98, kFIRParameterCoupon: @"SUMMER_FUN" } mutableCopy]; // Add items checkoutParams[kFIRParameterItems] = @[jeggings]; // Log checkout event [FIRAnalytics logEventWithName:kFIREventBeginCheckout parameters:checkoutParams];
Kotlin
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.BEGIN_CHECKOUT) { param(FirebaseAnalytics.Param.CURRENCY, "USD") param(FirebaseAnalytics.Param.VALUE, 14.98) param(FirebaseAnalytics.Param.COUPON, "SUMMER_FUN") param(FirebaseAnalytics.Param.ITEMS, arrayOf(itemJeggingsCart)) }
Java
Bundle beginCheckoutParams = new Bundle(); beginCheckoutParams.putString(FirebaseAnalytics.Param.CURRENCY, "USD"); beginCheckoutParams.putDouble(FirebaseAnalytics.Param.VALUE, 14.98); beginCheckoutParams.putString(FirebaseAnalytics.Param.COUPON, "SUMMER_FUN"); beginCheckoutParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS, new Parcelable[]{itemJeggingsCart}); mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.BEGIN_CHECKOUT, beginCheckoutParams);
Web
import { getAnalytics, logEvent } from "firebase/analytics"; // Prepare ecommerce params const params7 = { currency: 'USD', value: 14.98, // Total Revenue coupon: 'SUMMER_FUN', items: [item_jeggings] }; // Log event const analytics = getAnalytics(); logEvent(analytics, 'begin_checkout', params7);
Web
// Prepare ecommerce params const params7 = { currency: 'USD', value: 14.98, // Total Revenue coupon: 'SUMMER_FUN', items: [item_jeggings] }; // Log event firebase.analytics().logEvent(firebase.analytics.EventName.BEGIN_CHECKOUT, params7);
Dart
await FirebaseAnalytics.instance.logBeginCheckout(
currency: 'USD',
value: 15.98, // Discount applied.
coupon: "SUMMER_FUN",
items: [jeggingsWithQuantity],
);
عندما ينتقل المستخدم إلى الخطوة التالية في عملية الدفع ويضيف معلومات الشحن، سجِّل الحدث add_shipping_info
. استخدِم المَعلمة shipping_tier
لتحديد خيار التسليم الذي يختاره المستخدم، مثل "بري" أو "جوي" أو "في اليوم التالي".
Swift
// Prepare shipping params var shippingParams: [String: Any] = [ AnalyticsParameterCurrency: "USD", AnalyticsParameterValue: 14.98, AnalyticsParameterCoupon: "SUMMER_FUN", AnalyticsParameterShippingTier: "Ground" ] // Add items shippingParams[AnalyticsParameterItems] = [jeggings] // Log added shipping info event Analytics.logEvent(AnalyticsEventAddShippingInfo, parameters: shippingParams)
Objective-C
// Prepare shipping params NSMutableDictionary *shippingParams = [@{ kFIRParameterCurrency: @"USD", kFIRParameterValue: @14.98, kFIRParameterCoupon: @"SUMMER_FUN", kFIRParameterShippingTier: @"Ground" } mutableCopy]; // Add items shippingParams[kFIRParameterItems] = @[jeggings]; // Log added shipping info event [FIRAnalytics logEventWithName:kFIREventAddShippingInfo parameters:shippingParams];
Kotlin
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.ADD_SHIPPING_INFO) { param(FirebaseAnalytics.Param.CURRENCY, "USD") param(FirebaseAnalytics.Param.VALUE, 14.98) param(FirebaseAnalytics.Param.COUPON, "SUMMER_FUN") param(FirebaseAnalytics.Param.SHIPPING_TIER, "Ground") param(FirebaseAnalytics.Param.ITEMS, arrayOf(itemJeggingsCart)) }
Java
Bundle addShippingParams = new Bundle(); addShippingParams.putString(FirebaseAnalytics.Param.CURRENCY, "USD"); addShippingParams.putDouble(FirebaseAnalytics.Param.VALUE, 14.98); addShippingParams.putString(FirebaseAnalytics.Param.COUPON, "SUMMER_FUN"); addShippingParams.putString(FirebaseAnalytics.Param.SHIPPING_TIER, "Ground"); addShippingParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS, new Parcelable[]{itemJeggingsCart}); mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.ADD_SHIPPING_INFO, addShippingParams);
Web
import { getAnalytics, logEvent } from "firebase/analytics"; // Prepare ecommerce params const params8 = { currency: 'USD', value: 14.98, // Total Revenue coupon: 'SUMMER_FUN', shipping_tier: 'Ground', items: [item_jeggings] }; // Log event const analytics = getAnalytics(); logEvent(analytics, 'add_shipping_info', params8);
Web
// Prepare ecommerce params const params8 = { currency: 'USD', value: 14.98, // Total Revenue coupon: 'SUMMER_FUN', shipping_tier: 'Ground', items: [item_jeggings] }; // Log event firebase.analytics().logEvent(firebase.analytics.EventName.ADD_SHIPPING_INFO, params8);
Dart
await FirebaseAnalytics.instance.logAddShippingInfo(
currency: 'USD',
value: 15.98,
coupon: "SUMMER_FUN",
shippingTier: "Ground",
items: [jeggingsWithQuantity],
);
تسجيل add_payment_info
عندما يُرسِل أحد المستخدمين معلومات الدفع. إذا كان ذلك منطبقًا، أدرِج payment_type
مع هذا الحدث لطريقة الدفع المحدّدة.
Swift
// Prepare payment params var paymentParams: [String: Any] = [ AnalyticsParameterCurrency: "USD", AnalyticsParameterValue: 14.98, AnalyticsParameterCoupon: "SUMMER_FUN", AnalyticsParameterPaymentType: "Visa" ] // Add items paymentParams[AnalyticsParameterItems] = [jeggings] // Log added payment info event Analytics.logEvent(AnalyticsEventAddPaymentInfo, parameters: paymentParams)
Objective-C
// Prepare payment params NSMutableDictionary *paymentParams = [@{ kFIRParameterCurrency: @"USD", kFIRParameterValue: @14.98, kFIRParameterCoupon: @"SUMMER_FUN", kFIRParameterPaymentType: @"Visa" } mutableCopy]; // Add items paymentParams[kFIRParameterItems] = @[jeggings]; // Log added payment info event [FIRAnalytics logEventWithName:kFIREventAddPaymentInfo parameters:paymentParams];
Kotlin
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.ADD_PAYMENT_INFO) { param(FirebaseAnalytics.Param.CURRENCY, "USD") param(FirebaseAnalytics.Param.VALUE, 14.98) param(FirebaseAnalytics.Param.COUPON, "SUMMER_FUN") param(FirebaseAnalytics.Param.PAYMENT_TYPE, "Visa") param(FirebaseAnalytics.Param.ITEMS, arrayOf(itemJeggingsCart)) }
Java
Bundle addPaymentParams = new Bundle(); addPaymentParams.putString(FirebaseAnalytics.Param.CURRENCY, "USD"); addPaymentParams.putDouble(FirebaseAnalytics.Param.VALUE, 14.98); addPaymentParams.putString(FirebaseAnalytics.Param.COUPON, "SUMMER_FUN"); addPaymentParams.putString(FirebaseAnalytics.Param.PAYMENT_TYPE, "Visa"); addPaymentParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS, new Parcelable[]{itemJeggingsCart}); mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.ADD_PAYMENT_INFO, addPaymentParams);
Web
import { getAnalytics, logEvent } from "firebase/analytics"; // Prepare ecommerce params const params9 = { currency: 'USD', value: 14.98, // Total Revenue coupon: 'SUMMER_FUN', payment_type: 'Visa', items: [item_jeggings] }; // Log event const analytics = getAnalytics(); logEvent(analytics, 'add_payment_info', params9);
Web
// Prepare ecommerce params const params9 = { currency: 'USD', value: 14.98, // Total Revenue coupon: 'SUMMER_FUN', payment_type: 'Visa', items: [item_jeggings] }; // Log event firebase.analytics().logEvent(firebase.analytics.EventName.ADD_PAYMENT_INFO, params9);
Dart
await FirebaseAnalytics.instance.logAddPaymentInfo(
currency: 'USD',
value: 15.98,
coupon: "SUMMER_FUN",
paymentType: "Visa",
items: [jeggingsWithQuantity],
);
إجراء عملية شراء أو ردّ الأموال
يمكنك قياس عملية شراء من خلال تسجيل حدث purchase
يتضمّن items
واحدًا أو أكثر محدّدة بالحقول ذات الصلة.
Swift
// Prepare purchase params var purchaseParams: [String: Any] = [ AnalyticsParameterTransactionID: "T12345", AnalyticsParameterAffiliation: "Google Store", AnalyticsParameterCurrency: "USD", AnalyticsParameterValue: 14.98, AnalyticsParameterTax: 2.58, AnalyticsParameterShipping: 5.34, AnalyticsParameterCoupon: "SUMMER_FUN" ] // Add items purchaseParams[AnalyticsParameterItems] = [jeggings] // Log purchase event Analytics.logEvent(AnalyticsEventPurchase, parameters: purchaseParams)
Objective-C
// Prepare purchase params NSMutableDictionary *purchaseParams = [@{ kFIRParameterTransactionID: @"T12345", kFIRParameterAffiliation: @"Google Store", kFIRParameterCurrency: @"USD", kFIRParameterValue: @14.98, kFIRParameterTax: @2.58, kFIRParameterShipping: @5.34, kFIRParameterCoupon: @"SUMMER_FUN" } mutableCopy]; // Add items purchaseParams[kFIRParameterItems] = @[jeggings]; // Log purchase event [FIRAnalytics logEventWithName:kFIREventPurchase parameters:purchaseParams];
Kotlin
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.PURCHASE) { param(FirebaseAnalytics.Param.TRANSACTION_ID, "T12345") param(FirebaseAnalytics.Param.AFFILIATION, "Google Store") param(FirebaseAnalytics.Param.CURRENCY, "USD") param(FirebaseAnalytics.Param.VALUE, 14.98) param(FirebaseAnalytics.Param.TAX, 2.58) param(FirebaseAnalytics.Param.SHIPPING, 5.34) param(FirebaseAnalytics.Param.COUPON, "SUMMER_FUN") param(FirebaseAnalytics.Param.ITEMS, arrayOf(itemJeggingsCart)) }
Java
Bundle purchaseParams = new Bundle(); purchaseParams.putString(FirebaseAnalytics.Param.TRANSACTION_ID, "T12345"); purchaseParams.putString(FirebaseAnalytics.Param.AFFILIATION, "Google Store"); purchaseParams.putString(FirebaseAnalytics.Param.CURRENCY, "USD"); purchaseParams.putDouble(FirebaseAnalytics.Param.VALUE, 14.98); purchaseParams.putDouble(FirebaseAnalytics.Param.TAX, 2.58); purchaseParams.putDouble(FirebaseAnalytics.Param.SHIPPING, 5.34); purchaseParams.putString(FirebaseAnalytics.Param.COUPON, "SUMMER_FUN"); purchaseParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS, new Parcelable[]{itemJeggingsCart}); mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.PURCHASE, purchaseParams);
Web
import { getAnalytics, logEvent } from "firebase/analytics"; // Prepare ecommerce bundle const params10 = { transaction_id: 'T12345', affiliation: 'Google Store', currency: 'USD', value: 14.98, // Total Revenue tax: 2.85, shipping: 5.34, coupon: 'SUMMER_FUN', items: [item_jeggings] }; // Log event const analytics = getAnalytics(); logEvent(analytics, 'purchase', params10);
Web
// Prepare ecommerce bundle const params10 = { transaction_id: 'T12345', affiliation: 'Google Store', currency: 'USD', value: 14.98, // Total Revenue tax: 2.85, shipping: 5.34, coupon: 'SUMMER_FUN', items: [item_jeggings] }; // Log event firebase.analytics().logEvent(firebase.analytics.EventName.PURCHASE, params10);
Dart
await FirebaseAnalytics.instance.logPurchase(
transactionId: "12345",
affiliation: "Google Store",
currency: 'USD',
value: 15.98,
shipping: 2.00,
tax: 1.66,
coupon: "SUMMER_FUN",
items: [jeggingsWithQuantity],
);
يمكنك قياس عمليات ردّ الأموال من خلال تسجيل حدث refund
مع تحديد transaction_id
ذي الصلة، ويمكنك اختياريًا تحديد مَعلمة واحدة أو أكثر من items
باستخدام item_id
وquantity
. ننصحك بتضمين معلومات السلعة في refund
الحدث للاطّلاع على مقاييس ردّ الأموال على مستوى السلعة في "إحصاءات Google".
Swift
// Prepare refund params var refundParams: [String: Any] = [ AnalyticsParameterTransactionID: "T12345", AnalyticsParameterCurrency: "USD", AnalyticsParameterValue: 9.99, ] // (Optional) for partial refunds, define the item ID and quantity of refunded items let refundedProduct: [String: Any] = [ AnalyticsParameterItemID: "SKU_123", AnalyticsParameterQuantity: 1, ]; // Add items refundParams[AnalyticsParameterItems] = [refundedProduct] // Log refund event Analytics.logEvent(AnalyticsEventRefund, parameters: refundParams)
Objective-C
// Prepare refund params NSMutableDictionary *refundParams = [@{ kFIRParameterTransactionID: @"T12345", kFIRParameterCurrency: @"USD", kFIRParameterValue: @9.99, } mutableCopy]; // (Optional) for partial refunds, define the item ID and quantity of refunded items NSDictionary *refundedProduct = @{ kFIRParameterItemID: @"SKU_123", kFIRParameterQuantity: @1, }; // Add items refundParams[kFIRParameterItems] = @[refundedProduct]; // Log refund event [FIRAnalytics logEventWithName:kFIREventRefund parameters:refundParams];
Kotlin
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.REFUND) { param(FirebaseAnalytics.Param.TRANSACTION_ID, "T12345") param(FirebaseAnalytics.Param.AFFILIATION, "Google Store") param(FirebaseAnalytics.Param.CURRENCY, "USD") param(FirebaseAnalytics.Param.VALUE, 9.99) // (Optional) for partial refunds, define the item ID and quantity of refunded items param(FirebaseAnalytics.Param.ITEM_ID, "SKU_123") param(FirebaseAnalytics.Param.QUANTITY, 1) param(FirebaseAnalytics.Param.ITEMS, arrayOf(itemJeggings)) }
Java
Bundle refundParams = new Bundle(); refundParams.putString(FirebaseAnalytics.Param.TRANSACTION_ID, "T12345"); refundParams.putString(FirebaseAnalytics.Param.AFFILIATION, "Google Store"); refundParams.putString(FirebaseAnalytics.Param.CURRENCY, "USD"); refundParams.putDouble(FirebaseAnalytics.Param.VALUE, 9.99); // (Optional) for partial refunds, define the item ID and quantity of refunded items refundParams.putString(FirebaseAnalytics.Param.ITEM_ID, "SKU_123"); refundParams.putLong(FirebaseAnalytics.Param.QUANTITY, 1); refundParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS, new Parcelable[]{itemJeggings}); mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.REFUND, refundParams);
Web
import { getAnalytics, logEvent } from "firebase/analytics"; // Prepare ecommerce params const params11 = { transaction_id: 'T12345', // Required affiliation: 'Google Store', currency: 'USD', value: 9.99, items: [] }; // (Optional) For partial refunds, define the item_id and quantity of refunded items const refundedProduct = { item_id: 'SKU_123', // Required quantity: 1 // Required }; params11.items.push(refundedProduct); // Log event const analytics = getAnalytics(); logEvent(analytics, 'refund', params11);
Web
// Prepare ecommerce params const params11 = { transaction_id: 'T12345', // Required affiliation: 'Google Store', currency: 'USD', value: 9.99, items: [] }; // (Optional) For partial refunds, define the item_id and quantity of refunded items const refundedProduct = { item_id: 'SKU_123', // Required quantity: 1 // Required }; params11.items.push(refundedProduct); // Log event firebase.analytics().logEvent(firebase.analytics.EventName.REFUND, params11);
Dart
await FirebaseAnalytics.instance.logRefund(
transactionId: "12345",
affiliation: "Google Store",
currency: 'USD',
value: 15.98,
items: [jeggingsWithQuantity],
);
تطبيق العروض الترويجية
تتضمّن التجارة الإلكترونية إمكانية قياس مرّات الظهور والنقرات على العروض الترويجية الداخلية، مثل البانرات المعروضة للترويج لتخفيضات.
يتم عادةً قياس مرّات ظهور الإعلانات الترويجية من خلال عرض الشاشة الأوّلي عن طريق تسجيل الحدث view_promotion
مع المَعلمة items
لتحديد المنتج المُروَّج له. للإشارة إلى أنّ مستخدمًا نقر على عرض ترويجي، سجِّل حدث select_promotion
مع هذا المنتج كمَعلمة item
.
Swift
// Prepare promotion parameters var promoParams: [String: Any] = [ AnalyticsParameterPromotionID: "T12345", AnalyticsParameterPromotionName:"Summer Sale", AnalyticsParameterCreativeName: "summer2020_promo.jpg", AnalyticsParameterCreativeSlot: "featured_app_1", AnalyticsParameterLocationID: "HERO_BANNER", ] // Add items promoParams[AnalyticsParameterItems] = [jeggings] // Log event when promotion is displayed Analytics.logEvent(AnalyticsEventViewPromotion, parameters: promoParams) // Log event when promotion is selected Analytics.logEvent(AnalyticsEventSelectPromotion, parameters: promoParams)
Objective-C
// Prepare promotion parameters NSMutableDictionary *promoParams = [@{ kFIRParameterPromotionID: @"T12345", kFIRParameterPromotionName: @"Summer Sale", kFIRParameterCreativeName: @"summer2020_promo.jpg", kFIRParameterCreativeSlot: @"featured_app_1", kFIRParameterLocationID: @"HERO_BANNER", } mutableCopy]; // Add items promoParams[kFIRParameterItems] = @[jeggings]; // Log event when promotion is displayed [FIRAnalytics logEventWithName:kFIREventViewPromotion parameters:promoParams]; // Log event when promotion is selected [FIRAnalytics logEventWithName:kFIREventSelectPromotion parameters:promoParams];
Kotlin
val promoParams = Bundle().apply { putString(FirebaseAnalytics.Param.PROMOTION_ID, "SUMMER_FUN") putString(FirebaseAnalytics.Param.PROMOTION_NAME, "Summer Sale") putString(FirebaseAnalytics.Param.CREATIVE_NAME, "summer2020_promo.jpg") putString(FirebaseAnalytics.Param.CREATIVE_SLOT, "featured_app_1") putString(FirebaseAnalytics.Param.LOCATION_ID, "HERO_BANNER") putParcelableArray(FirebaseAnalytics.Param.ITEMS, arrayOf<Parcelable>(itemJeggings)) } // Promotion displayed firebaseAnalytics.logEvent(FirebaseAnalytics.Event.VIEW_PROMOTION, promoParams) // Promotion selected firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_PROMOTION, promoParams)
Java
Bundle promoParams = new Bundle(); promoParams.putString(FirebaseAnalytics.Param.PROMOTION_ID, "SUMMER_FUN"); promoParams.putString(FirebaseAnalytics.Param.PROMOTION_NAME, "Summer Sale"); promoParams.putString(FirebaseAnalytics.Param.CREATIVE_NAME, "summer2020_promo.jpg"); promoParams.putString(FirebaseAnalytics.Param.CREATIVE_SLOT, "featured_app_1"); promoParams.putString(FirebaseAnalytics.Param.LOCATION_ID, "HERO_BANNER"); promoParams.putParcelableArray(FirebaseAnalytics.Param.ITEMS, new Parcelable[]{itemJeggings}); // Promotion displayed mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.VIEW_PROMOTION, promoParams); // Promotion selected mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_PROMOTION, promoParams);
Web
import { getAnalytics, logEvent } from "firebase/analytics"; // Prepare ecommerce params const params12 = { promotion_id: 'ABC123', promotion_name: 'Summer Sale', creative_name: 'summer2020_promo.jpg', creative_slot: 'featured_app_1', location_id: 'HERO_BANNER', items: [item_jeggings] }; // Log event when a promotion is displayed const analytics = getAnalytics(); logEvent(analytics, 'view_promotion', params12); // Log event when a promotion is selected logEvent(analytics, 'select_promotion', params12);
Web
// Prepare ecommerce params const params12 = { promotion_id: 'ABC123', promotion_name: 'Summer Sale', creative_name: 'summer2020_promo.jpg', creative_slot: 'featured_app_1', location_id: 'HERO_BANNER', items: [item_jeggings] }; // Log event when a promotion is displayed firebase.analytics().logEvent(firebase.analytics.EventName.VIEW_PROMOTION, params12); // Log event when a promotion is selected firebase.analytics().logEvent(firebase.analytics.EventName.SELECT_PROMOTION, params12);
Dart
await FirebaseAnalytics.instance.logViewPromotion(
promotionId: "SUMMER_FUN",
promotionName: "Summer Sale",
creativeName: "summer2020_promo.jpg",
creativeSlot: "featured_app_1",
locationId: "HERO_BANNER",
);
await FirebaseAnalytics.instance.logSelectPromotion(
promotionId: "SUMMER_FUN",
promotionName: "Summer Sale",
creativeName: "summer2020_promo.jpg",
creativeSlot: "featured_app_1",
locationId: "HERO_BANNER",
);
إرسال مَعلمات مخصّصة على مستوى المنتج أو الخدمة
المَعلمة المخصّصة على مستوى المنتج هي مَعلمة ليست من بين المَعلمات التي تدرجها Google في قائمة المَعلمات المطلوبة أو الاختيارية لمنتج التجارة الإلكترونية. تتيح لك المَعلمة المخصّصة جمع معلومات عن منتج أو خدمة تفيد نشاطك التجاري تحديدًا.
يمكنك من تطبيقك إرسال ما يصل إلى 27 مَعلمة مخصّصة على مستوى المنتج/الخدمة في مصفوفة المنتجات/الخدمات، ويمكنك ضبط 10 سمات مخصّصة على مستوى المنتج/الخدمة للمواقع العادية و25 سمة مخصّصة لمواقع "إحصاءات 360". ويمنحك هذا مرونة الاختيار من بين مجموعة كبيرة من المَعلمات بدون الحاجة إلى إعادة وضع العلامات على تطبيقك.
Swift
// A pair of jeggings
var jeggings: [String: Any] = [
AnalyticsParameterItemID: "SKU_123",
AnalyticsParameterItemName: "jeggings",
AnalyticsParameterItemCategory: "pants",
AnalyticsParameterItemVariant: "black",
AnalyticsParameterItemBrand: "Google",
AnalyticsParameterPrice: 9.99,
AnalyticsParameterItemColor: "blue", // The item-scoped custom parameter
]
Objective-C
// A pair of jeggings
NSMutableDictionary *jeggings = [@{
kFIRParameterItemID: @"SKU_123",
kFIRParameterItemName: @"jeggings",
kFIRParameterItemCategory: @"pants",
kFIRParameterItemVariant: @"black",
kFIRParameterItemBrand: @"Google",
kFIRParameterPrice: @9.99,
kFIRParameterItemColor: @"blue", // The item-scoped custom parameter
} mutableCopy];
Kotlin
val itemJeggings = Bundle().apply {
putString(FirebaseAnalytics.Param.ITEM_ID, "SKU_123")
putString(FirebaseAnalytics.Param.ITEM_NAME, "jeggings")
putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "pants")
putString(FirebaseAnalytics.Param.ITEM_VARIANT, "black")
putString(FirebaseAnalytics.Param.ITEM_BRAND, "Google")
putDouble(FirebaseAnalytics.Param.PRICE, 9.99)
putString(FirebaseAnalytics.Param.ITEM_COLOR, "blue") // The item-scoped custom parameter
}
Java
Bundle itemJeggings = new Bundle();
itemJeggings.putString(FirebaseAnalytics.Param.ITEM_ID, "SKU_123");
itemJeggings.putString(FirebaseAnalytics.Param.ITEM_NAME, "jeggings");
itemJeggings.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, "pants");
itemJeggings.putString(FirebaseAnalytics.Param.ITEM_VARIANT, "black");
itemJeggings.putString(FirebaseAnalytics.Param.ITEM_BRAND, "Google");
itemJeggings.putDouble(FirebaseAnalytics.Param.PRICE, 9.99);
itemJeggings.putDouble(FirebaseAnalytics.Param.ITEM_COLOR, 9.99); // The item-scoped custom parameter
Web
// A pair of jeggings
const item_jeggings = {
item_id: 'SKU_123',
item_name: 'jeggings',
item_category: 'pants',
item_variant: 'black',
item_brand: 'Google',
price: 9.99,
item_color: 'blue' // The item-scoped custom parameter
};
Web
// A pair of jeggings
const item_jeggings = {
item_id: 'SKU_123',
item_name: 'jeggings',
item_category: 'pants',
item_variant: 'black',
item_brand: 'Google',
price: 9.99,
item_color: 'blue' // The item-scoped custom parameter
};
Dart
// A pair of jeggings
final jeggings = AnalyticsEventItem(
itemId: "SKU_123",
itemName: "jeggings",
itemCategory: "pants",
itemVariant: "black",
itemBrand: "Google",
price: 9.99,
itemColor: "blue", // The item-scoped custom parameter
);