Medición de comercio electrónico

En esta guía, se describe cómo recopilar datos de comercio electrónico con analytics.js.

Descripción general

La medición de comercio electrónico te permite medir la cantidad de ingresos y transacciones que genera tu sitio web. En un sitio de comercio electrónico típico, una vez que un usuario hace clic en el botón "Comprar" del navegador, la información de compra del usuario se envía al servidor web, que realiza la transacción. Si la operación es exitosa, el servidor redirecciona al usuario a una página de agradecimiento o de recibo con los detalles de la transacción y un recibo de la compra. Puedes usar la biblioteca analytics.js para enviar los datos de comercio electrónico de la página de agradecimiento a Google Analytics.

Existen dos tipos de datos de comercio electrónico que puedes enviar con analytics.js: datos de transacciones y de artículos.

Datos de transacciones

Una transacción representa toda la transacción que se lleva a cabo en tu sitio y contiene los siguientes valores:

Clave Value Type Obligatorio Descripción
id text Indica el ID de la transacción, (p. ej., 1234).
affiliation text No Indica la tienda o afiliación en la que se realizó la transacción (p.ej., Indumentaria Acme).
revenue currency No Especifica la suma total o los ingresos totales asociados con la transacción, (p. ej., 11.99). Este valor puede incluir los costos de envío, los costos impositivos y otros ajustes a los ingresos totales que quieras incluir como parte de tus cálculos de ingresos.
shipping currency No Especifica el costo total del envío de la transacción, (p. ej., 5).
tax currency No Especifica el impuesto total de la transacción, (p. ej., 1.29).

Datos del artículo

Un artículo representa los productos individuales que estaban en el carrito de compras y contiene los siguientes valores:

Clave Value Type Obligatorio Descripción
id text Indica el ID de la transacción, Este ID vincula los elementos con las transacciones a las que pertenecen. (p. ej., 1234).
name text Indica el nombre del artículo, (p. ej., Conejos de peluche color rosa).
sku text No Especifica el SKU o código de artículo, (p. ej., SKU47).
category text No Indica la categoría a la que pertenece el artículo, (p. ej., Juguetes para fiestas).
price currency No Es el precio por unidad de cada artículo. (p. ej., 11.99).
quantity integer No Indica la cantidad de unidades que se compraron en la transacción. Si se pasa un valor que no es un número entero a este campo (p.ej., 1.5), se redondeará al valor de número entero más cercano.

Implementación

Por lo general, la medición de comercio electrónico se implementa una vez que el usuario completa el proceso de confirmación de la compra. Por lo general, esto ocurre en la página de agradecimiento. Una vez que tengas los datos de comercio electrónico en Google Analytics y estés listo para hacerlo, sigue estos dos pasos:

Carga el complemento de comercio electrónico

Para reducir el tamaño de la biblioteca de analytics.js, la medición de comercio electrónico no se proporciona en la biblioteca predeterminada. En cambio, se proporciona como un módulo de complemento que se debe cargar antes de usarse.

Para cargar el complemento de ecommerce, utiliza el siguiente comando:

ga('require', 'ecommerce');

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

Una vez cargado, se agregarán algunos comandos nuevos específicos para la medición de comercio electrónico al rastreador predeterminado.

Agrega una transacción

Una vez que se carga el complemento, crea un objeto transparente del carrito de compras. Puedes agregar datos de transacciones y artículos al carrito de compras y, cuando esté completamente configurado, puedes enviar todos los datos a la vez.

Agrega los datos de la transacción al carrito de compras con el comando ecommerce:addTransaction:

ga('ecommerce:addTransaction', {
  'id': '1234',                     // Transaction ID. Required.
  'affiliation': 'Acme Clothing',   // Affiliation or store name.
  'revenue': '11.99',               // Grand Total.
  'shipping': '5',                  // Shipping.
  'tax': '1.29'                     // Tax.
});

Cómo agregar elementos

Luego, para agregar artículos al carrito de compras, usa el comando ecommerce:addItem:

ga('ecommerce:addItem', {
  'id': '1234',                     // Transaction ID. Required.
  'name': 'Fluffy Pink Bunnies',    // Product name. Required.
  'sku': 'DD23444',                 // SKU/code.
  'category': 'Party Toys',         // Category or variation.
  'price': '11.99',                 // Unit price.
  'quantity': '1'                   // Quantity.
});

Enviando datos

Por último, una vez que hayas configurado todos tus datos de comercio electrónico en el carrito de compras, debes enviarlos a Google Analytics con el comando ecommerce:send:

ga('ecommerce:send');

Este comando revisará cada transacción y artículo en el carrito de compras y enviará los datos correspondientes a Google Analytics. Una vez completado, el carrito de compras se borra y está listo para enviar datos para una nueva transacción. Si se emitió un comando ecommerce:send anterior, solo se enviarán los datos de transacciones y elementos nuevos.

Borrado de datos

Si necesitas liquidar manualmente todas las transacciones y los artículos del carrito de compras, usa el siguiente comando:

ga('ecommerce:clear');

Especificación de monedas locales

De forma predeterminada, puedes configurar una moneda común y global para todas las transacciones y los elementos a través de la interfaz web de administración de Google Analytics. Según la configuración predeterminada, se usa la moneda global para todos los artículos y transacciones. En el caso de 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, así como productos individuales.

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

Para configurar la moneda local de una transacción en particular y todos sus elementos, solo tienes que especificar la moneda de la transacción:

