Universal Analytics (UA) dejará de estar disponible el 1 de julio de 2023, lo que significa que dejará de procesar datos. Las propiedades de Analytics 360 dejarán de funcionar el 1 de octubre de 2023. Migra a Google Analytics 4.

Comercio electrónico mejorado

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

El complemento de comercio electrónico mejorado para analytics.js permite medir las interacciones de los usuarios con los productos en los sitios web de comercio electrónico de la experiencia de compra del usuario. Esto incluye impresiones de productos, clics en productos, visualización de detalles de productos, incorporación de productos a un carrito de compras, inicio del proceso de confirmación de la compra, transacciones y reembolsos.

Migración y compatibilidad con el complemento de comercio electrónico (ecommerce.js)

Si ya implementó la medición de comercio electrónico y desea comenzar a usar el comercio electrónico mejorado, existen dos opciones principales:

Cómo usar una propiedad nueva

Puede agregar una herramienta de seguimiento adicional para una propiedad recién creada y etiquetar o habilitar el Comercio electrónico mejorado para la propiedad nueva. Consulta Trabaja con varios objetos de seguimiento para obtener detalles sobre cómo enviar datos a varias propiedades desde una sola página.

Cómo migrar una propiedad existente

Para migrar del complemento de comercio electrónico al complemento de comercio electrónico mejorado, los usuarios actuales de analytics.js deben quitar y reemplazar las referencias con el código de comercio electrónico mejorado.

Si actualmente usas ga.js, primero deberás migrar a analytics.js antes de usar el complemento de comercio electrónico mejorado.

Los datos de transacciones y artículos que se recopilaron con el complemento ecommerce.js no se verán afectados por la migración y permanecerán disponibles en las propiedades y los perfiles a los que se enviaron originalmente.

Acciones y tipos de datos de comercio electrónico mejorado

Puedes enviar varios tipos de datos de comercio electrónico:

Datos de impresiones

Representa la información sobre un producto que se vio. Se conoce como impressionFieldObject y contiene los siguientes valores:

Clave Tipo de valor Obligatorio Descripción
id texto * Sí

El ID o SKU del producto (p.ej., P67890).

* Se debe establecer uno de id o name.

name texto * Sí

Es el nombre del producto (p.ej., la camiseta de Android).

* Se debe establecer uno de id o name.

list texto No La lista o colección a la que pertenece el producto (p.ej., los resultados de la búsqueda)
list_name texto No La lista o colección a la que pertenece el producto (p.ej., los resultados de la búsqueda)
brand texto No Es la marca asociada con el producto (p.ej., Google).
category texto No La categoría a la que pertenece el producto (p.ej., Indumentaria). Usa / como delimitador para especificar hasta 5 niveles de jerarquía (p.ej., Apparel/Hombres/Camisetas).
variant texto No La variante del producto (p.ej., Negro).
position integer No La posición del producto en una lista o colección (p.ej., 2).
list_position integer No La posición del producto en una lista o colección (p.ej., 2).
price número No El precio de un producto (p.ej., 29.20).

Datos del producto

Los datos de productos representan productos individuales que se vieron, agregaron al carrito de compras, etc. Se conocen como productFieldObject y contienen los siguientes valores:

Clave Tipo de valor Obligatorio Descripción
id texto *Sí

El ID o SKU del producto (p.ej., P67890).

* Se debe establecer un ID o name.

name texto * Sí

Es el nombre del producto (p.ej., la camiseta de Android).

* Se debe establecer un ID o name.

brand texto No Es la marca asociada con el producto (p.ej., Google).
category texto No La categoría a la que pertenece el producto (p.ej., Indumentaria). Usa / como delimitador para especificar hasta 5 niveles de jerarquía (p.ej., Apparel/Hombres/Camisetas).
variant texto No La variante del producto (p.ej., Negro).
price número No El precio de un producto (p.ej., 29.20).
quantity integer No La cantidad de un producto (p.ej., 2).
coupon texto No El código de cupón asociado con un producto (p. ej., SUMMER_SALE13)
position integer No La posición del producto en una lista o colección (p.ej., 2).
list_position integer No La posición del producto en una lista o colección (p.ej., 2).

