acompanhamento de e-commerce avançado

Este documento contém uma visão geral de como avaliar ações e impressões relacionadas ao comércio eletrônico no aplicativo com o SDK V4 do Google Analytics para Android.

Visão geral

O comércio eletrônico avançado permite a avaliação de interações dos usuários com produtos durante a experiência de compra do usuário, incluindo: impressões de produtos, cliques em produtos, exibição de detalhes de produtos, adição de um produto ao carrinho de compras, início do processo de checkout, transações e reembolsos.

Implementação

A medição do comércio eletrônico avançado exige que você use a classe HitBuilder e o conjunto de métodos dela para enviar dados de comércio eletrônico para produtos, impressões e promoções. Um conjunto de classes de comércio eletrônico do Google Analytics também é fornecido para criar informações relacionadas ao comércio eletrônico.

Com o comércio eletrônico avançado você pode:

Avaliação de atividades de comércio eletrônico

Uma implementação de comércio eletrônico avançado típica avalia as impressões de produtos e qualquer uma das ações a seguir:

  • Seleção de um produto.
  • Visualização de detalhes de produtos.
  • Impressões e seleção de promoções internas.
  • Adição / remoção de um produto de um carrinho de compras.
  • Início do processo de checkout para um produto
  • Compras e reembolsos

Medição de impressões

Para avaliar a impressão de um produto, crie um objeto Product e envie-o com um hit usando o método addImpression. O Product precisa ter um valor de nome ou ID. Todos os outros valores são opcionais e não precisam ser definidos.

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());

Consulte Configuração avançada para detalhes sobre o método getTracker.

Avaliação de ações

As ações são medidas usando o método addProduct com um objeto Product para adicionar detalhes do produto, e o método setProductAction com um objeto ProductAction para especificar a ação realizada.

Por exemplo, o código a seguir avalia a seleção de um produto exibido em uma lista de resultados de pesquisa:

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());

Combinação de impressões e ações

Nos casos em que você tem impressões de produtos e uma ação, é possível combinar e avaliar tudo em um único hit.

O exemplo abaixo mostra como avaliar uma vista da propriedade de detalhes do produto com uma seção de produtos relacionados:

// 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());

Medição transações

Meça uma transação usando o método addProduct com um objeto Product para adicionar detalhes do produto e o método setProductAction com um objeto ProductAction para especificar uma ação de compra. Os detalhes no nível da transação, como receita total, tributos e frete, são fornecidos no 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());

Especificação de moedas

Por padrão, você pode configurar uma moeda global comum para todas as transações e itens pela interface da Web de gerenciamento do Google Analytics.

A moeda local precisa ser especificada no padrão ISO 4217. Leia o documento Referência de códigos de moedas para uma lista completa de moedas de conversão compatíveis.

Moedas locais são especificadas usando a propriedade do rastreador "currencyCode". Por exemplo, este rastreador enviará valores de moeda em 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());

Medição de reembolsos

Para reembolsar uma transação inteira, use o método setProductAction com um objeto ProductAction para especificar o ID da transação e um tipo de ação 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());

Se uma transação correspondente não for encontrada, o reembolso não será processado.

Para medir um reembolso parcial, use o método setProductAction com um objeto ProductAction para especificar o ID da transação, os IDs dos produtos e as quantidades de produtos a serem reembolsadas:

// 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 sem interação para reembolsos

Se você precisar enviar dados de reembolso por meio de um evento e ele não fizer parte de um comportamento do usuário avaliado normalmente (por exemplo, não iniciado pelo usuário), é recomendável enviar um evento sem interação. Isso impedirá que determinadas métricas sejam afetadas pelo evento. Exemplo:

// 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());

Avaliação do processo de checkout

Para avaliar cada etapa em um processo de checkout:

  1. Adicione o código de acompanhamento para avaliar cada etapa do processo de finalização de compra.
  2. Se aplicável, adicione o código de acompanhamento para avaliar as opções de checkout.
  3. Opcionalmente, atribua nomes fáceis de entender para as etapas no Relatório de funis de checkout. Para isso, defina Configurações de comércio eletrônico na seção "Administrador" da interface da Web.

1. Avaliação das etapas de checkout

Para cada etapa no processo de checkout, você precisa implementar o código de acompanhamento correspondente para enviar dados ao Google Analytics.

Campo Step

Inclua um valor step para cada etapa de finalização de compra avaliada. Esse valor é usado para corresponder ações desse tipo aos rótulos que você configurou em cada etapa nas Configurações de comércio eletrônico.

Campo Option

Se você tiver informações adicionais sobre a etapa de finalização de compra no momento da avaliação, defina o campo option com uma ação checkout para coletar esses dados. Por exemplo, o tipo de pagamento padrão do usuário, como "Visa".

Medição de uma etapa da finalização da compra

Se quiser avaliar uma etapa desse processo, use o método addProduct com um objeto Product para adicionar detalhes do produto e o método setProductAction com um objeto ProductAction para indicar uma ação desse tipo. Se aplicável, você também pode definir um step e um option com a finalização da compra.

O exemplo a seguir mostra como medir a primeira etapa da finalização de compra com um único produto e mais informações sobre o tipo de pagamento:

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. Avaliação das opções de checkout

Com as opções de checkout, você pode avaliar informações adicionais sobre o estado do checkout. Isso é útil nos casos em que você avaliou uma etapa do checkout, mas informações adicionais sobre a mesma etapa de checkout estão disponíveis depois da definição de uma opção selecionada pelo usuário. Por exemplo, o usuário seleciona um método de envio.

Se quiser medir uma opção de finalização de compra, use o setAction para indicar uma opção de finalização de compra e incluir o número da etapa e a descrição da opção.

.

Provavelmente, convém avaliar essa ação depois que o usuário realizar uma ação para prosseguir até a próxima etapa no processo de checkout. Exemplo:

// (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. Configuração do funil de checkout

Cada etapa do seu processo de checkout pode receber um nome descritivo que será usado nos relatórios. Para configurar esses nomes, acesse a seção Administrador da interface da Web do Google Analytics, selecione a Vista (perfil) e clique em Configurações de comércio eletrônico. Siga as instruções de configuração de comércio eletrônico para rotular cada etapa de checkout que você pretende acompanhar.

Configurações de e-commerce na seção "Administrador" da interface da Web do Google Analytics. O e-commerce está ativado, e quatro rótulos de etapas do funil de finalização de compra foram adicionadas: 1. Revisar carrinho: 2. Coletar informações de pagamento: 3. Confirmar detalhes de compra: 4. Comprovante
Figura 1: configuração do e-commerce – funil de finalização de compra

Medição das promoções internas

O comércio eletrônico avançado inclui suporte para avaliar impressões e cliques de promoções internas, como banners exibidos para promover uma venda.

Impressões da promoção

As impressões de promoções internas geralmente são medidas com a exibição de tela inicial usando o método addPromotion com um objeto Promotion para especificar os detalhes da promoção. Exemplo:

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());

Cliques em promoções

Os cliques em promoções internas podem ser medidos usando o método addPromotion com um objeto Promotion e o método setPromotionAction definido como Promotion.ACTION_CLICK ou Promotion.ACTION_VIEW para indicar um clique ou uma visualização da promoção, respectivamente. Exemplo:

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());