Seguimiento de comercio electrónico mejorado: SDK para iOS

En este documento se proporciona una descripción general de cómo medir las acciones relacionadas con el comercio electrónico integradas en la aplicación y las impresiones con la versión 3 del SDK de Google Analytics para iOS.

Descripción general

El comercio electrónico mejorado permite medir las interacciones del usuario con productos durante toda su experiencia de compra, incluidas las siguientes interacciones: impresiones del producto, clics en el producto, consultas de información sobre el producto, adiciones de un producto a un carrito de la compra, inicio del proceso de pago, transacciones y devoluciones.

Implementación

Antes de implementar el seguimiento de comercio electrónico mejorado en tu aplicación, debes agregarle la biblioteca de comercio electrónico mejorado.

Después de configurar la aplicación para usar el comercio electrónico mejorado, puedes:

Medición de actividades de comercio electrónico

Una implementación de comercio electrónico mejorado normal medirá las impresiones de producto y cualquiera de las siguientes acciones:

  • Seleccionar un producto.
  • consultar detalles del producto,
  • impresiones y selección de promociones internas,
  • añadir o suprimir un producto de un carrito de la compra,
  • inicio del proceso de compra de un producto,
  • compras y devoluciones.

Medición de impresiones

Para medir una impresión de producto, configura los valores de producto y de impresión, y envíala con un hit.

id tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];
[product setCustomDimension:1 value:@"Member"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];

// Sets the product impression for the next available slot, starting with 1.
[builder addProductImpression:product
               impressionList:@"Search Results"
             impressionSource:@"From Search"];
[tracker set:kGAIScreenName value:@"My Impression Screen"];
[tracker send:[builder build]];

Un producto debe tener un valor de ID o de nombre. El resto de valores son opcionales y no es necesario especificarlos.

Medición de acciones

Las acciones se miden configurando los valores de producto y, después, los de acción para especificar la acción que se realizará.

Por ejemplo, en el siguiente código se mide la selección de un producto mostrado en una lista de resultados de búsqueda:

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];
[product setCustomDimension:1 value:@"Member"];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPAClick];
[action setProductActionList:@"Search Results"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];
[builder setProductAction:action];

// Sets the product for the next available slot, starting with 1
[builder addProduct:product];
[tracker set:kGAIScreenName value:@"My Impression Screen"];
[tracker send:[builder build]];

Un producto debe tener un valor de ID o de nombre. El resto de valores son opcionales y no es necesario especificarlos.

Combinación de impresiones y acciones

En los casos en que tengas tanto una impresión de producto como una acción, es posible combinarlas y medirlas en un solo hit.

En el ejemplo siguiente se indica cómo medir una visualización de los detalles de un producto con una sección de productos relacionados:

// The product from the related products section.
id tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12346"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"White"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];

// Sets the product impression for the next available slot, starting with 1.
[builder addProductImpression:product
               impressionList:@"Related Products"
             impressionSource:@"From Related"];

// The product being viewed.
product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPADetail];
[builder setProductAction:action];
// Sets the product for the next available slot, starting with 1.
[builder addProduct:product];
[tracker set:kGAIScreenName value:@"Related Products Screen"];
[tracker send:[builder build]];

Medición de transacciones

Mide una transacción configurando los valores de producto y, a continuación, configurando los valores de acción de producto para especificar una acción de compra. La información de la transacción, como los ingresos totales, los impuestos y los gastos de envío, se configura con los valores de acción de producto.

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];
[product setPrice:@29.20];
[product setCouponCode:@"APPARELSALE"];
[product setQuantity:@1];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Purchase"
                                                                        label:nil
                                                                        value:nil];
GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPAPurchase];
[action setTransactionId:@"T12345"];
[action setAffiliation:@"Google Store - Online"];
[action setRevenue:@37.39];
[action setTax:@2.85];
[action setShipping:@5.34];
[action setCouponCode:@"SUMMER2013"];
[builder setProductAction:action];