Datos de promoción

Representa la información sobre una promoción que se vio. Se hace referencia a un promoFieldObject y contiene los siguientes valores:

Clave Tipo de valor Obligatorio Descripción
id texto * Sí

Es el ID de promoción (p.ej., PROMO_1234).

* Se debe establecer uno de id o name.

name texto * Sí

Es el nombre de la promoción (p.ej., oferta de verano).

* Se debe establecer uno de id o name.

creative texto No La creatividad asociada con la promoción (p.ej., verano_banner2).
creative_name texto No Es el nombre de la creatividad (p.ej., verano_banner2).
position texto No Indica la posición de la creatividad (p.ej., banner_slot_1).
creative_slot texto No Es el nombre del espacio publicitario (p.ej., banner_slot_1).

Datos de acción

Representa la información sobre una acción relacionada con el comercio electrónico que se produjo. Se denomina actionFieldObject y contiene los siguientes valores:

Clave Tipo de valor Obligatorio Descripción
id texto *Sí

Es el ID de la transacción (p.ej., T1234).

* Obligatorio si el tipo de acción es purchase o refund

affiliation texto No Indica la tienda o afiliación a la que se realizó esta transacción (p.ej., Google Store).
revenue número No

Especifica el total de ingresos o el total asociado con la transacción (p.ej., 11.99). Este valor puede incluir el envío, los costos impositivos y otros ajustes a los ingresos totales que deseas incluir como parte de tus cálculos de ingresos.

valor número No Valor (es decir, ingresos) asociado con el evento.
tax número No Es el impuesto total asociado con la transacción.
shipping número No Es el costo de envío asociado a la transacción.
coupon texto No El cupón de transacción que se canjeó con la transacción.
list texto No La lista a la que pertenecen los productos asociados. Opcional.
items array No El array que contiene los productos asociados
step integer No Número que representa un paso en el proceso de confirmación de la compra. Es opcional para las acciones de “confirmación de la compra”.
checkout_step integer No Número que representa un paso en el proceso de confirmación de la compra.
option texto No Campo adicional para las acciones checkout y checkout_option que pueden describir información de la opción en la página de confirmación de la compra, como la forma de pago seleccionada.
checkout_option texto No Opción de confirmación de la compra (es decir, forma de pago seleccionada)

Acciones del producto y de la promoción

Las acciones especifican cómo interpretar los datos de productos y promociones que envías a Google Analytics.

Acción Evento Descripción
click Un clic en un producto o vínculo de uno o más productos.
detail Una vista de los detalles del producto.
add Agregar uno o más productos a un carrito de compras.
remove Quite uno o más productos de un carrito de compras.
checkout Iniciar el proceso de confirmación de la compra de uno o más productos
checkout_option Envía el valor de la opción para un paso de confirmación de la compra determinado.
purchase La venta de uno o más productos.
refund Es el reembolso de uno o más productos.
promo_click Un clic en una promoción interna.
add_to_cart Un usuario agrega uno o más productos a un carrito de compras.
begin_checkout Un usuario inicia el proceso de confirmación de la compra de uno o más productos.
checkout_progress Un usuario completa los pasos de confirmación de la compra después del primer paso.
purchase Un usuario completa una compra.
refund Un usuario recibe un reembolso por uno o más productos.
remove_from_cart Un usuario quita uno o más productos de un carrito de compras.
select_content Un usuario hace clic en un producto o en un vínculo de productos.
set_checkout_option Es el paso de confirmación de la compra que el usuario está completando.
view_item Un usuario ve los detalles de un producto.
view_item_list Un usuario ve una lista de uno o más productos.
view_promotion Un usuario hace clic en una promoción interna.
view_refund Un usuario ve un reembolso por uno o más productos.

Implementación

En las siguientes secciones, se describe cómo implementar el complemento de comercio electrónico mejorado para medir la actividad de comercio electrónico en un sitio web con la biblioteca analytics.js.

Cargue el complemento de comercio electrónico

