iOS v3: Comercio electrónico mejorado

En esta guía, se describe cómo implementar las funciones de Comercio electrónico mejorado de Universal Analytics con el SDK de Google Tag Manager para iOS.

Descripción general

El Comercio electrónico mejorado de Google Analytics permite que los datos de impresiones, promociones y ventas de productos se envíen con cualquiera de tus vistas de pantalla o eventos de Google Analytics.

Antes de comenzar

Te recomendamos que revises la sección Acciones y tipos de datos de comercio electrónico mejorado de la Guía para desarrolladores (Web) de Comercio electrónico mejorado de Google Analytics a fin de planificar la implementación. La guía te ayudará a comprender qué campos son obligatorios y opcionales para cada una de las interacciones de comercio electrónico que deseas medir.

Implementación

En las siguientes secciones, se muestra cómo usar la capa de datos para medir las siguientes actividades de comercio electrónico mejorado:

Medición de impresiones del producto

  • Medición de comercio electrónico: impressions
  • Se aceptan datos: array de impressionFieldObjects

Mide las impresiones de productos mediante la acción impression y uno o más impressionFieldObjects. En el siguiente ejemplo, se supone que los detalles de los productos que se muestran son conocidos en el momento en que se muestra la pantalla:

// Product impressions are sent by pushing an impressions object
// containing one or more impressionFieldObjects.
[dataLayer push:@{@"ecommerce": @{
                    @"currencyCode": @"EUR",                      // Local currency is optional.
                    @"impressions": @[
                      @{@"name": @"Triblend Android T-Shirt",     // Name or ID is required.
                        @"id": @"12345",
                        @"price": @"15.25",
                        @"brand": @"Google",
                        @"category": @"Apparel",
                        @"variant": @"Gray",
                        @"list": @"Search Results",
                        @"position": @1},
                      @{@"name": @"Donut Friday Scented T-Shirt",
                        @"id": @"67890",
                        @"price": @"33.75",
                        @"brand": @"Google",
                        @"category": @"Apparel",
                        @"variant": @"Black",
                        @"list": @"Search Results",
                        @"position": @2}]}}];

Medición de clics y selecciones de productos

  • Medición de comercio electrónico: click
  • Se aceptan datos: list, array de productFieldObjects

Envía una acción click a la capa de datos, junto con una productFieldObject para representar el producto seleccionado, para medir las selecciones de productos:

