Comercio electrónico mejorado

En esta guía se describe cómo recoger datos de Comercio electrónico mejorado con analytics.js.

Introducción

Con el complemento de Comercio electrónico mejorado de analytics.js, es posible medir las interacciones de los usuarios con productos en sitios web de comercio electrónico durante toda la experiencia de compra, por ejemplo, las impresiones de productos, los clics de productos, consultar detalles relacionados, añadir productos al carrito, iniciar el proceso de pago, comprar, y solicitar y recibir reembolsos.

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

Si ya has implementado la medición de comercio electrónico y quieres empezar a usar el Comercio electrónico mejorado, estas son las dos opciones principales para hacerlo:

Usar una nueva propiedad

Puedes añadir un objeto de seguimiento adicional a una propiedad recién creada y etiquetar o habilitar el Comercio electrónico mejorado en la nueva propiedad. Para ver en detalle cómo se pueden enviar datos a varias propiedades desde una sola página, consulta el artículo Trabajar con varios objetos de seguimiento.

Migrar una propiedad

Para migrar desde el complemento de comercio electrónico al complemento de Comercio electrónico mejorado, los usuarios de analytics.js deben quitar y sustituir cualquier referencia con código de Comercio electrónico mejorado.

Si usas ga.js, tendrás que migrar a analytics.js antes de usar el complemento de Comercio electrónico mejorado.

Los datos de transacción y de artículo que se hayan recogido con el complemento ecommerce.js no se verán afectados por la migración y seguirán disponibles en las propiedades y en los perfiles a los que se enviaron originalmente.

Tipos de datos de Comercio electrónico mejorado y acciones

Hay varios tipos de datos de comercio electrónico que puedes enviar usando analytics.js: datos de impresión, producto, promoción y acción.

Datos de impresión

Representan la información sobre el producto que se ha visto. Se hace referencia a ellos mediante impressionFieldObject y contienen los siguientes valores:

Clave Tipo de valor Obligatorio Descripción
id text Sí* ID de producto o SKU (por ejemplo, P67890). * Se debe definir con un valor field o name.
name text Sí* Nombre del producto (por ejemplo, camiseta de Android). * Se debe definir con un valor field o id.
list text No Lista o colección a la que pertenece el producto (por ejemplo, Resultados de búsqueda).
brand text No Marca asociada al producto (por ejemplo, Google)
category text No Categoría a la que pertenece el producto (por ejemplo, Ropa). Utiliza / como delimitador para especificar hasta cinco niveles de jerarquía (por ejemplo, Ropa/Hombre/Camisetas).
variant text No Variante del producto (por ejemplo, Negro)
position integer No Posición del producto en una lista o colección (por ejemplo, 2)
price number No Precio de un producto (por ejemplo, 29,20)

Datos del producto

Los datos del producto representan los productos que se han visto o que se han añadido al carrito. Se hace referencia a ellos mediante productFieldObject y contienen los siguientes valores:

Clave Tipo de valor Obligatorio Descripción
id text Sí* ID de producto o SKU (por ejemplo, P67890). * Se debe definir con un valor field o name.
name text Sí* Nombre del producto (por ejemplo, camiseta de Android). * Se debe definir con un valor field o id.
brand text No Marca asociada al producto (por ejemplo, Google)
category text No Categoría a la que pertenece el producto (por ejemplo, Ropa). Utiliza / como delimitador para especificar hasta cinco niveles de jerarquía (por ejemplo, Ropa/Hombre/Camisetas).
variant text No Variante del producto (por ejemplo, Negro)
price number No Precio de un producto (por ejemplo, 29,20)
quantity integer No Cantidad de un producto (por ejemplo, 2)
coupon text No Código de cupón asociado a un producto (por ejemplo, COMPRA_VERANO13)
position integer No Posición del producto en una lista o colección (por ejemplo, 2)

Datos de promoción