ga('ecommerce:addTransaction', {
  'id': '1234',
  'affiliation': 'Acme Clothing',
  'revenue': '11.99',
  'shipping': '5',
  'tax': '1.29',
  'currency': 'EUR'  // local currency code.
});

Por último, también puedes especificar la moneda por artículo:

  ga('ecommerce:addItem', {
    'id': '1234',
    'name': 'Fluffy Pink Bunnies',
    'sku': 'DD23444',
    'category': 'Party Toys',
    'price': '11.99',
    'quantity': '1',
    'currency': 'GBP' // local currency code.
  });

Compatibilidad con varios monitores

También puedes usar el complemento de comercio electrónico si implementaste varias herramientas de seguimiento (con nombre) en tu página. El complemento funciona exactamente igual que el rastreador predeterminado, con la excepción de que el formato es trackerName.pluginName:method. Por ejemplo, si creaste un rastreador llamado myTracker, usa lo siguiente:

ga('create', 'UA-XXXXX-Y', 'auto', {'name': 'myTracker'});

Luego, carga el complemento de comercio electrónico de ese rastreador con nombre usando lo siguiente:

ga('myTracker.require', 'ecommerce');

Para enviar una transacción, puedes crear un objeto de transacción y pasarlo a la herramienta de seguimiento con nombre de la siguiente manera:

var transaction = {
  'id': '1234',                    // Transaction ID.
  'affiliation': 'Acme Clothing',  // Affiliation or store name.
  'revenue': '11.99',              // Grand Total.
  'shipping': '5' ,                // Shipping.
  'tax': '1.29'                    // Tax.
};

ga('myTracker.ecommerce:addTransaction', transaction);

Con esta sintaxis, el objeto de transacción se puede usar en varios rastreadores.

Por último, deberías enviar los datos de la transacción de la siguiente manera:

ga('myTracker.ecommerce:send');

Ejemplo

La mayoría de los sitios de comercio electrónico realizan transacciones en el servidor, mientras que la biblioteca de analytics.js envía datos a Google Analytics desde el navegador. Por lo tanto, se requiere un poco de coordinación entre el servidor y el cliente para enviar correctamente los datos de comercio electrónico a Google Analytics.

La mayoría de los sitios de comercio electrónico procesan su página de agradecimiento usando un motor de plantillas del servidor. En este caso, puedes agregar el código de medición de comercio electrónico a la plantilla del servidor y usar la lógica del servidor para escribir de forma dinámica los valores de datos de comercio electrónico en la página final. Aquí tienes un ejemplo de cómo se vería en PHP.

Por lo general, en PHP, tendrás alguna representación de los datos de comercio electrónico. En este ejemplo, los datos se almacenan en un arreglo asociativo:

<?php
// Transaction Data
$trans = array('id'=>'1234', 'affiliation'=>'Acme Clothing',
               'revenue'=>'11.99', 'shipping'=>'5', 'tax'=>'1.29');

// List of Items Purchased.
$items = array(
  array('sku'=>'SDFSDF', 'name'=>'Shoes', 'category'=>'Footwear', 'price'=>'100', 'quantity'=>'1'),
  array('sku'=>'123DSW', 'name'=>'Sandals', 'category'=>'Footwear', 'price'=>'87', 'quantity'=>'1'),
  array('sku'=>'UHDF93', 'name'=>'Socks', 'category'=>'Footwear', 'price'=>'5.99', 'quantity'=>'2')
);
?>

El primer paso es escribir lógica para transformar los datos de comercio electrónico en la cadena de JavaScript requerida por analytics.js:

<?php
// Function to return the JavaScript representation of a TransactionData object.
function getTransactionJs(&$trans) {
  return <<<HTML
ga('ecommerce:addTransaction', {
  'id': '{$trans['id']}',
  'affiliation': '{$trans['affiliation']}',
  'revenue': '{$trans['revenue']}',
  'shipping': '{$trans['shipping']}',
  'tax': '{$trans['tax']}'
});
HTML;
}

// Function to return the JavaScript representation of an ItemData object.
function getItemJs(&$transId, &$item) {
  return <<<HTML
ga('ecommerce:addItem', {
  'id': '$transId',
  'name': '{$item['name']}',
  'sku': '{$item['sku']}',
  'category': '{$item['category']}',
  'price': '{$item['price']}',
  'quantity': '{$item['quantity']}'
});
HTML;
}
?>

Luego, en la etiqueta <script>, deberías agregar la lógica adicional de PHP para generar los datos de la transacción y del artículo de forma dinámica:

<!-- Begin HTML -->
<script>
ga('require', 'ecommerce');

<?php
echo getTransactionJs($trans);

foreach ($items as &$item) {
  echo getItemJs($trans['id'], $item);
}
?>

ga('ecommerce:send');
</script>

Una vez que la secuencia de comandos PHP termine de ejecutarse, los datos de transacciones y elementos requeridos por analytics.js se imprimirán en la página. Una vez que se renderice el código JavaScript de la página en el navegador, todos los datos de comercio electrónico se enviarán a Google Analytics.

Tipos de moneda

El tipo de moneda predeterminado se puede configurar a través de la interfaz de administración. Cuando envías valores de moneda con analytics.js, el valor representa el valor total de una moneda.

Se puede usar un punto decimal como delimitador entre la parte completa y la fraccionaria de la moneda. La precisión es de hasta 6 decimales. Lo siguiente es válido para un campo de moneda:

1000.000001

Una vez que se envía el valor a Google Analytics, se quita todo el texto hasta el primer dígito, el carácter - o el carácter . (decimal). Entonces:

$-55.00

se convertirá en:

-55.00