[dataLayer push:@{@"event": @"productClick",
                  @"ecommerce": @{
                    @"click": @{
                      @"actionField": @{
                        @"list": @"Search Results"},              // Optional list property.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",   // Name or ID is required.
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray"}]}}}];

Medición de las vistas de los detalles del producto

  • Medición de comercio electrónico: detail
  • Se aceptan datos: list, array de productFieldObjects

Para medir una vista de los detalles del producto, envía una acción detail a la capa de datos, junto con uno o más productFieldObjects que representen los productos que se ven:

// Measure a view of product details.
[dataLayer push:@{@"ecommerce": @{
                    @"detail": @{
                      @"actionField": @{
                        @"list": @"Apparel Gallery"},             // 'detail' actions have an optional list property.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",   // Name or ID is required.
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray"}]}}}];

Medición de las incorporaciones o eliminaciones de un carrito de compras

  • Medición de comercio electrónico: add, remove
  • Se aceptan datos: list, array de productFieldObjects

Mide las adiciones o eliminaciones de un carrito de compras con un actionFieldObject de add o remove y una lista de productFieldObjects:

Cómo agregar un producto a un carrito de compras

// Measure adding a product to a shopping cart by using an "add"
// actionFieldObject and a list of productFieldObjects.
[dataLayer push:@{@"event": @"addToCart",
                  @"ecommerce": @{
                    @"currencyCode": @"EUR",
                    @"add": @{                                  // 'add' actionFieldObject measures.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray",
                          @"quantity": @1}]}}}];

Cómo quitar un producto de un carrito de compras

// Measure the removal of a product from a shopping cart.
[dataLayer push:@{@"event": @"removeFromCart",
                  @"ecommerce": @{
                    @"remove": @{                               // 'remove' actionFieldObject measures.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray",
                          @"quantity": @1}]}}}];

Medición de promociones

Puedes medir tanto las impresiones como las selecciones en las promociones internas de la app, como los banners que se muestran en la app para anunciar una oferta de un subconjunto específico de productos o una oferta de envío gratis.

Medición de impresiones de promociones

  • Medición de comercio electrónico: promoView
  • Se aceptan datos: array de promoFieldObjects

Para medir una impresión de promoción, establece la clave promoView en la capa de datos de comercio electrónico con un valor promoFieldObject que describa las promociones que se muestran a los usuarios en la pantalla:

// An example of measuring promotion views. This example assumes that
// information about the promotions displayed is available when the screen is
// displayed.
[dataLayer push:@{@"ecommerce": @{
                    @"promoView": @{
                      @"promotions": @[                     // Array of promoFieldObjects.
                        @{@"id": @"JUNE_PROMO13",           // ID or Name is required.
                          @"name": @"June Sale",
                          @"creative": @"banner1",
                          @"position": @"slot1"},
                        @{@"id": @"FREE_SHIP13",
                          @"name": @"Free Shipping Promo",
                          @"creative": @"skyscraper1",
                          @"position": @"slot2"}]}}}];

Medición de las selecciones o los clics de la promoción

Para medir una selección de promoción, envía la acción promoClick a la capa de datos con un array que contenga un promoFieldObject que describa la promoción seleccionada:

[dataLayer push:@{@"event": @"promotionClick",
                  @"ecommerce": @{
                    @"promoClick": @{
                      @"promotions": @[
                        @{@"id":  @"JUNE_PROMO13",          // Name or ID is required.
                          @"name": @"June Sale",
                          @"creative": @"banner1",
                          @"position": @"slot1"}]}}}];

Medición de una confirmación de la compra

Para medir cada paso de un proceso de confirmación de la compra, debes hacer lo siguiente:

  1. Mide cada paso del proceso de confirmación de la compra con la acción checkout.
  2. Si corresponde, mide las opciones de confirmación de la compra con la acción checkout_option.
  3. De manera opcional, establece nombres de pasos fáciles de usar para el informe de embudo de confirmación de la compra mediante la Configuración de comercio electrónico en la sección Administrador de la interfaz web.

1. Medición de los pasos de confirmación de la compra

  • Medición de comercio electrónico: checkout
  • Se aceptan datos: step, array de productFieldObjects

Para medir el proceso de confirmación de la compra, que puede incluir un botón de confirmación de la compra y una o más pantallas de confirmación de la compra en las que los usuarios ingresan la información de envío y pago, usa la acción checkout y el campo step para indicar qué etapa del proceso se mide. También puedes usar el campo option para proporcionar datos adicionales sobre el proceso de confirmación de la compra, como el tipo de pago que seleccionó el usuario.

[dataLayer push:@{@"event": @"checkout",
                  @"ecommerce": @{
                    @"checkout": @{
                      @"actionField": @{
                        @"step": @1,
                        @"option": @"Visa"},
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray",
                          @"quantity": @1}]}}}];

2. Medición de las opciones de confirmación de la compra

  • Medición de comercio electrónico: checkout_option
  • Se aceptan datos: step, option

La opción de confirmación de la compra es útil en los casos en los que ya midiste un paso de confirmación de la compra, pero deseas capturar información adicional sobre el mismo paso. Por ejemplo, el método de envío que selecciona un usuario. Para medir esto, usa la acción checkout_option junto con los campos step y option.

[dataLayer push:@{@"event": @"checkoutOption",
                  @"ecommerce": @{
                    @"checkout_option": @{
                      @"actionField": @{
                        @"step": @1,
                        @"option": @"Express"}}}}];

3. Configuración del embudo de confirmación de la compra

De manera opcional, cada paso del proceso de confirmación de la compra puede recibir un nombre descriptivo que se utilizará en los informes. Para configurar estos nombres, visita 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 la confirmación de la compra del que quieras hacer un seguimiento.

Configuración de comercio electrónico en la interfaz de administrador de Google Analytics. Un embudo de confirmación de la compra se define con cuatro pasos: 1. Revisar carrito, 2. Recopilar información
         de pago, 3. Confirmar los detalles de la compra, 4. Recibo
Figura 1: Configuración de comercio electrónico, embudo de confirmación de la compra.

Medición de compras

  • Medición de comercio electrónico: purchase
  • Se aceptan datos: id (ID de transacción), array de productFieldObjects

Envía los detalles de tu transacción a la capa de datos con la acción purchase, junto con una event que activará una etiqueta habilitada para el comercio electrónico mejorado. En este ejemplo, se conocen los detalles de la transacción en el momento en que se muestra la pantalla:

// Send transaction data with a screenview if possible.
// Otherwise, use an event when the transaction data becomes available.
[dataLayer push:@{@"ecommerce": @{
                    @"purchase": @{
                      @"actionField": @{
                        @"id": @"T12345",                         // Transaction ID. Required for purchases and refunds.
                        @"affiliation": @"Online Store",
                        @"revenue": @"35.43",                     // Total transaction value (incl. tax and shipping)
                        @"tax":"4.90",
                        @"shipping": @"5.99",
                        @"coupon": @"SUMMER_SALE"},
                      @"products": @[                             // List of productFieldObjects.
                        @{@"name": @"Triblend Android T-Shirt",   // Name or ID is required.
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray",
                          @"quantity": @1,
                          @"coupon": @""},                        // Optional fields may be omitted or set to empty string.
                        @{@"name": @"Donut Friday Scented T-Shirt",
                          @"id": @"67890",
                          @"price": @"33.75",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Black",
                          @"quantity": @1}]}}}];

Medición de reembolsos

  • Medición de comercio electrónico: refund
  • Se aceptan datos: id (ID de transacción), array de productFieldObjects

Para medir un reembolso completo de una transacción, envía un refund actionFieldObject junto con el ID de transacción de la transacción reembolsada:

// Refund an entire transaction by providing the transaction ID. This example
// assumes the details of the completed refund are available when the screen
// is displayed:
[dataLayer push:@{@"ecommerce": @{
                    @"refund": @{
                      @"actionField": @{
                        @"id": @"T12345"}}}}];  // Transaction ID. Required for refunds.

Para medir un reembolso parcial, agrega una lista de productFieldObjects, incluidos los ID de productos y las cantidades que se reembolsan:

// Measure a partial refund by providing an array of productFieldObjects and
// specifying the ID and quantity of each product being returned. This example
// assumes the partial refund details are known at the time the screen is
// displayed:
[dataLayer push:@{@"ecommerce": @{
                    @"refund": @{
                      @"actionField": @{
                        @"id": @"T12345"},      // Transaction ID.
                      @"products": @[
                        @{@"id": @"P4567",
                          @"quantity": @1},     // Product ID & quantity. Required for partial refunds.
                        @{@"id": @"P8901",
                          @"quantity": @2}]}}}];

Combinación de impresiones y acciones

En los casos en los que tengas impresiones de productos y una acción, es posible combinar y medir en un solo hit.

En el siguiente ejemplo, se muestra cómo medir una vista de detalles del producto con impresiones de productos de una sección de productos relacionados:

[dataLayer push:@{@"ecommerce": @{
                    @"impressions": @[
                      @{@"name": @"Triblend Android T-Shirt",       // Name or ID is required.
                        @"id": @"12345",
                        @"price": @"15.25",
                        @"brand": @"Google",
                        @"category": @"Apparel",
                        @"variant": @"Gray",
                        @"list": @"Related Products",
                        @"position": @1},
                      @{@"name": @"Donut Friday Scented T-Shirt",
                        @"id": @"67890",
                        @"price": @"33.75",
                        @"brand": @"Google",
                        @"category": @"Apparel",
                        @"variant": @"Black",
                        @"list": @"Related Products",
                        @"position": @2}],
                    @"detail": @{
                      @"actionField": @{
                        @"list": @"Apparel Gallery"},               // 'detail' actions have an optional list property.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",     // Name or ID is required.
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray"}]}}}];