Seguimiento de comercio electrónico mejorado

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

Descripción general

El comercio electrónico mejorado permite medir las interacciones de los usuarios con los productos a lo largo de su experiencia de compra, lo que incluye las impresiones y los clics en los productos, la visualización de sus detalles, la adición de un producto a un carrito de compras, el inicio del proceso de confirmación de la compra, las transacciones y los reembolsos.

Implementación

La medición de comercio electrónico mejorado requiere que uses la clase HitBuilder y su conjunto de métodos para enviar datos de comercio electrónico de productos, impresiones y promociones. También se proporciona un conjunto de clases de comercio electrónico de Google Analytics para crear información relacionada con el comercio electrónico.

Con el comercio electrónico mejorado, puedes hacer lo siguiente:

Mide las actividades del comercio electrónico

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

  • Seleccionar un producto.
  • Ver detalles de productos
  • Impresiones y selección de promociones internas.
  • Agregar o quitar un producto del carrito de compras
  • Iniciar el proceso de confirmación de la compra de un producto.
  • Compras y reembolsos

Medición de impresiones

Para medir una impresión de producto, crea un objeto Product y envíalo con un hit con el método addImpression. Una Product debe tener un valor de nombre o ID. Todos los demás valores son opcionales y no es necesario establecerlos.

Product product = new Product()
    .setId("P12345")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("Black")
    .setPosition(1)
    .setCustomDimension(1, "Member");
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addImpression(product, "Search Results");

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("searchResults");
t.send(builder.build());

Consulta Configuración avanzada para obtener detalles sobre el método getTracker.

Medición de acciones

Las acciones se miden mediante el método addProduct con un objeto Product para agregar detalles del producto y el método setProductAction con un objeto ProductAction para especificar la acción que se está realizando.

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

Product product =  new Product()
    .setId("P12345")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("Black")
    .setPosition(1)
    .setCustomDimension(1, "Member");
ProductAction productAction = new ProductAction(ProductAction.ACTION_CLICK)
    .setProductActionList("Search Results");
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addProduct(product)
    .setProductAction(productAction);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("searchResults");
t.send(builder.build());

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 esto en un solo hit.

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

// The product from a related products section.
Product relatedProduct =  new Product()
    .setId("P12346")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("White")
    .setPosition(1);

// The product being viewed.
Product viewedProduct =  new Product()
    .setId("P12345")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("Black")
    .setPosition(1);

ProductAction productAction = new ProductAction(ProductAction.ACTION_DETAIL);
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addImpression(relatedProduct, "Related Products")
    .addProduct(viewedProduct)
    .setProductAction(productAction);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("product");
t.send(builder.build());

Mide las transacciones

Mide una transacción mediante el método addProduct con un objeto Product para agregar detalles del producto y el método setProductAction con un objeto ProductAction para especificar una acción de compra. Los detalles a nivel de la transacción, como los ingresos totales, los impuestos y el envío, se proporcionan en el objeto ProductAction.

Product product =  new Product()
    .setId("P12345")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("black")
    .setPrice(29.20)
    .setCouponCode("APPARELSALE")
    .setQuantity(1);
ProductAction productAction = new ProductAction(ProductAction.ACTION_PURCHASE)
    .setTransactionId("T12345")
    .setTransactionAffiliation("Google Store - Online")
    .setTransactionRevenue(37.39)
    .setTransactionTax(2.85)
    .setTransactionShipping(5.34)
    .setTransactionCouponCode("SUMMER2013");
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addProduct(product)
    .setProductAction(productAction);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("transaction");
t.send(builder.build());

Cómo especificar la moneda

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.

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

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

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("transaction");
t.set("&cu", "EUR");  // Set tracker currency to Euros.
t.send(builder.build());

Medición de reembolsos

Para reembolsar una transacción completa, usa el método setProductAction con un objeto ProductAction a fin de especificar el ID de transacción y un tipo de acción de reembolso:

// Refund an entire transaction.
ProductAction productAction = new ProductAction(ProductAction.ACTION_REFUND)
    .setTransactionId("T12345");  // Transaction ID is only required field for a full refund.
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .setProductAction(productAction);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("refund");
t.send(builder.build());

Si no se encuentra una transacción coincidente, no se procesará el reembolso.

Para medir un reembolso parcial, usa el método setProductAction con un objeto ProductAction para especificar el ID de transacción, los ID del producto y las cantidades de productos que se reembolsarán:

// Refund a single product.
Product product =  new Product()
    .setId("P12345")  // Product ID is required for partial refund.
    .setQuantity(1);  // Quanity is required for partial refund.
ProductAction productAction = new ProductAction(ProductAction.ACTION_REFUND)
    .setTransactionId("T12345");  // Transaction ID is required for partial refund.
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addProduct(product)
    .setProductAction(productAction);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("refundProduct");