Representan la información sobre una promoción que se ha visto. Se hace referencia a ellos mediante el objeto promoFieldObject y contienen los siguientes valores:

Clave Tipo de valor Obligatorio Descripción
id text Sí* ID de promoción (por ejemplo, PROMO_1234) * Se debe definir con un valor field o name.
name text Sí* Nombre de la promoción (por ejemplo, Rebajas de verano) * Se debe definir con un valor field o id.
creative text No Creatividad asociada a la promoción (por ejemplo, banner_verano2)
position text No Posición de la creatividad (por ejemplo, banner_slot_1).

Datos de acción

Representan la información sobre una acción que se lleva a cabo relacionada con el comercio electrónico. Se hace referencia a ellos mediante actionFieldObject y contienen los siguientes valores:

Clave Tipo de valor Obligatorio Descripción
id text Sí* ID de la transacción (por ejemplo, T1234) * Es obligatorio si el tipo de acción es purchase o refund.
affiliation text No Tienda o afiliación donde se ha originado la transacción (por ejemplo, Google Store)
revenue number No Especifica la suma total o los ingresos totales asociados a la transacción (por ejemplo, 11,99). Este valor puede incluir los gastos de envío, los impuestos u otros ajustes de los ingresos totales que quieras incluir para calcular tus ingresos. Nota: Si no se definen los ingresos, este valor se calcula automáticamente a partir de los campos de cantidad de producto y de precio de todos los productos del mismo hit.
tax number No Impuestos totales asociados a la transacción
shipping number No Gastos de envío asociados a la transacción
coupon text No Cupón canjeado con la transacción.
list text No Lista a la que pertenecen los productos asociados. Opcional.
step integer No Número que representa un paso en el proceso de pago. Opcional en acciones del tipo checkout.
option text No Campo adicional para acciones de checkout y checkout_option que pueden describir la información de opción en la página de tramitación de la compra, como el método de pago seleccionado.

Acciones de producto y de promoción

Las acciones especifican cómo interpretar los datos de producto y de promoción que envías a Google Analytics.

Acción Descripción
click Clic en un producto o en un enlace de producto de uno o varios productos
detail Visualización de los detalles de un producto
add Acción que añade uno o varios productos al carrito de la compra
remove Uno o varios productos suprimidos de un carrito de compra
checkout Acción que inicia el proceso de compra de uno o varios productos
checkout_option Envío del valor de opción de un paso de compra determinado
purchase Venta de uno o varios productos
refund Devolución de uno o varios productos
promo_click Clic en una promoción interna

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.

Cargar el complemento de comercio electrónico

Para reducir el tamaño de la biblioteca analytics.js, el Comercio electrónico mejorado no se ofrece en la biblioteca predeterminada. Se ofrece como un módulo de complemento que se debe cargar antes de usarse.

Para cargar el complemento de Comercio electrónico mejorado, usa este comando:

    ga('require', 'ec');
    

El comando se debe indicar después de crear el objeto de seguimiento y antes de usar la funcionalidad específica de Comercio electrónico mejorado.

Enviar datos de Comercio electrónico mejorado

Una vez cargado, se añadirán comandos nuevos específicos del Comercio electrónico mejorado al objeto de seguimiento predeterminado y podrás empezar a enviar datos de comercio electrónico.

Medir las actividades de comercio electrónico

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

  • Clics en un enlace de producto.
  • Visualización de los detalles del producto.
  • Impresiones y clics de promociones internas.
  • Productos agregados o suprimidos de un carrito de compra.
  • Inicio del proceso de compra de un producto.
  • compras y devoluciones.

Medir las impresiones

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

Por ejemplo, el siguiente código mide la impresión de un producto en una lista con resultados de 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).
    });
    

Los objetos impressionFieldObject deben tener un valor name o id. El resto de valores son opcionales y no es necesario especificarlos.

Medir las acciones

Para medir acciones, se utiliza el comando ec:addProduct con productFieldObject para añadir detalles del producto y el comando ec:setAction para especificar la acción que se lleva a cabo.

