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:
- Medir as atividades de e-commerce
- Medir as transações
- Medir os reembolsos
- Medir o processo de finalização da compra
- Medir as promoções internas
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:
- Adicione o código de acompanhamento para avaliar cada etapa do processo de finalização de compra.
- Se aplicável, adicione o código de acompanhamento para avaliar as opções de checkout.
- 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.
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());