Para reducir el tamaño de la biblioteca analytics.js, el comercio electrónico mejorado no se proporciona en la biblioteca predeterminada. En su lugar, se proporciona como un módulo de complemento que debe cargarse antes de su uso.

Para cargar el complemento de comercio electrónico mejorado, use el siguiente comando:

ga('require', 'ec');

Este comando debe ocurrir después de crear el objeto de seguimiento y antes de usar alguna de las funcionalidades específicas de comercio electrónico mejorado.

Cómo enviar datos de comercio electrónico mejorado

Una vez cargados, se agregarán un par de comandos nuevos específicos para el comercio electrónico mejorado al seguimiento predeterminado y podrás comenzar a enviar datos de comercio electrónico.

Medición de las actividades de comercio electrónico

Una implementación típica mejorada de comercio electrónico medirá las impresiones de productos y cualquiera de las siguientes acciones:

  • Hace clic en el vínculo de un producto.
  • Ver detalles del producto.
  • Impresiones y clics de promociones internas.
  • Agregar o quitar un producto de un carrito de compras
  • Iniciar el proceso de confirmación de la compra de un producto.
  • Compras y reembolsos.

Medición de impresiones

Las impresiones de productos se miden mediante el comando ec:addImpression. Los detalles sobre el producto se agregan en un impressionFieldObject.

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

ga('ec:addImpression', {            // Provide product details in an impressionFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel/T-Shirts',   // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'list': 'Search Results',         // Product list (string).
  'position': 1,                    // Product position (number).
  'dimension1': 'Member'            // Custom dimension (string).
});

Un impressionFieldObject debe tener un valor name o id. Todos los demás valores son opcionales y no es necesario establecerlos.

Medición de acciones

Las acciones se miden mediante el comando ec:addProduct con un productFieldObject para agregar detalles del producto y el comando ec:setAction para especificar la acción que se realiza.

Por ejemplo, el siguiente código mide un clic en un vínculo de producto que se muestra en una lista de resultados de la búsqueda:

ga('ec:addProduct', {               // Provide product details in a productFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'position': 1,                    // Product position (number).
  'dimension1': 'Member'            // Custom dimension (string).
});

ga('ec:setAction', 'click', {       // click action.
  'list': 'Search Results'          // Product list (string).
});

Un productFieldObject debe tener un valor name o id. Todos los demás valores son opcionales y no es necesario establecerlos.

Cómo combinar impresiones y acciones

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

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

// The impression from a Related Products section.
ga('ec:addImpression', {            // Provide product details in an impressionFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel/T-Shirts',   // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'list': 'Related Products',       // Product list (string).
  'position': 1                     // Product position (number).
});

// The product being viewed.
ga('ec:addProduct', {                 // Provide product details in an productFieldObject.
  'id': 'P67890',                     // Product ID (string).
  'name': 'YouTube Organic T-Shirt',  // Product name (string).
  'category': 'Apparel/T-Shirts',     // Product category (string).
  'brand': 'YouTube',                 // Product brand (string).
  'variant': 'gray',                  // Product variant (string).
  'position': 2                       // Product position (number).
});

ga('ec:setAction', 'detail');       // Detail action.

Medición de transacciones

Para medir una transacción, usa el comando ec:setAction y configura el tipo de acción en purchase. Los detalles a nivel de la transacción, como los ingresos totales, los impuestos y el envío, se proporcionan en un actionFieldObject:

ga('ec:addProduct', {               // Provide product details in an productFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'black',               // Product variant (string).
  'price': '29.20',                 // Product price (number).
  'coupon': 'APPARELSALE',          // Product coupon (string).
  'quantity': 1                     // Product quantity (number).
});

ga('ec:setAction', 'purchase', {          // Transaction details are provided in an actionFieldObject.
  'id': 'T12345',                         // (Required) Transaction id (string).
  'affiliation': 'Google Store - Online', // Affiliation (string).
  'revenue': '37.39',                     // Revenue (number).
  'tax': '2.85',                          // Tax (number).
  'shipping': '5.34',                     // Shipping (number).
  'coupon': 'SUMMER2013'                  // Transaction coupon (string).
});