Por ejemplo, el siguiente código mide un clic en un enlace de producto mostrado en una lista de resultados de 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).
    });
    

Los objetos productFieldObject deben tener un valor name o id. El resto de valores son opcionales y no es necesario especificarlos.

Combinar 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 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.
    

Medir las transacciones

Para medir una transacción, usa el comando ec:setAction y asigna el valor purchase al tipo de acción. Los detalles de las transacciones, como los ingresos totales, los impuestos y los gastos de envío se facilitan en 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).
    });
    

Los objetos actionFieldObject deben tener un valor id si el tipo de acción es purchase o refund. El resto de valores son opcionales y no es necesario especificarlos.

Medir los reembolsos

Para reembolsar una transacción al completo, elige una acción refundy facilita el ID de transacción:

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

Si no se encuentra la transacción correspondiente, no se procesará el hit de tipo refund.

Para medir un reembolso parcial, elige una acción refund y especifica el ID de transacción, los ID de producto y la cantidad de producto que se reembolsará:

    // 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.
    });
    

Usar eventos sin interacción con reembolsos

Si debes enviar datos de reembolso usando un evento y este no forma parte del comportamiento que se mide en el sitio web de forma habitual (no lo inicia el usuario), te recomendamos que envíes un evento sin interacción. Esto evita que el evento influya en métricas como la de porcentaje de rebote o de tiempo en el sitio web. Por ejemplo:

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

Medir el proceso de tramitación de la compra

Para medir cada paso del proceso de tramitación de compra, haz lo siguiente:

  1. Añade código para medir cada paso del proceso de compra.
  2. Si es posible, añade código para medir las opciones de pago.
  3. Si quieres, asigna nombres descriptivos a cada paso para el informe de embudo de tramitación de la compra. Para ello, ajusta Configuración de comercio electrónico en la sección de administración de la interfaz web.

1. Medir los pasos de tramitación de la compra

Por cada paso del proceso de tramitación de la compra, tendrás que implementar el código correspondiente para enviar datos a Google Analytics.

Campo Step

Por cada paso de compra que midas, deberás incluir un valor step. Este valor se usa para asignar tus acciones de compra a las etiquetas configuradas en cada paso en Configuración de comercio electrónico.

Campo Option

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

Medir un paso de tramitación de compra

Para medir un paso de compra, utiliza ec:addProduct en cada producto y ec:setAction para indicar el pago. Si es necesario, ec:setAction puede utilizar un objeto actionFieldObject para describir el paso con step y option.

En el ejemplo siguiente se muestra cómo medir el primer paso de un proceso de compra, con un solo producto, y algo de información adicional 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. 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 ya has medido un paso de tramitación de la compra en la página vista inicial, pero hay información adicional disponible sobre el mismo paso después de que un usuario haya definido la opción seleccionada. Por ejemplo, el usuario selecciona una forma de envío.

Para medir una opción de pago, utiliza ec:setAction para indicar el objeto checkout_option e incluye el número del paso y la descripción de la opción.

Es probable que midas esta acción una vez que el usuario haya hecho clic para pasar al siguiente paso del proceso de tramitació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. Configurar el embudo de tramitación de la compra

Puede asignarse un nombre descriptivo a cada paso del proceso de tramitación de la compra, que se usará en los informes. Para configurar estos nombres, ve a la sección Administrar 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 compra que quieras medir.

Configuración de comercio electrónico en la sección de administración de la interfaz web de Google Analytics. Función de comercio electrónico habilitada con cuatro etiquetas de pasos del embudo de tramitación de la compra: 1. Consulta del carrito, 2. Recogida de datos de pago, 3. Confirmación de los detalles de compra, 4. Recibo
Figura 1: Configuración del comercio electrónico - Embudo de tramitación de la compra

Medir las promociones internas

El complemento de Comercio electrónico mejorado es compatible con la medición de impresiones y clics de promociones internas, como banners para promocionar una venta en otra sección del sitio web.