t.send(builder.build());

Uso de eventos sin interacción para reembolsos

Si necesitas enviar datos de reembolso mediante un evento y este no forma parte del comportamiento normal del usuario (es decir, no iniciado por el usuario), te recomendamos que envíes un evento sin interacción. Esto evitará que el evento afecte algunas métricas. Por ejemplo:

// Refund an entire transaction.
ProductAction productAction = new ProductAction(ProductAction.ACTION_REFUND)
    .setTransactionId("T12345");
HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder()
    .setProductAction(productAction)
    .setNonInteraction(true)
    .setCategory("Ecommerce")
    .setAction("Refund");

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.send(builder.build());

Medición del proceso de pago

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

  1. Agrega un código de seguimiento para medir cada paso del proceso de confirmación de la compra.
  2. Si corresponde, agrega el código de seguimiento para medir las opciones de confirmación de la compra.
  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 de administrador de la interfaz web.

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

En cada paso del proceso de confirmación de la compra, deberás implementar el código de seguimiento correspondiente para enviar los datos a Google Analytics.

Campo Step

Para cada paso de confirmación de la compra que midas, debes incluir un valor de step. Este valor se usa para asignar tus acciones de confirmación de la compra a las etiquetas que configuraste en 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 determinado 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

Para medir un paso de confirmación de la compra, usa el método addProduct con un objeto Product para agregar detalles del producto y el método setProductAction con un objeto ProductAction para indicar una acción de confirmación de la compra. Si corresponde, también puedes establecer un step y un option con la confirmación de la compra.

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, además de información adicional sobre el tipo de pago:

Product product =  new Product()
    .setId("P12345")
    .setName("Android Warhol T-Shirt")
    .setCategory("Apparel/T-Shirts")
    .setBrand("Google")
    .setVariant("black")
    .setPrice(29.20)
    .setQuantity(1);
// Add the step number and additional info about the checkout to the action.
ProductAction productAction = new ProductAction(ProductAction.ACTION_CHECKOUT)
    .setCheckoutStep(1)
    .setCheckoutOptions("Visa");
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addProduct(product)
    .setProductAction(productAction);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("checkoutStep1");
t.send(builder.build());

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

Las opciones de confirmación de la compra te permiten medir información adicional sobre el estado de la confirmación de la compra. Esto es útil en los casos en los que se mide un paso de confirmación de la compra, pero hay información adicional sobre este mismo paso disponible después de que se establece una opción del usuario seleccionada. Por ejemplo, el usuario selecciona un método de envío.

Si quieres medir una opción de confirmación de la compra, usa setAction para indicarla y, luego, incluye 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 realice alguna acción para continuar con el siguiente paso del proceso de confirmación de la compra. Por ejemplo:

// (On "Next" button click.)
ProductAction productAction = new ProductAction(ProductAction.ACTION_CHECKOUT_OPTIONS)
    .setCheckoutStep(1)
    .setCheckoutOptions("FedEx");
HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder()
    .setProductAction(productAction)
    .setCategory("Checkout")
    .setAction("Option");

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.send(builder.build());

// Advance to next page.

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

A cada paso del proceso de confirmación de la compra se le puede asignar 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. 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 sección Administrador de la interfaz web de
     Google Analytics. Se habilitó el comercio electrónico 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. Confirmar los detalles de la
     compra, 4. Recibo
Figura 1: Configuración de comercio electrónico del embudo de confirmación de la compra

Mide las promociones internas

El comercio electrónico mejorado incluye compatibilidad para medir las impresiones y los clics de las promociones internas, como los banners que se muestran para promocionar una oferta.

Impresiones de promoción

Por lo general, las impresiones de promoción interna se miden con la vista de pantalla inicial mediante el método addPromotion con un objeto Promotion para especificar los detalles de la promoción. Por ejemplo:

Promotion promotion = new Promotion()
    .setId("PROMO_1234")
    .setName("Summer Sale")
    .setCreative("summer_banner2")
    .setPosition("banner_slot1");
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addPromotion(promotion);

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.setScreenName("promotions");
t.send(builder.build());

Clics de promoción

Los clics en promociones internas se pueden medir mediante el método addPromotion con un objeto Promotion y el método setPromotionAction configurado en Promotion.ACTION_CLICK o Promotion.ACTION_VIEW para indicar un clic o una vista de promoción, respectivamente. Por ejemplo:

Promotion promotion = new Promotion()
    .setId("PROMO_1234")
    .setName("Summer Sale")
    .setCreative("summer_banner2")
    .setPosition("banner_slot1");
HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder()
    .addPromotion(promotion)
    .setPromotionAction(Promotion.ACTION_CLICK)
    .setCategory("Internal Promotions")
    .setAction("click")
    .setLabel("Summer Sale");

Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);
t.send(builder.build());