Una actionFieldObject debe tener un valor id si el tipo de acción es purchase o refund. Todos los demás valores son opcionales y no es necesario establecerlos.

Medición de reembolsos

Para reembolsar una transacción completa, establece una acción refund y proporciona el ID de transacción:

// Refund an entire transaction.
ga('ec:setAction', 'refund', {
  // Transaction ID is only required field for full refund.
  'id': 'T12345'
});

Si no se encuentra una transacción coincidente, no se procesará el hit de refund.

Para medir un reembolso parcial, configura una acción refund y especifica el ID de transacción, los ID del producto y las cantidades del producto que se reembolsarán:

// Refund a single product.
ga('ec:addProduct', {
  'id': 'P12345',       // Product ID is required for partial refund.
  'quantity': 1         // Quantity is required for partial refund.
});

ga('ec:setAction', 'refund', {
  'id': 'T12345',       // Transaction ID is required for partial refund.
});

Cómo usar eventos sin interacción para reembolsos

Si necesitas enviar datos de reembolso con un evento que no forma parte del comportamiento normal de la medición (es decir, el usuario no lo inició), te recomendamos que envíes un evento sin interacción. Esto evitará que las métricas como el porcentaje de rebote, el tiempo en el sitio, etc., se vean afectadas por el evento. Por ejemplo:

ga('send', 'event', 'Ecommerce', 'Refund', {'nonInteraction': 1});

Medición del proceso de confirmación de la compra

Para medir cada paso de un proceso de confirmación de la compra:

  • Agrega código para medir cada paso del proceso de confirmación de la compra.
  • Si corresponde, agregue el código para medir las opciones de confirmación de la compra.
  • De manera opcional, configura nombres de pasos fáciles de usar para el informe del embudo de confirmación de la compra. Para ello, configura la Configuración de comercio electrónico en la sección de administrador de la interfaz web.

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

Para cada paso del proceso de confirmación de la compra, deberás implementar el código correspondiente a fin de enviar datos a Google Analytics:

  • Campo step

    Para cada paso de confirmación de la compra que mides, debes incluir un valor step. Este valor se usa a fin de asignar tus acciones de confirmación de la compra a las etiquetas que configuraste para cada paso en la Configuración de comercio electrónico.

  • Campo option

    Si tienes información adicional sobre el paso de confirmación de la compra dado en el momento en que se mide, puedes configurar el campo option con una acción checkout para capturar esta información. Por ejemplo, el tipo de pago predeterminado para el usuario (p.ej., Visa).

  • Medición de un paso de confirmación de la compra

    A fin de medir un paso de confirmación de la compra, usa ec:addProduct para cada producto y ec:setAction indica una confirmación de la compra. Si corresponde, ec:setAction puede tomar un actionFieldObject adicional para describir el paso de confirmación de la compra con un step y un option.

    En el siguiente ejemplo, se muestra cómo medir el primer paso de un proceso de confirmación de la compra, con un solo producto, y algunos datos adicionales sobre el tipo de pago:

    ga('ec:addProduct', {               // Provide product details in an productFieldObject.
      'id': 'P12345',                   // Product ID (string).
      'name': 'Android Warhol T-Shirt', // Product name (string).
      'category': 'Apparel',            // Product category (string).
      'brand': 'Google',                // Product brand (string).
      'variant': 'black',               // Product variant (string).
      'price': '29.20',                 // Product price (number).
      'quantity': 1                     // Product quantity (number).
    });
    
    // Add the step number and additional info about the checkout to the action.
    ga('ec:setAction','checkout', {
        'step': 1,
        'option': 'Visa'
    });
    

2. Medición de opciones de Checkout

Las opciones de confirmación de la compra te permiten medir información adicional sobre el estado de la confirmación. Esto es útil en los casos en los que mediste un paso de confirmación de la compra durante la página vista inicial, pero la información adicional sobre el mismo paso está disponible después de que se configuró una opción seleccionada por el usuario. Por ejemplo, el usuario selecciona un método de envío.