// Sets the product for the next available slot, starting with 1
[builder addProduct:product];
[tracker send:[builder build]];

Configuración de la moneda

De forma predeterminada, puedes configurar una moneda común y global para todas las transacciones y artículos a través de la interfaz web de administración de Google Analytics.

La moneda local se debe especificar según la norma ISO 4217. Consulta en el documento Referencia de los códigos de moneda la lista completa de las monedas de conversión que se admiten.

Las monedas locales se especifican configurando el valor de código de moneda en el objeto de seguimiento. Por ejemplo, este objeto de seguimiento envía los valores de moneda como euros:

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTracker"];
[tracker set:kGAIScreenName value:@"transaction"];
[tracker set:kGAICurrencyCode value:@"EUR"]; // Set tracker currency to Euros.
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];
[tracker send:[builder build]];

Medir las devoluciones

Para devolver una transacción completa, configura los valores de acción de producto para especificar el ID de transacción y un tipo de acción de devolución:

// Refund an entire transaction.
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Refund"
                                                                        label:nil
                                                                        value:nil];
GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPARefund];
[action setTransactionId:@"T12345"];
[builder setProductAction:action];
[tracker send:[builder build]];

Si no se encuentra una transacción que coincida, la devolución no se procesa.

Para medir una devolución parcial, configura los valores de acción de producto para especificar el ID de transacción, los ID de producto y la cantidad de producto que se devolverá:

// Refund a single product.
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Refund"
                                                                        label:nil
                                                                        value:nil];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"]; // Product ID is required for partial refund.
[product setQuantity:@1]; // Quanity is required for partial refund.
[builder addProduct:product];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPARefund];
[action setTransactionId:@"T12345"]; // Transaction ID is required for partial refund.
[builder setProductAction:action];
[tracker send:[builder build]];

Usar eventos sin interacción para devoluciones

Si necesitas enviar datos de devolución con un evento y el evento no forma parte del comportamiento del usuario que normalmente se mide (es decir, no lo ha iniciado el usuario), se recomienda que envíes un evento que no sea una interacción. Así se evita que algunas métricas se vean afectadas por el evento. Por ejemplo:

// Refund an entire transaction.
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Refund"
                                                                        label:nil
                                                                        value:nil];

[builder set:@"1" forKey:kGAINonInteraction];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPARefund];
[action setTransactionId:@"T12345"];

[builder setProductAction:action];
[tracker send:[builder build]];

Medición del proceso de pedido

Para medir cada paso del proceso de pedido:

  1. Agrega el código de seguimiento para medir cada paso del proceso de pedido.
  2. Si es posible, agrega código de seguimiento para medir las opciones de pago.
  3. Si lo deseas, asigna nombres descriptivos a cada paso para el informe de embudo de pago. Para ello, ajusta Configuración de comercio electrónico en la sección de administración de la interfaz web.

1. Medición de los pasos de pago

En cada paso del proceso de pago, debes implementar el código de seguimiento correspondiente para enviar datos a Google Analytics.

Campo step

En cada paso del pago que midas, debes incluir un valor de step. Este valor se usa para asignar tus acciones de pago a las etiquetas configuradas en cada paso en Configuración de comercio electrónico.

Campo option

Si tienes información adicional sobre el paso de pago indicado en el momento en que se mide, puedes configurar el campo option con una acción checkout para capturar esta información. Se podría tratar del tipo de pago predeterminado para el usuario (por ejemplo, "Visa").

Medición de un paso de pago

Para medir un paso de pago, configura los valores de producto y, a continuación, configura los valores de acción de producto para indicar una acción de pago. Si corresponde, también puedes configurar un valor paso y de opción de pago con el pago.

En el siguiente ejemplo se muestra cómo medir el primer paso de un proceso de pago, con un solo producto, y algo de información adicional sobre el tipo de pago:

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setId:@"P12345"];
[product setName:@"Android Warhol T-Shirt"];
[product setCategory:@"Apparel/T-Shirts"];
[product setBrand:@"Google"];
[product setVariant:@"Black"];
[product setPrice:@29.20];
[product setCouponCode:@"APPARELSALE"];
[product setQuantity:@1];

GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Checkout"
                                                                        label:nil
                                                                        value:nil];

// Add the step number and additional info about the checkout to the action.
GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPACheckout];
[action setCheckoutStep:@1];
[action setCheckoutOption:@"Visa"];

[builder addProduct:product];
[builder setProductAction:action];
[tracker send:[builder build]];

2. Medir las opciones de pago

Las opciones de pago permiten medir información adicional sobre el estado del pago. Esto es útil en los casos en los que has medido un paso de compra pero hay información adicional disponible sobre el mismo paso de compra después de configurar una opción seleccionada por el usuario. Por ejemplo, el usuario selecciona una forma de envío.

Para medir una opción de pago, configura los valores de acción de producto para indicar una opción de pago e incluir el número de paso y la descripción de la opción.

Lo más probable es que midas esta acción después de que el usuario haya realizado alguna acción para ir al paso siguiente del proceso de pago. Por ejemplo:

// (On "Next" button click.)
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"CheckoutOption"
                                                                        label:nil
                                                                        value:nil];

GAIEcommerceProductAction *action = [[GAIEcommerceProductAction alloc] init];
[action setAction:kGAIPACheckoutOption];
[action setCheckoutStep:@1];
[action setCheckoutOption:@"Fedex"];

[builder setProductAction:action];
[tracker send:[builder build]];
// Advance to next page.

3. Configuración del embudo de pago

Puede asignarse un nombre descriptivo a cada paso del proceso de pago, que se usará en los informes. Para configurar estos nombres, ve a la sección Administrador de la interfaz web de Google Analytics, selecciona la vista (perfil) y haz clic en Configuración de comercio electrónico. Sigue las instrucciones de configuración de comercio electrónico para etiquetar cada paso de pago del que quieras realizar un seguimiento.

"Configuración de comercio electrónico" en la sección de administración de la interfaz web de Google Analytics.Se ha habilitado la función de comercio electrónico y se han agregado cuatro etiquetas de pasos del embudo de pago: 1. Consulta del carrito, 2.Recopilación de información de pago, 3.Confirmación de los detalles de compra, 4.Recibo
Figura 1: Configuración de comercio electrónico: embudo de pago

Medición de promociones internas

El comercio electrónico mejorado incluye compatibilidad con la medición de impresiones y selecciones de promociones internas, como banners mostrados para promocionar una venta.

Impresiones de promoción

Por lo general, las impresiones de promoción interna suelen medirse con la visita a una pantalla inicial o un evento mediante la configuración de los valores de promoción. Por ejemplo:

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommercePromotion *promotion = [[GAIEcommercePromotion alloc] init];
[promotion setId:@"PROMO_1234"];
[promotion setName:@"Summer Sale"];
[promotion setCreative:@"summer_banner2"];
[promotion setPosition:@"banner_slot1"];

GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Ecommerce"
                                                                       action:@"Promotion"
                                                                        label:nil
                                                                        value:nil];

[builder addPromotion:promotion];
[tracker send:[builder build]];

Clics de la promoción

Los clics en promociones internas se pueden medir usando valores de promoción y, después, configurando valores de acción para indicar un clic de promoción. Por ejemplo:

id<GAITracker> tracker = [[GAI sharedInstance] trackerWithTrackingId:@"MyTrackingId"];
GAIEcommercePromotion *promotion = [[GAIEcommercePromotion alloc] init];
[promotion setId:@"PROMO_1234"];
[promotion setName:@"Summer Sale"];
[promotion setCreative:@"summer_banner2"];
[promotion setPosition:@"banner_slot1"];

GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"Internal Promotions"
                                                                       action:@"click"
                                                                        label:@"Summer Sale"
                                                                        value:nil];

[builder set:kGAIPromotionClick forKey:kGAIPromotionAction];
[builder addPromotion:promotion];
[tracker send:[builder build]];