iOS v3: e-commerce avançado

Neste guia, descrevemos como implementar os recursos de e-commerce avançado do Universal Analytics usando o SDK do Gerenciador de tags do Google para iOS.

Informações gerais

O e-commerce avançado do Google Analytics permite que os dados de impressões, promoções e vendas de produtos sejam enviados com qualquer um dos seus eventos e exibições de tela do Analytics.

Antes de começar

Recomendamos que você leia a seção Ações e tipos de dados de e-commerce avançado do Guia para desenvolvedores sobre e-commerce avançado do Google Analytics (Web) se quiser planejar sua implementação. Neste guia, vamos ajudar você a entender quais campos são obrigatórios e opcionais para cada uma das interações de e-commerce que você quer avaliar.

Implementação

As seções abaixo mostram como usar a camada de dados para medir as seguintes atividades de e-commerce avançado:

Medir as impressões do produto

  • Medição de comércio eletrônico: impressions
  • Aceita dados: matriz de impressionFieldObjects

Meça as impressões do produto usando a ação impression e um ou mais impressionFieldObjects. O exemplo a seguir pressupõe que os detalhes sobre os produtos mostrados são conhecidos no momento em que a tela é mostrada:

// Product impressions are sent by pushing an impressions object
// containing one or more impressionFieldObjects.
[dataLayer push:@{@"ecommerce": @{
                    @"currencyCode": @"EUR",                      // Local currency is optional.
                    @"impressions": @[
                      @{@"name": @"Triblend Android T-Shirt",     // Name or ID is required.
                        @"id": @"12345",
                        @"price": @"15.25",
                        @"brand": @"Google",
                        @"category": @"Apparel",
                        @"variant": @"Gray",
                        @"list": @"Search Results",
                        @"position": @1},
                      @{@"name": @"Donut Friday Scented T-Shirt",
                        @"id": @"67890",
                        @"price": @"33.75",
                        @"brand": @"Google",
                        @"category": @"Apparel",
                        @"variant": @"Black",
                        @"list": @"Search Results",
                        @"position": @2}]}}];

Medir os cliques/seleções no produto

  • Medição de comércio eletrônico: click
  • Aceita dados: list, matriz de productFieldObjects

Meça as seleções de produtos enviando uma ação click à camada de dados, além de um productFieldObject para representar o produto selecionado:

[dataLayer push:@{@"event": @"productClick",
                  @"ecommerce": @{
                    @"click": @{
                      @"actionField": @{
                        @"list": @"Search Results"},              // Optional list property.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",   // Name or ID is required.
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray"}]}}}];

Medir as visualizações dos detalhes do produto

  • Medição de comércio eletrônico: detail
  • Aceita dados: list, matriz de productFieldObjects

Se quiser medir as visualizações dos detalhes do produto, envie uma ação detail à camada de dados com um ou mais productFieldObjects representando os produtos visualizados:

// Measure a view of product details.
[dataLayer push:@{@"ecommerce": @{
                    @"detail": @{
                      @"actionField": @{
                        @"list": @"Apparel Gallery"},             // 'detail' actions have an optional list property.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",   // Name or ID is required.
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray"}]}}}];

Medir as adições ou remoções de itens de um carrinho de compras

  • Medição de e-commerce: add, remove
  • Aceita dados: list, matriz de productFieldObjects

Meça as adições ou remoções de um carrinho de compras usando um actionFieldObject add ou remove e uma lista de productFieldObjects:

Adicionar um produto a um carrinho de compras

// Measure adding a product to a shopping cart by using an "add"
// actionFieldObject and a list of productFieldObjects.
[dataLayer push:@{@"event": @"addToCart",
                  @"ecommerce": @{
                    @"currencyCode": @"EUR",
                    @"add": @{                                  // 'add' actionFieldObject measures.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray",
                          @"quantity": @1}]}}}];

Remover um produto de um carrinho de compras

// Measure the removal of a product from a shopping cart.
[dataLayer push:@{@"event": @"removeFromCart",
                  @"ecommerce": @{
                    @"remove": @{                               // 'remove' actionFieldObject measures.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray",
                          @"quantity": @1}]}}}];

Medir as promoções

Você pode medir as impressões e seleções em promoções internas de apps, como banners exibidos no app para anunciar uma promoção de um subconjunto específico de produtos ou uma oferta de frete grátis.

Medir as impressões da promoção

  • Medição de comércio eletrônico: promoView
  • Aceita dados: matriz de promoFieldObjects

Para medir a impressão de uma promoção, defina a chave promoView na camada de dados de e-commerce como um promoFieldObject que descreva as promoções exibidas aos usuários na tela:

// An example of measuring promotion views. This example assumes that
// information about the promotions displayed is available when the screen is
// displayed.
[dataLayer push:@{@"ecommerce": @{
                    @"promoView": @{
                      @"promotions": @[                     // Array of promoFieldObjects.
                        @{@"id": @"JUNE_PROMO13",           // ID or Name is required.
                          @"name": @"June Sale",
                          @"creative": @"banner1",
                          @"position": @"slot1"},
                        @{@"id": @"FREE_SHIP13",
                          @"name": @"Free Shipping Promo",
                          @"creative": @"skyscraper1",
                          @"position": @"slot2"}]}}}];

Medir os cliques/seleções da promoção

Para medir uma seleção de promoção, envie a ação promoClick para a camada de dados com uma matriz contendo um promoFieldObject que descreva a promoção selecionada:

[dataLayer push:@{@"event": @"promotionClick",
                  @"ecommerce": @{
                    @"promoClick": @{
                      @"promotions": @[
                        @{@"id":  @"JUNE_PROMO13",          // Name or ID is required.
                          @"name": @"June Sale",
                          @"creative": @"banner1",
                          @"position": @"slot1"}]}}}];

Medir uma finalização da compra

Para medir cada etapa de um processo de finalização da compra, faça o seguinte:

  1. Meça cada etapa desse processo usando a ação checkout.
  2. Se aplicável, meça as opções de finalização da compra com a ação checkout_option.
  3. Inclua nomes fáceis para as etapas no Relatório de funil de finalização da compra. Para isso, basta definir as Configurações de comércio eletrônico na seção Administrador da interface da Web.

1. Medir as etapas de finalização da compra

  • Medição de comércio eletrônico: checkout
  • Aceita dados: step, matriz de productFieldObjects

Se quiser medir o processo de finalização da compra, que pode incluir um botão para finalizar a compra e uma ou mais telas em que os usuários inserem informações de envio e pagamento, use a ação checkout e o campo step para indicar qual etapa está sendo medida. Também é possível usar o campo option para fornecer outros dados sobre o processo de finalização da compra, como o tipo de pagamento selecionado pelo usuário.

[dataLayer push:@{@"event": @"checkout",
                  @"ecommerce": @{
                    @"checkout": @{
                      @"actionField": @{
                        @"step": @1,
                        @"option": @"Visa"},
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray",
                          @"quantity": @1}]}}}];

2. Medir as opções de finalização da compra

  • Medição de comércio eletrônico: checkout_option
  • Aceita dados: step e option

A opção de finalização da compra é útil nos casos em que você já mediu uma etapa do processo, mas quer coletar outras informações sobre a mesma etapa. Por exemplo, o método de envio selecionado por um usuário. Para isso, use a ação checkout_option com os campos step e option.

[dataLayer push:@{@"event": @"checkoutOption",
                  @"ecommerce": @{
                    @"checkout_option": @{
                      @"actionField": @{
                        @"step": @1,
                        @"option": @"Express"}}}}];

3. Configuração do funil de checkout

Cada etapa do seu processo de finalização da compra pode receber um nome descritivo que será usado nos relatórios. Para configurar esses nomes, clique na 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 para rotular cada etapa de finalização da compra que você pretende acompanhar.

Configuração do comércio eletrônico na interface de administrador do Google Analytics. Um funil de finalização da compra é definido em quatro etapas: 1) Revisar o carrinho. 2) Coletar informações de pagamento. 3) Confirmar os detalhes da compra. 4) Comprovante.
Figura 1: configuração do comércio eletrônico, funil de finalização da compra