Impresiones de promoción

Las impresiones de promoción interna suelen medirse cuando se carga la página y se envían con la página vista inicial usando 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 promociones

Los clics en promociones internas se pueden medir con 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 de producto con una impresión y un clic de promoción, envía los datos de producto y de impresión con el número de páginas vistas inicial y, a continuación, los datos de clic de promoción en un evento distinto:

    // 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');
    }
    

Los objetos promoFieldObject deben tener un valor name o id. El resto de valores son opcionales y no es necesario especificarlos.

Ejemplo completo

Los fragmentos de código siguientes muestran cómo medir el ciclo de vida de comercio electrónico de un solo producto desde la impresión inicial a la transacción usando el complemento de Comercio electrónico mejorado.

Medir una impresión de producto

En este ejemplo, el usuario ve el producto por primera vez en una lista de resultados de búsqueda. Para medir esta impresión del producto, usa el comando ec:addImpression e incluye los detalles del producto en 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.
    

Medir un clic de producto

A continuación, un usuario muestra interés en ese producto concreto haciendo clic en la ficha de producto para ver más detalles.

Para medir el clic del producto, utiliza 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 enlace del producto se puede implementar de la siguiente forma:

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

Medir una vista de detalles de un producto

Tras hacer clic en la ficha de producto, el usuario ve la página de detalles del producto.

Para medir esta vista de detalles del producto, especifica una acción detail con ec:addProduct y ec:setAction:

    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.
    

Medir un artículo añadido o eliminado del carrito

El usuario expresa la intención de comprar el artículo añadiéndolo al carrito.

Para medir las acciones que se producen cuando un usuario añade o elimina un producto del carrito, usa ec:addProduct y elige los tipos 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.
    }
    

Medir el proceso de tramitación de compra

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

  1. Añadir detalles del pago (payment.html)
  2. Añadir detalles del envío (shipping.html)

Si fuera necesario, comprueba que has configurado un embudo de tramitación de la compra correctamente en Configuración de comercio electrónico de la sección de administración de la interfaz web. Por ejemplo:

Configuración de comercio electrónico en la sección de administración de la interfaz web de Google Analytics. Función de comercio electrónico habilitada con etiquetas de pasos del embudo de tramitación de la compra: 1. Detalles del pago y 2. Detalles del envío
Figura 2: Configuración del comercio electrónico - Embudo de tramitación de la compra

Paso 1: Pago

Para medir el primer paso de tramitación de la compra, usa ec:addProduct con cada producto del carrito y ec:setAction para indicar un objeto checkout. ec:setAction usa actionFieldObject para describir el paso de compra con un número. Además, se incluye información adicional sobre el tipo de pago predeterminado del usuario en 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

Para medir el segundo paso de tramitación de la compra, usa ec:addProduct con cada producto del carrito y ec:setAction para especificar un pago. En este caso, no disponemos de información adicional sobre la opción de envío seleccionada cuando se envía el número de página vista inicial, por lo que se reflejará de forma distinta mediante ec:setAction para especificar 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 puede implementarse de la siguiente forma:

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

Medir una transacción

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

Para medir la venta de uno o más productos, usa ec:addProduct para añadir cada producto y, a continuación, ec:setAction para especificar purchase. La información de transacción, como los ingresos totales o los impuestos, se puede especificar a través de un objeto 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.
    

Definir las monedas locales

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 global se usa de manera predeterminada en todos los artículos y transacciones. En los sitios web en los que se hacen transacciones en varias monedas, el complemento de comercio electrónico permite especificar la moneda local de la transacción.

La moneda local debe especificarse según el estándar ISO 4217. Consulta la lista completa de las monedas de conversión admitidas en el documento Referencia de los códigos de moneda.

La moneda local se especifica mediante la propiedad de objeto de seguimiento currencyCode. Por ejemplo, este objeto de seguimiento 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');