El comercio electrónico permite medir las interacciones de los usuarios con los productos a lo largo de las experiencias de compra de sus usuarios, incluidas interacciones como vistas de listas de productos (elementos), clics en listas de productos, visualización de detalles del producto, agregar un producto a un carrito de compras, iniciar el proceso de pago, compras y reembolsos.
Para obtener detalles sobre la implementación de aplicaciones web de comercio electrónico, consulte Comercio electrónico de Google Analytics .
Antes de que empieces
Asegúrese de haber configurado su proyecto y de poder acceder a Analytics como se describe en Introducción a Analytics . La medición del comercio electrónico requiere que vincules tu proyecto de Firebase a una cuenta de Analytics y que tengas el SDK de Android v17.3.0 o iOS v6.20.0 y superior en tu aplicación.
Implementación
Una implementación típica de comercio electrónico mide cualquiera de las siguientes acciones:
- Seleccione un producto de una lista
- Ver detalles del producto
- Agregar/eliminar un producto de un carrito de compras
- Iniciar el proceso de pago
- Realizar compras o reembolsos
- Aplicar promociones
En el centro de estas acciones se encuentran los productos. Los productos se pueden instrumentar como una variedad de artículos que se pueden agregar a eventos de comercio electrónico prescritos. Puede incluir hasta 27 parámetros personalizados en la matriz de elementos, además de los parámetros prescritos.
El siguiente ejemplo demuestra cómo crear una serie de elementos a los que se hace referencia en esta guía.
// 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,
]
// 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];
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)
}
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);
// 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
};
// 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
};
// 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,
);
Seleccione un producto de una lista
Cuando a un usuario se le presenta una lista de resultados, registre un evento view_item_list
que incluya un parámetro de matriz items
que contenga los productos mostrados.
// 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)
// 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];
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),
)
}
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);
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);
// 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);
await FirebaseAnalytics.instance.logViewItemList(
itemListId: "L001",
itemListName: "Related products",
items: [jeggings, boots, socks],
);
Una vez que un usuario selecciona un producto en particular de la lista, registre un evento select_item
con el producto elegido en un parámetro de matriz items
.
// 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)
// 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];
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))
}
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);
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);
// 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);
await FirebaseAnalytics.instance.logSelectItem(
itemListId: "L001",
itemListName: "Related products",
items: [jeggings],
);
Ver detalles del producto
Para medir cuántas veces se ven los detalles del producto, registre un evento view_item
cada vez que un usuario vea la pantalla de detalles de un producto.
// 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)
// 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];
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.VIEW_ITEM) {
param(FirebaseAnalytics.Param.CURRENCY, "USD")
param(FirebaseAnalytics.Param.VALUE, 9.99)
param(FirebaseAnalytics.Param.ITEMS, arrayOf(itemJeggings))
}
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);
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);
// 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);
await FirebaseAnalytics.instance.logViewItem(
currency: 'USD',
value: 9.99,
items: [jeggings],
);
Agregar o eliminar un producto de un carrito de compras
Mida la adición de un producto a una lista de deseos o carrito registrando un evento add_to_wishlist
o add_to_cart
, respectivamente, con los productos relevantes en un parámetro de matriz items
.
// 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)
// 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];
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))
}
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);
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);
// 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);
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],
);
Cuando un usuario vea posteriormente el carrito, registre el evento view_cart
con todos items
del carrito.
// 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)
// 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];
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))
}
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);
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);
// 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);
await FirebaseAnalytics.instance.logViewCart(
currency: 'USD',
value: 19.98,
items: [jeggingsWithQuantity],
);
Para medir cuándo un usuario elimina un producto de un carrito, registre el evento remove_from_cart
.
// 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)
// 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];
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))
}
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);
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);
// 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);
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],
);
Iniciar el proceso de pago
Mida el primer paso en un proceso de pago registrando un evento begin_checkout
con uno o más items
definidos con los campos relevantes. También se puede agregar un cupón en esta etapa a todo el pedido agregándolo al evento o aplicarlo a un artículo en particular agregándolo a elementos específicos en la matriz items
.
// 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)
// 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];
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))
}
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);
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);
// 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);
await FirebaseAnalytics.instance.logBeginCheckout(
currency: 'USD',
value: 15.98, // Discount applied.
coupon: "SUMMER_FUN",
items: [jeggingsWithQuantity],
);
Cuando un usuario pasa al siguiente paso del proceso de pago y agrega información de envío, registra un evento add_shipping_info
. Utilice el parámetro shipping_tier
para especificar la opción de entrega del usuario, como "Tierra", "Aérea" o "Día siguiente".
// 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)
// 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];
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))
}
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);
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);
// 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);
await FirebaseAnalytics.instance.logAddShippingInfo(
currency: 'USD',
value: 15.98,
coupon: "SUMMER_FUN",
shippingTier: "Ground",
items: [jeggingsWithQuantity],
);
Registre add_payment_info
cuando un usuario envíe su información de pago. Si corresponde, incluya payment_type
con este evento para el método de pago elegido.
// 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)
// 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];
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))
}
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);
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);
// 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);
await FirebaseAnalytics.instance.logAddPaymentInfo(
currency: 'USD',
value: 15.98,
coupon: "SUMMER_FUN",
paymentType: "Visa",
items: [jeggingsWithQuantity],
);
Realizar una compra o emitir un reembolso
Mida una compra registrando un evento purchase
con uno o más items
definidos con los campos relevantes.
// 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)
// 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];
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))
}
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);
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);
// 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);
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],
);
Mida los reembolsos registrando un evento refund
con el transaction_id
correspondiente especificado y, opcionalmente, uno o más items
definidos con item_id
y quantity
. Le recomendamos que incluya información del artículo en su evento refund
para ver las métricas de reembolso a nivel de artículo en Analytics.
// 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)
// 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];
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))
}
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);
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);
// 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);
await FirebaseAnalytics.instance.logRefund(
transactionId: "12345",
affiliation: "Google Store",
currency: 'USD',
value: 15.98,
items: [jeggingsWithQuantity],
);
Aplicar promociones
El comercio electrónico incluye soporte para medir impresiones y clics de promociones internas, como pancartas mostradas para promocionar una venta.
Las impresiones de promoción generalmente se miden con la vista de pantalla inicial registrando el evento view_promotion
con un parámetro items
para especificar el producto promocionado. Para indicar que un usuario hizo clic en una promoción, registre un evento select_promotion
con ese producto como parámetro item
.
// 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)
// 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];
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)
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);
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);
// 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);
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",
);
Enviar parámetros personalizados con alcance de elemento
Un parámetro personalizado con alcance de artículo es un parámetro que no es uno de los parámetros que Google incluye en la lista de parámetros obligatorios u opcionales para un artículo de comercio electrónico. El parámetro personalizado le permite recopilar información sobre un artículo que es útil para su negocio específico.
Desde su aplicación, puede enviar hasta 27 parámetros personalizados con alcance de elemento en la matriz de elementos, de los cuales puede configurar 10 dimensiones personalizadas con alcance de elemento para propiedades estándar y 25 para propiedades de Analytics 360. Esto le brinda la flexibilidad de elegir entre un conjunto más grande de parámetros sin tener que volver a etiquetar su aplicación.
// 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
]
// 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];
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
}
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
// 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
};
// 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
};
// 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
);