Para medir una opción de confirmación de la compra, usa ec:setAction a fin de indicar un checkout_option, además de incluir el número de paso y la descripción de la opción.

Es probable que quieras medir esta acción una vez que el usuario haga clic para avanzar al siguiente paso del proceso de confirmación de la compra. Por ejemplo:

// (On "Next" button click)
ga('ec:setAction', 'checkout_option', {'step': 2, 'option': 'FedEx'});

ga('send', 'event', 'Checkout', 'Option', {
    hitCallback: function() {
      // advance to next page
    },
});

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

Cada paso del proceso de confirmación de la compra puede recibir un nombre descriptivo que se usará 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. Siga las instrucciones de configuración de comercio electrónico para etiquetar cada paso de confirmación de la compra que desee medir.

Configuración de comercio electrónico en la sección Administrador de la interfaz web de Google Analytics. El comercio electrónico está habilitado y se agregaron 4 etiquetas de pasos del embudo de confirmación de la compra: 1. Revisar carrito, 2. Recopilar información de pago, 3. Confirma los detalles de compra.
     4. Recibo
Figura 1: Configuración de comercio electrónico: Embudo de confirmación de la compra

Medición de promociones internas

El complemento de comercio electrónico mejorado incluye compatibilidad con la medición de impresiones y clics de promociones internas, como los banners que se muestran para promocionar una venta en otra sección de un sitio web.

Impresiones de la promoción

Por lo general, las impresiones de promociones internas se miden cuando se carga la página y se envían con la página vista inicial mediante el comando ec:addPromo. Por ejemplo:

ga('ec:addPromo', {               // Promo details provided in a promoFieldObject.
  'id': 'PROMO_1234',             // Promotion ID. Required (string).
  'name': 'Summer Sale',          // Promotion name (string).
  'creative': 'summer_banner2',   // Creative (string).
  'position': 'banner_slot1'      // Position  (string).
});

Clics de promoción

Los clics en las promociones internas se pueden medir si configuras la acción promo_click. Por ejemplo:

// Identify the promotion that was clicked.
ga('ec:addPromo', {
  'id': 'PROMO_1234',
  'name': 'Summer Sale',
  'creative': 'summer_banner2',
  'position': 'banner_slot1'
});

// Send the promo_click action with an event.
ga('ec:setAction', 'promo_click');
ga('send', 'event', 'Internal Promotions', 'click', 'Summer Sale');

Por ejemplo, para medir una página de detalles del producto con una impresión y un clic promocional, primero envía los datos de productos y de impresiones con la página vista inicial y, luego, envía los datos de clics promocionales en un evento separado:

// 1. Send product and impression data with pageview.
ga('ec:addProduct', {
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'position': 1,                    // Product position (number).
});

// The impression from the Related Products section.
ga('ec:addImpression', {
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel/T-Shirts',   // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'list': 'Related Products',       // Product list (string).
  'position': 1,                    // Product position (number).
});

ga('ec:setAction', 'detail');       // Detail action.

ga('send', 'pageview');             // Send the product data with initial pageview.


// 2. Send the promo click data when the promo click occurs.
// Call this function when promo click occurs.
function onPromoClick() {
  ga('ec:addPromo', {
    'id': 'PROMO_1234',
    'name': 'Summer Sale',
    'creative': 'summer_banner2',
    'position': 'banner_slot1'
  });

  // Send the promo_click action with an event.
  ga('ec:setAction', 'promo_click');
  ga('send', 'event', 'Internal Promotions', 'click', 'Summer Sale');
}

Un promoFieldObject debe tener un valor name o id. Todos los demás valores son opcionales y no es necesario establecerlos.

Ejemplo completo

En los siguientes fragmentos de código, se muestra cómo se puede medir el ciclo de vida de comercio electrónico de un solo producto desde la impresión inicial hasta la transacción mediante el complemento de comercio electrónico mejorado.

Medición de una impresión de productos