Medir as compras

  • Medição de comércio eletrônico: purchase
  • Aceita dados: id (ID da transação), matriz de productFieldObjects

Envie os detalhes da transação para a camada de dados usando a ação purchase e um event, que vai disparar uma tag de e-commerce avançado. Neste exemplo, os detalhes da transação são conhecidos no momento em que a tela é exibida:

// Send transaction data with a screenview if possible.
// Otherwise, use an event when the transaction data becomes available.
[dataLayer push:@{@"ecommerce": @{
                    @"purchase": @{
                      @"actionField": @{
                        @"id": @"T12345",                         // Transaction ID. Required for purchases and refunds.
                        @"affiliation": @"Online Store",
                        @"revenue": @"35.43",                     // Total transaction value (incl. tax and shipping)
                        @"tax":"4.90",
                        @"shipping": @"5.99",
                        @"coupon": @"SUMMER_SALE"},
                      @"products": @[                             // List of productFieldObjects.
                        @{@"name": @"Triblend Android T-Shirt",   // Name or ID is required.
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray",
                          @"quantity": @1,
                          @"coupon": @""},                        // Optional fields may be omitted or set to empty string.
                        @{@"name": @"Donut Friday Scented T-Shirt",
                          @"id": @"67890",
                          @"price": @"33.75",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Black",
                          @"quantity": @1}]}}}];

Medição de reembolsos

  • Medição de comércio eletrônico: refund
  • Aceita dados: id (ID da transação), matriz de productFieldObjects

Para medir um reembolso total de uma transação, envie um refund actionFieldObject com o ID da transação que está sendo reembolsada:

// Refund an entire transaction by providing the transaction ID. This example
// assumes the details of the completed refund are available when the screen
// is displayed:
[dataLayer push:@{@"ecommerce": @{
                    @"refund": @{
                      @"actionField": @{
                        @"id": @"T12345"}}}}];  // Transaction ID. Required for refunds.

Para medir um reembolso parcial, adicione uma lista de productFieldObjects, incluindo os IDs dos produtos e os valores a serem reembolsados:

// Measure a partial refund by providing an array of productFieldObjects and
// specifying the ID and quantity of each product being returned. This example
// assumes the partial refund details are known at the time the screen is
// displayed:
[dataLayer push:@{@"ecommerce": @{
                    @"refund": @{
                      @"actionField": @{
                        @"id": @"T12345"},      // Transaction ID.
                      @"products": @[
                        @{@"id": @"P4567",
                          @"quantity": @1},     // Product ID & quantity. Required for partial refunds.
                        @{@"id": @"P8901",
                          @"quantity": @2}]}}}];

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

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

Veja no exemplo abaixo como medir a visualização de detalhes do produto com as impressões de uma seção de produtos relacionados:

[dataLayer push:@{@"ecommerce": @{
                    @"impressions": @[
                      @{@"name": @"Triblend Android T-Shirt",       // Name or ID is required.
                        @"id": @"12345",
                        @"price": @"15.25",
                        @"brand": @"Google",
                        @"category": @"Apparel",
                        @"variant": @"Gray",
                        @"list": @"Related Products",
                        @"position": @1},
                      @{@"name": @"Donut Friday Scented T-Shirt",
                        @"id": @"67890",
                        @"price": @"33.75",
                        @"brand": @"Google",
                        @"category": @"Apparel",
                        @"variant": @"Black",
                        @"list": @"Related Products",
                        @"position": @2}],
                    @"detail": @{
                      @"actionField": @{
                        @"list": @"Apparel Gallery"},               // 'detail' actions have an optional list property.
                      @"products": @[
                        @{@"name": @"Triblend Android T-Shirt",     // Name or ID is required.
                          @"id": @"12345",
                          @"price": @"15.25",
                          @"brand": @"Google",
                          @"category": @"Apparel",
                          @"variant": @"Gray"}]}}}];