El comercio electrónico mejorado es una función de Google Analytics disponible en las propiedades de Universal Analytics que permite medir las interacciones del usuario con los productos a lo largo de la experiencia de compra del usuario. Esto puede incluir impresiones de productos, clics en productos, vistas de detalles de productos, agregar artículos a un carrito de compras, iniciar pagos, transacciones y reembolsos.
Las últimas generaciones de Google Tag Manager y Google Analytics para aplicaciones móviles funcionan en conjunto con Firebase , la plataforma de aplicaciones móviles de Google. Al medir aplicaciones con el SDK de Firebase , tendrá acceso a una gran cantidad de informes de aplicaciones móviles generados automáticamente, que se pueden personalizar y complementar aún más con el código de la aplicación. Estos informes incluirán automáticamente datos sobre las compras dentro de la aplicación procesadas por App Store en iTunes y Google Play. Se pueden generar informes adicionales relacionados con el comercio electrónico implementando eventos sugeridos para aplicaciones de comercio electrónico . Los informes detallados sobre el comportamiento de compra (es decir, comercio electrónico mejorado) actualmente solo están disponibles en las propiedades de Universal Analytics.
Este documento describe cómo usar Tag Manager para aplicaciones de iOS junto con el SDK de Firebase para enviar datos de comercio electrónico mejorados a las propiedades de Universal Analytics. Se debe usar la misma sintaxis de eventos y parámetros para preparar el escenario para informes de comercio electrónico adicionales en el futuro.
Primeros pasos
Antes de comenzar, configure los siguientes requisitos previos para su aplicación:
- Instale y configure Firebase y Google Tag Manager en su aplicación. Asegúrese de estar usando la versión 11 o superior del SDK de Firebase para iOS.
- Configure una variable definida por el usuario en su contenedor de Tag Manager llamada "promociones", con la siguiente configuración:
- Tipo de evento: parámetro personalizado
- Clave de parámetro de evento: promociones
- Valor predeterminado: indefinido
Implementación
Las siguientes secciones muestran cómo registrar eventos con los parámetros necesarios para medir actividades de comercio electrónico mejoradas, como:
- impresiones de productos
- Clics/selecciones de productos
- Vistas detalladas del producto
- Adiciones al carrito
- Retiros del carrito
- Impresiones de promoción
- Clics/selecciones de promoción
- Proceso de pago
- compras
- Reembolsos
Impresiones de productos
Mida las impresiones de productos registrando un evento con un parámetro kFIRParameterItemID
y uno o más artículos (es decir, productos) definidos con los campos relevantes.
// 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];
Consulte la configuración de la etiqueta para este ejemplo:
- Tipo de etiqueta: Universal Analytics
- Tipo de pista: vista de pantalla
- Campos para configurar: (Nombre de campo) screenName (valor, p. ej.) Pantalla de resultados de búsqueda
- Habilitar funciones de comercio electrónico mejoradas: verdadero
- Leer datos de: Evento de Firebase
- Disparador, por ejemplo: (Personalizado > Algunos eventos) El nombre del evento es igual a view_search_results
Clics/selecciones de productos
Mida los clics en productos registrando un evento kFIREventSelectContent
con un artículo (es decir, producto) definido con los campos relevantes:
// 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];
Consulte la configuración de la etiqueta para este ejemplo:
- Tipo de etiqueta: Universal Analytics
- Tipo de pista: Evento
- Categoría de evento, por ejemplo: comercio electrónico
- Acción de evento, por ejemplo: clic en el producto
- Habilitar funciones de comercio electrónico mejoradas: verdadero
- Leer datos de: Evento de Firebase
- Desencadenador, por ejemplo: (Personalizado > Algunos eventos) Nombre del evento es igual a select_content Y es igual a indefinido
Vistas detalladas del producto
Mida las vistas detalladas del producto registrando un evento kFIREventViewItem
con un artículo (es decir, un producto) definido con los campos relevantes:
// 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];
Consulte la configuración de la etiqueta para este ejemplo:
- Tipo de etiqueta: Universal Analytics
- Tipo de pista: vista de pantalla
- Campos para configurar: (Nombre de campo) nombre de pantalla (valor, p. ej.) Pantalla de detalles del producto
- Habilitar funciones de comercio electrónico mejoradas: verdadero
- Leer datos de: Evento de Firebase
- Desencadenador, por ejemplo: (Personalizado > Algunos eventos) Nombre del evento es igual a view_item Y
- es igual a indefinido
Adiciones al carrito
Mida un producto que se agrega a un carrito de compras registrando un evento kFIREventAddToCart
con un artículo (es decir, producto) definido con los campos relevantes:
/// 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];
Consulte la configuración de la etiqueta para este ejemplo:
- Tipo de etiqueta: Universal Analytics
- Tipo de pista: Evento
- Categoría de evento, por ejemplo: comercio electrónico
- Acción de evento, por ejemplo: Agregar al carrito
- Habilitar funciones de comercio electrónico mejoradas: verdadero
- Leer datos de: Evento de Firebase
- Disparador, p. ej.: (Personalizado > Algunos eventos) Nombre del evento es igual a add_to_cart
Retiros del carrito
Mida la eliminación de un producto de un carrito de compras registrando un evento kFIREventRemoveFromCart
con un artículo (es decir, producto) definido con los campos relevantes:
// 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];
Consulte la configuración de la etiqueta para este ejemplo:
- Tipo de etiqueta: Universal Analytics
- Tipo de pista: Evento
- Categoría de evento, por ejemplo: comercio electrónico
- Acción de evento, por ejemplo: Eliminar del carrito
- Habilitar funciones de comercio electrónico mejoradas: verdadero
- Leer datos de: Evento de Firebase
- Disparador, por ejemplo: (Personalizado > Algunos eventos) El nombre del evento es igual a remove_from_cart
Impresiones de promoción
Mida las impresiones de promoción registrando un evento kFIREventViewItem
con un elemento de promoción definido con los campos relevantes:
/// 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];
Consulte la configuración de la etiqueta para este ejemplo:
- Tipo de etiqueta: Universal Analytics
- Tipo de pista: Evento
- Categoría de evento, por ejemplo: Promoción interna
- Acción de evento, por ejemplo: Impresión
- Acierto sin interacción: verdadero
- Habilitar funciones de comercio electrónico mejoradas: verdadero
- Leer datos de: Evento de Firebase
- Desencadenador, por ejemplo: (Personalizado > Algunos eventos) Nombre del evento es igual a view_item Y
- no es igual a indefinido
Clics/selecciones de promoción
Mida los clics de promoción registrando un evento kFIREventSelectContent
con una promoción definida con los campos relevantes:
// 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];
Consulte la configuración de la etiqueta para este ejemplo:
- Tipo de etiqueta: Universal Analytics
- Tipo de pista: Evento
- Categoría de evento, por ejemplo: Promoción interna
- Acción de evento, p. ej.: hacer clic
- Habilitar funciones de comercio electrónico mejoradas: verdadero
- Leer datos de: Evento de Firebase
- Disparador, por ejemplo: (Personalizado > Algunos eventos) El nombre del evento es igual a select_content Y no es igual a indefinido
Proceso de pago
Comenzar registro de salida
Mida el primer paso en un proceso de pago registrando un evento kFIREventBeginCheckout
con uno o más elementos (es decir, productos) definidos con los campos relevantes:
// 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];
Consulte la configuración de la etiqueta para este ejemplo:
- Tipo de etiqueta: Universal Analytics
- Tipo de pista: vista de pantalla
- Campos para establecer: (Nombre de campo) screenName (valor, por ejemplo) Pantalla de carrito
- Habilitar funciones de comercio electrónico mejoradas: verdadero
- Leer datos de: Evento de Firebase
- Disparador, por ejemplo: (Personalizado > Algunos eventos) El nombre del evento es igual a begin_checkout
Opciones de pago
Las opciones de pago le permiten medir información adicional sobre el estado del proceso de pago. Puede medir las opciones de pago como parte de un evento de paso de pago (como se muestra arriba) o cuando un usuario selecciona una opción después de que el evento para un paso de pago dado ya se haya registrado.
Mida las opciones de pago después de un paso de pago registrando un evento kFIREventCheckoutProgress
con los parámetros kFIRParameterCheckoutStep
y kFIRParameterCheckoutOption
correspondientes:
// 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];
Consulte la configuración de la etiqueta para este ejemplo:
- g Tipo: Universal Analytics
- Tipo de acuse de recibo: Evento
- Categoría ent, por ejemplo: comercio electrónico
- Acción ent, por ejemplo: Establecer opción de pago
- Funciones mejoradas de comercio electrónico: Verdadero
- datos de anuncios de: Evento de Firebase
- Disparador, por ejemplo: (Personalizado > Algunos eventos) El nombre del evento es igual a set_checkout_option
compras
Mida las compras registrando un evento kFIREventEcommercePurchase
con uno o más artículos (es decir, productos) definidos con los campos relevantes:
// 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];
Consulte la configuración de la etiqueta para este ejemplo:
- Tipo de etiqueta: Universal Analytics
- Tipo de pista: vista de pantalla
- Campos para establecer: (Nombre de campo) screenName (valor, por ejemplo) Pantalla de agradecimiento
- Habilitar funciones de comercio electrónico mejoradas: verdadero
- Leer datos de: Evento de Firebase
- Activador, p. ej.: (Personalizado > Algunos eventos) Nombre del evento es igual a ecommerce_purchase
Reembolsos
Mida los reembolsos registrando un evento kFIREventPurchaseRefund
con el ID de transacción relevante especificado y, opcionalmente (para reembolsos parciales), uno o más artículos (es decir, productos) definidos con ID de artículos y cantidades:
// (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];
Consulte la configuración de la etiqueta para este ejemplo:
- Tipo de etiqueta: Universal Analytics
- Tipo de pista: Evento
- Categoría de evento, por ejemplo: comercio electrónico
- Acción de evento, por ejemplo: Reembolso
- Habilitar funciones de comercio electrónico mejoradas: verdadero
- Leer datos de: Evento de Firebase
- Disparador, por ejemplo: (Personalizado > Algunos eventos) Nombre del evento es igual a compra_reembolso