En este ejemplo, un usuario primero ve el producto en una lista de resultados de la búsqueda. Para medir esta impresión de producto, usa el comando ec:addImpression y proporciona los detalles del producto en un impressionFieldObject:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addImpression', {
  'id': 'P12345',                   // Product details are provided in an impressionFieldObject.
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel/T-Shirts',
  'brand': 'Google',
  'variant': 'black',
  'list': 'Search Results',
  'position': 1                     // 'position' indicates the product position in the list.
});

ga('ec:addImpression', {
  'id': 'P67890',
  'name': 'YouTube Organic T-Shirt',
  'category': 'Apparel/T-Shirts',
  'brand': 'YouTube',
  'variant': 'gray',
  'list': 'Search Results',
  'position': 2
});

ga('send', 'pageview');              // Send product impressions with initial pageview.

Medición de un clic en un producto

A continuación, un usuario expresa interés en este producto en particular haciendo clic en la ficha del producto para ver más detalles.

Para medir ese clic en el producto, usa ec:addProduct y ec:setAction:

// Called when a link to a product is clicked.
function onProductClick() {
  ga('ec:addProduct', {
    'id': 'P12345',
    'name': 'Android Warhol T-Shirt',
    'category': 'Apparel',
    'brand': 'Google',
    'variant': 'black',
    'position': 1
  });
  ga('ec:setAction', 'click', {list: 'Search Results'});

  // Send click with an event, then send user to product page.
  ga('send', 'event', 'UX', 'click', 'Results', {
    hitCallback: function() {
      document.location = '/product_details?id=P12345';
    }
  });
}

El vínculo del producto podría implementarse de la siguiente manera:

<a href="/next-page.html"
   onclick="onProductClick(); return !ga.loaded;">
  Android Warhol T-Shirt
</a>

Cómo medir una vista de detalles del producto

Después de hacer clic en la ficha de producto, un usuario ve la página de detalles del producto.

Para medir esta vista de detalles del producto, usa ec:addProduct y ec:setAction a fin de especificar una acción detail:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black'
});

ga('ec:setAction', 'detail');

ga('send', 'pageview');       // Send product details view with the initial pageview.

Medición de una adición o eliminación del carrito

El usuario expresa la intención de comprar el artículo agregándolo al carrito de compras.

Para medir la adición o eliminación de un producto del carrito de compras, usa ec:addProduct y configura el tipo add o remove:

// Called when a product is added to a shopping cart.
function addToCart(product) {
  ga('ec:addProduct', {
    'id': product.id,
    'name': product.name,
    'category': product.category,
    'brand': product.brand,
    'variant': product.variant,
    'price': product.price,
    'quantity': product.qty
  });
  ga('ec:setAction', 'add');
  ga('send', 'event', 'UX', 'click', 'add to cart');     // Send data using an event.
}

Medición del proceso de confirmación de la compra

Ahora, el usuario está listo para comenzar el proceso de confirmación de la compra, que en este ejemplo incluye dos pasos, cada uno en páginas separadas:

  • Agrega los detalles del pago (payment.html).
  • Agregue los detalles de envío (shipping.html).

Si corresponde, asegúrate de haber configurado correctamente un embudo de confirmación de la compra en el Administrador de interfaz web, en Configuración de comercio electrónico. Por ejemplo:

Configuración de comercio electrónico en la sección Administrador de la interfaz web de Google Analytics. El comercio electrónico está habilitado y se agregaron las etiquetas de pasos del embudo de confirmación de la compra: 1. Detalles del pago y 2. Detalles de envío
Figura 2: Configuración del comercio electrónico: Embudo de confirmación de la compra

Paso 1: Pago

A fin de medir el primer paso de la confirmación de la compra, usa ec:addProduct para cada producto en el carrito de compras y ec:setAction a fin de indicar un checkout. ec:setAction toma un actionFieldObject a fin de describir el paso de confirmación de la compra con un número y se incluye información adicional sobre el tipo de pago predeterminado para este usuario mediante el campo option:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

/**
 * Called when the user begins the checkout process.
 * @param {Array} cart An array representing the user's shopping cart.
 */
function checkout(cart) {
  for(var i = 0; i < cart.length; i++) {
    var product = cart[i];
    ga('ec:addProduct', {
      'id': product.id,
      'name': product.name,
      'category': product.category,
      'brand': product.brand,
      'variant':  product.variant,
      'price': product.price,
      'quantity': product.qty
    });
  }
}

// In the case of checkout actions, an additional actionFieldObject can
// specify a checkout step and option.
ga('ec:setAction','checkout', {
    'step': 1,            // A value of 1 indicates this action is first checkout step.
    'option': 'Visa'      // Used to specify additional info about a checkout stage, e.g. payment method.
});
ga('send', 'pageview');   // Pageview for payment.html

Paso 2: Envío

A fin de medir el segundo paso de la confirmación de la compra, usa ec:addProduct para cada producto en el carrito de compras y ec:setAction a fin de indicar una confirmación de la compra. En este caso, no tenemos información adicional sobre la opción de envío seleccionada cuando se envía la vista de página inicial, por lo que esto se manejará por separado mediante ec:setAction para indicar un checkout_option.

// Measure checkout step 2:
ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

/**
 * Called when the user begins the checkout process.
 * @param {Array} cart An array representing the user's shopping cart.
 */
function checkout(cart) {
  for(var i = 0; i < cart.length; i++) {
    var product = cart[i];
    ga('ec:addProduct', {
      'id': product.id,
      'name': product.name,
      'category': product.category,
      'brand': product.brand,
      'variant':  product.variant,
      'price': product.price,
      'quantity': product.qty
    });
  }
}

ga('ec:setAction','checkout', {'step': 2});
ga('send', 'pageview');     // Pageview for shipping.html


// Called when user has completed shipping options.
function onShippingComplete(stepNumber, shippingOption) {
  ga('ec:setAction', 'checkout_option', {
    'step': stepNumber,
    'option': shippingOption
  });

  ga('send', 'event', 'Checkout', 'Option', {
     hitCallback: function() {
       // Advance to next page.
     }
  });
}

El formulario podría implementarse de la siguiente manera:

<a href="/next-page.html"
   onclick="onShippingComplete(2, 'FedEx'); return !ga.loaded;">
  Continue
</a>

Cómo medir una transacción

Por último, el usuario completa el proceso de confirmación de la compra y envía su compra.

A fin de medir la venta de uno o más productos, usa ec:addProduct para agregar cada producto y, luego, ec:setAction a fin de especificar un purchase. La información a nivel de la transacción, como los ingresos totales, los impuestos, etc., se puede especificar mediante un actionFieldObject. Por ejemplo:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black',
  'price': '29.20',
  'quantity': 1
});

// Transaction level information is provided via an actionFieldObject.
ga('ec:setAction', 'purchase', {
  'id': 'T12345',
  'affiliation': 'Google Store - Online',
  'revenue': '37.39',
  'tax': '2.85',
  'shipping': '5.34',
  'coupon': 'SUMMER2013'    // User added a coupon at checkout.
});

ga('send', 'pageview');     // Send transaction data with initial pageview.

Cómo especificar monedas locales

De forma predeterminada, puedes configurar una moneda global y común para todas las transacciones y los elementos a través de la interfaz web de administración de Google Analytics. De forma predeterminada, se usa la moneda global para todos los artículos y transacciones. Para los sitios web que realizan transacciones en varias monedas, el complemento de comercio electrónico te permite especificar la moneda local de la transacción.

La moneda local debe especificarse en el estándar ISO 4217. Lee el documento Referencia de códigos de moneda para obtener una lista completa de las monedas de conversión compatibles.

Las monedas locales se especifican con la propiedad de seguimiento currencyCode. Por ejemplo, este rastreador enviará valores de moneda en euros:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('set', 'currencyCode', 'EUR'); // Set currency to Euros.

ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black',
  'price': '21.89',
  'quantity': 1
});

ga('ec:setAction', 'purchase', {
  id: 'T12345',
  affiliation: 'Google Store - Online',
  revenue: '28.03',
  tax: '2.14',
  shipping: '4.00',
  coupon: 'SUMMER2013'
});

ga('send', 'pageview');