Comércio eletrônico avançado

Este guia descreve como coletar dados de comércio eletrônico avançado por meio do analytics.js.

Visão geral

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

Migração e compatibilidade com o plug-in do comércio eletrônico (ecommerce.js)

Se você já tiver implementado o acompanhamento do comércio eletrônico e desejar começar a usar o acompanhamento do comércio eletrônico avançado, há duas opções principais:

Usar uma nova propriedade

Você pode adicionar um outro rastreador a uma nova propriedade e codificar/ativar o comércio eletrônico avançado para ela. Consulte Trabalho com vários objetos de acompanhamento para detalhes sobre como enviar dados a várias propriedades de uma única página.

Migrar uma propriedade existente

Para migrar do plug-in do comércio eletrônico para o plug-in do comércio eletrônico avançado, os usuários atuais do analytics.js devem remover e substituir referências pelo código do comércio eletrônico avançado.

Se atualmente você usa o ga.js, terá primeiro que migrar para o analytics.js com o objetivo de usar o plug-in do comércio eletrônico avançado.

Os dados de transações e itens coletados anteriormente com o plug-in ecommerce.js não serão afetados pela migração, e permanecerão disponíveis nas propriedades e perfis aos quais foram enviados originalmente.

Tipos de dados e ações do comércio eletrônico avançado

Há vários tipos de dados de comércio eletrônico que você pode enviar com o analytics.js: dados de impressões, dados de produtos, dados de promoções e dados de ações.

Dados de impressões

Representa as informações sobre um produto que foi visualizado. Eles são chamados de impressionFieldObject e contêm estes valores:

Chave Tipo de valor Obrigatório Descrição
id text Sim* O ID ou SKU do produto (por exemplo, P67890). *Esse campo ou nome precisa ser definido.
name text Sim* O nome do produto (por exemplo, camiseta do Android). *Esse campo ou ID precisa ser definido.
list text Não A lista ou o conjunto ao qual o produto pertence (por exemplo, resultados de pesquisa).
brand text Não A marca associada ao produto (por exemplo, Google).
category text Não A categoria à qual o produto pertence (por exemplo, vestuário). Use / como um delimitador para especificar até cinco níveis de hierarquia (por exemplo, Vestuário/Masculino/Camisetas).
variant text Não A variante do produto (por exemplo, preto).
position integer Não A posição do produto em uma lista ou conjunto (por exemplo, 2).
price currency Não O preço de um produto (por exemplo, 29,20).

Dados do produto

Os dados dos produtos representam produtos individuais que foram visualizados, adicionados ao carrinho de compras etc. Eles são chamados de productFieldObject e contêm estes valores:

Chave Tipo de valor Obrigatório Descrição
id text Sim* O ID ou SKU do produto (por exemplo, P67890). *Esse campo ou nome precisa ser definido.
name text Sim* O nome do produto (por exemplo, camiseta do Android). *Esse campo ou ID precisa ser definido.
brand text Não A marca associada ao produto (por exemplo, Google).
category text Não A categoria à qual o produto pertence (por exemplo, vestuário). Use / como um delimitador para especificar até cinco níveis de hierarquia (por exemplo, Vestuário/Masculino/Camisetas).
variant text Não A variante do produto (por exemplo, preto).
price currency Não O preço de um produto (por exemplo, 29,20).
quantity integer Não A quantidade de um produto (por exemplo, 2).
coupon text Não O código do cupom associado a um produto (por exemplo, PROMO_VERAO13).
position integer Não A posição do produto em uma lista ou conjunto (por exemplo, 2).

Dados de promoções

Representam as informações sobre uma promoção que foi visualizada. Eles são chamados de promoFieldObject e contêm estes valores:

Chave Tipo de valor Obrigatório Descrição
id text Sim* O ID da promoção (por exemplo, PROMO_1234). *Esse campo ou nome precisa ser definido.
name text Sim* O nome da promoção (por exemplo, Promoção de verão). *Esse campo ou ID precisa ser definido.
creative text Não O criativo associado à promoção (por exemplo, verao_banner2).
position text Não A posição da peça criativa (por exemplo, banner_slot_1).

Dados de ações

Representam as informações sobre uma ação que ocorreu relacionada ao comércio eletrônico. Eles são chamados de actionFieldObject e contêm estes valores:

Chave Tipo de valor Obrigatório Descrição
id text Sim* O ID da transação (por exemplo, T1234). *Obrigatório se o tipo de ação for purchase ou refund.
affiliation text Não A loja ou afiliação na qual a transação ocorreu (por exemplo, Google Store).
revenue moeda Não Especifica a receita total ou o total geral associado à transação (por exemplo, 11,99). Esse valor pode incluir custos de frete, impostos ou outros ajustes na receita total que você deseja considerar como parte dos cálculos da receita. Observação: se a receita não for definida, o valor dela será calculado automaticamente com base nos campos de quantidade de produtos e preço no mesmo hit.
tax moeda Não O total de impostos associados à transação.
shipping moeda Não O custo de envio associado à transação.
coupon text Não O cupom de transação resgatado na transação.
list text Não A lista à qual os produtos associados pertencem. Opcional.
step número inteiro Não Um número que representa uma etapa no processo de checkout. Opcional em ações checkout.
option text Não Campo adicional para ações checkout e checkout_option que podem descrever informações de opções na página de checkout, como o método de pagamento selecionado.

Ações de produtos e promoções

As ações especificam como interpretar os dados de produtos e promoções que você envia ao Google Analytics.

Ação Descrição
click Um clique em um produto ou link do produto para um ou mais produtos
detail Uma visualização dos detalhes do produto
add A adição de um ou mais produtos a um carrinho de compras.
remove A remoção de um ou mais produtos de um carrinho de compras.
checkout O início do processo de checkout para um ou mais produtos.
checkout_option O envio de um valor de opção para determinada etapa da finalização de compra
purchase A venda de um ou mais produtos
refund O reembolso de um ou mais produtos
promo_click Um clique em uma promoção interna

Implementação

As seções a seguir descrevem como implementar o plug-in do comércio eletrônico avançado para avaliar as atividades dele em um website com a biblioteca analytics.js.

Carregamento do plug-in de comércio eletrônico

Para reduzir o tamanho da biblioteca analytics.js, o acompanhamento do comércio eletrônico avançado não é fornecido na biblioteca padrão. Em vez disso, ele é fornecido como um módulo de plug-in que precisa ser carregado antes da utilização.

Para carregar o plug-in do comércio eletrônico avançado, use este comando:

ga('require', 'ec');

Esse comando precisa ocorrer depois que você criar seu objeto de acompanhamento e antes de usar uma d as funcionalidades específicas do comércio eletrônico avançado.

Envio de dados do comércio eletrônico avançado

Depois de carregados, alguns comandos novos específicos do acompanhamento do comércio eletrônico avançado serão adicionados ao rastreador padrão, e você poderá começar a enviar dados do comércio eletrônico avançado.

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:

  • Cliques no link de um produto.
  • Visualização de detalhes de produtos.
  • Impressões e cliques 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.

Avaliação de impressões

As impressões de produtos são avaliadas com o comando ec:addImpression. Detalhes sobre o produto são adicionados em um impressionFieldObject.

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

ga('ec:addImpression', {            // Provide product details in an impressionFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel/T-Shirts',   // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'list': 'Search Results',         // Product list (string).
  'position': 1,                    // Product position (number).
  'dimension1': 'Member'            // Custom dimension (string).
});

Um impressionFieldObject precisa ter um valor name ou id. Todos os outros valores são opcionais e não precisam ser definidos.

Avaliação de ações

As ações são avaliadas por meio do comando ec:addProduct com um productFieldObject para adicionar detalhes de produtos, e o comando ec:setAction para especificar a ação sendo realizada.

Por exemplo, o código a seguir avalia um clique no link de um produto exibido em uma lista de resultados de pesquisa:

ga('ec:addProduct', {               // Provide product details in a productFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'position': 1,                    // Product position (number).
  'dimension1': 'Member'            // Custom dimension (string).
});

ga('ec:setAction', 'click', {       // click action.
  'list': 'Search Results'          // Product list (string).
});

Um productFieldObject precisa ter um valor name ou id. Todos os outros valores são opcionais e não precisam ser definidos.

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 impression from a Related Products section.
ga('ec:addImpression', {            // Provide product details in an impressionFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel/T-Shirts',   // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'list': 'Related Products',       // Product list (string).
  'position': 1                     // Product position (number).
});

// The product being viewed.
ga('ec:addProduct', {                 // Provide product details in an productFieldObject.
  'id': 'P67890',                     // Product ID (string).
  'name': 'YouTube Organic T-Shirt',  // Product name (string).
  'category': 'Apparel/T-Shirts',     // Product category (string).
  'brand': 'YouTube',                 // Product brand (string).
  'variant': 'gray',                  // Product variant (string).
  'position': 2                       // Product position (number).
});

ga('ec:setAction', 'detail');       // Detail action.

Avaliação de transações

Avalie uma transação por meio do comando ec:setAction e com a configuração do tipo de ação como purchase. Os detalhes no nível da transação, como a receita total, impostos e envio, são fornecidos em um actionFieldObject:

ga('ec:addProduct', {               // Provide product details in an productFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'black',               // Product variant (string).
  'price': '29.20',                 // Product price (currency).
  'coupon': 'APPARELSALE',          // Product coupon (string).
  'quantity': 1                     // Product quantity (number).
});

ga('ec:setAction', 'purchase', {          // Transaction details are provided in an actionFieldObject.
  'id': 'T12345',                         // (Required) Transaction id (string).
  'affiliation': 'Google Store - Online', // Affiliation (string).
  'revenue': '37.39',                     // Revenue (currency).
  'tax': '2.85',                          // Tax (currency).
  'shipping': '5.34',                     // Shipping (currency).
  'coupon': 'SUMMER2013'                  // Transaction coupon (string).
});

Um actionFieldObject precisa ter um valor id se o tipo de ação for purchase ou refund. Todos os outros valores são opcionais e não precisam ser definidos.

Avaliação de reembolsos

Para reembolsar uma transação inteira, defina uma ação refund e forneça o ID da transação:

// Refund an entire transaction.
ga('ec:setAction', 'refund', {
  'id': 'T12345'    // Transaction ID is only required field for full refund.
});

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

Para avaliar um reembolso parcial, defina uma ação refund e especifique o ID da transação, os IDs dos produtos e as quantidades de produto a serem reembolsadas:

// Refund a single product.
ga('ec:addProduct', {
  'id': 'P12345',       // Product ID is required for partial refund.
  'quantity': 1         // Quantity is required for partial refund.
});

ga('ec:setAction', 'refund', {
  'id': 'T12345',       // Transaction ID is required for partial refund.
});

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 do comportamento normalmente avaliado no site (por exemplo, não iniciado pelo usuário), convém enviar um evento sem interação. Isso evita que métricas como a taxa de rejeição, o tempo no site etc. sejam afetadas pelo evento. Por exemplo:

ga('send', 'event', 'Ecommerce', 'Refund', {'nonInteraction': 1});

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, defina nome fáceis de entender para as etapas no Relatório de funis de checkout. Para isso, defina as 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

Para cada etapa do checkout que você avalia, é necessário incluir um valor step. Esse valor é usado para mapear as ações de checkout para os 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 checkout no momento em que ela for avaliada, defina o campo option com uma ação de checkout para capturar essas informações. Por exemplo, o tipo de pagamento padrão do usuário (como "Visa").

Avaliação de uma etapa do checkout

Para avaliar uma etapa de checkout, use ec:addProduct para adicionar cada produto, e ec:setAction para indicar um checkout. Se aplicável, ec:setAction pode usar um actionFieldObject adicional para descrever a etapa de checkout com step e um option.

O exemplo a seguir mostra como avaliar a primeira etapa de um processo de checkout com um único produto, além de algumas informações adicionais sobre o tipo de pagamento:

ga('ec:addProduct', {               // Provide product details in an productFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'black',               // Product variant (string).
  'price': '29.20',                 // Product price (currency).
  'quantity': 1                     // Product quantity (number).
});

// Add the step number and additional info about the checkout to the action.
ga('ec:setAction','checkout', {
    'step': 1,
    'option': 'Visa'
});

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 de checkout durante a exibição de página inicial, 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.

Com o objetivo de avaliar uma opção de checkout, use ec:setAction para indicar um checkout_option 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 clicar a fim de passar para a próxima etapa no processo de checkout. Por exemplo:

// (On "Next" button click)
ga('ec:setAction', 'checkout_option', {'step': 2, 'option': 'FedEx'});

ga('send', 'event', 'Checkout', 'Option', {
    hitCallback: function() {
      // 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 do comércio eletrônico na seção "Administrador" da interface da Web do Google Analytics.O comércio eletrônico está ativado, e quatro rótulos de etapas do funil de checkout foram adicionados: 1.Revisar carrinho de compras, 2.Coletar informações de pagamento, 3.Confirmar detalhes de compra, 4.Recibo
Figura 1: configuração do comércio eletrônico – funil de checkout

Avaliação das promoções internas

O plug-in do 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 em outra seção de um website.

Impressões de promoções

As impressões de promoções internas geralmente são avaliadas quando os carregamentos de página são enviados com a exibição de página inicial por meio do comando ec:addPromo. Por exemplo:

ga('ec:addPromo', {               // Promo details provided in a promoFieldObject.
  'id': 'PROMO_1234',             // Promotion ID. Required (string).
  'name': 'Summer Sale',          // Promotion name (string).
  'creative': 'summer_banner2',   // Creative (string).
  'position': 'banner_slot1'      // Position  (string).
});

Cliques em promoções

Os cliques em promoções internas podem ser avaliados com a configuração da ação promo_click. Por exemplo:

// Identify the promotion that was clicked.
ga('ec:addPromo', {
  'id': 'PROMO_1234',
  'name': 'Summer Sale',
  'creative': 'summer_banner2',
  'position': 'banner_slot1'
});

// Send the promo_click action with an event.
ga('ec:setAction', 'promo_click');
ga('send', 'event', 'Internal Promotions', 'click', 'Summer Sale');

Por exemplo, para avaliar uma página de detalhes do produto com uma impressão e um clique na promoção, primeiro envie os dados do produto e da impressão com a exibição de página inicial. Em seguida, envie os dados do clique na promoção em um evento diferente:

// 1. Send product and impression data with pageview.

ga('ec:addProduct', {
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'position': 1,                    // Product position (number).
});

// The impression from the Related Products section.
ga('ec:addImpression', {
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel/T-Shirts',   // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'list': 'Related Products',       // Product list (string).
  'position': 1,                    // Product position (number).
});

ga('ec:setAction', 'detail');       // Detail action.

ga('send', 'pageview');             // Send the product data with initial pageview.

// 2. Send the promo click data when the promo click occurs.

// Call this function when promo click occurs.
function onPromoClick() {
  ga('ec:addPromo', {
    'id': 'PROMO_1234',
    'name': 'Summer Sale',
    'creative': 'summer_banner2',
    'position': 'banner_slot1'
  });

  // Send the promo_click action with an event.
  ga('ec:setAction', 'promo_click');
  ga('send', 'event', 'Internal Promotions', 'click', 'Summer Sale');
}

Um promoFieldObject precisa ter um valor name ou id. Todos os outros valores são opcionais e não precisam ser definidos.

Exemplo completo

Os snippets de código abaixo mostram como o ciclo de vida do comércio eletrônico de um único produto pode ser avaliado da impressão inicial à transação por meio do plug-in do comércio eletrônico avançado.

Avaliação de impressão de um produto

Neste exemplo, primeiro um usuário visualiza o produto em uma lista de resultados de pesquisa. Para avaliar essa impressão de produto, use o comando ec:addImpression e forneça os detalhes do produto em um impressionFieldObject:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addImpression', {
  'id': 'P12345',                   // Product details are provided in an impressionFieldObject.
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel/T-Shirts',
  'brand': 'Google',
  'variant': 'black',
  'list': 'Search Results',
  'position': 1                     // 'position' indicates the product position in the list.
});

ga('ec:addImpression', {
  'id': 'P67890',
  'name': 'YouTube Organic T-Shirt',
  'category': 'Apparel/T-Shirts',
  'brand': 'YouTube',
  'variant': 'gray',
  'list': 'Search Results',
  'position': 2
});

ga('send', 'pageview');              // Send product impressions with initial pageview.

Avaliação do clique em um produto

Em seguida, o usuário manifesta interesse nesse produto específico ao clicar na lista de produtos para ver mais detalhes.

Para avaliar esse clique no produto, use ec:addProduct e ec:setAction:

// Called when a link to a product is clicked.
function onProductClick() {
  ga('ec:addProduct', {
    'id': 'P12345',
    'name': 'Android Warhol T-Shirt',
    'category': 'Apparel',
    'brand': 'Google',
    'variant': 'black',
    'position': 1
  });
  ga('ec:setAction', 'click', {list: 'Search Results'});

  // Send click with an event, then send user to product page.
  ga('send', 'event', 'UX', 'click', 'Results', {
    hitCallback: function() {
      document.location = '/product_details?id=P12345';
    }
  });
}

Dessa forma, o link do produto poderia ser implementado assim:

<a href="/next-page.html"
   onclick="onProductClick(); return !ga.loaded;">Android Warhol T-Shirt</a>

Avaliação de exibição de detalhes de um produto

Depois de clicar n a lista de produtos, o usuário visualiza a página de detalhes do produto

Para avaliar essa visualização de detalhes do produto, use ec:addProduct e ec:setAction para especificar uma ação detail:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black'
});

ga('ec:setAction', 'detail');

ga('send', 'pageview');       // Send product details view with the initial pageview.

Avaliação de uma adição ou remoção do carrinho de compras

O usuário demonstra a intenção de comprar o item ao adicioná-lo a um carrinho de compras.

Para avaliar a adição ou remoção de um produto do carrinho de compras, use ec:addProduct e defina o tipo add ou remove:

// Called when a product is added to a shopping cart.
function addToCart(product) {
  ga('ec:addProduct', {
    'id': product.id,
    'name': product.name,
    'category': product.category,
    'brand': product.brand,
    'variant': product.variant,
    'price': product.price,
    'quantity': product.qty
  });
  ga('ec:setAction', 'add');
  ga('send', 'event', 'UX', 'click', 'add to cart');     // Send data using an event.
}

Avaliação do processo de checkout

Agora o usuário está pronto para começar o processo de checkout, que no exemplo inclui duas etapas, cada uma em uma página diferente:

  1. Adicionar detalhes de pagamento (payment.html).
  2. Adicionar detalhes de envio (shipping.html).

Se aplicável, verifique se você configurou um funil de checkout adequadamente em "Administrador" na interface da Web, em Configurações do comércio eletrônico. Por exemplo:

Configurações do comércio eletrônico na seção "Administrador" da interface da Web do Google Analytics.O comércio eletrônico está ativado e w rótulos de etapas do funil de checkout foram adicionados: 1.Detalhes de pagamento e 2.Detalhes de envio
Figura 2: configuração do comércio eletrônico - funil de checkout

Etapa 1: pagamento

Para avaliar a primeira etapa do checkout, use ec:addProduct para adicionar cada produto ao carrinho de compras e ec:setAction para indicar um checkout. ec:setAction usa um actionFieldObject para descrever a etapa do checkout com um número e informações adicionais sobre o tipo de pagamento padrão do usuário que foi incluído por meio do campo option:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

/**
 * Called when the user begins the checkout process.
 * @param {Array} cart An array representing the user's shopping cart.
 */
function checkout(cart) {
  for(var i = 0; i < cart.length; i++) {
    var product = cart[i];
    ga('ec:addProduct', {
      'id': product.id,
      'name': product.name,
      'category': product.category,
      'brand': product.brand,
      'variant':  product.variant,
      'price': product.price,
      'quantity': product.qty
    });
  }
}

// In the case of checkout actions, an additional actionFieldObject can
// specify a checkout step and option.
ga('ec:setAction','checkout', {
    'step': 1,            // A value of 1 indicates this action is first checkout step.
    'option': 'Visa'      // Used to specify additional info about a checkout stage, e.g. payment method.
});
ga('send', 'pageview');   // Pageview for payment.html

Etapa 2: envio

Para avaliar a segunda etapa do checkout, use ec:addProduct para adicionar cada produto ao carrinho de compras e ec:setAction para indicar um checkout. Neste caso, não temos informações adicionais sobre a opção de envio selecionada quando a exibição de página inicial é enviada. Assim, esse dado precisa ser enviado separadamente por meio do ec:setAction para indicar um checkout_option.

Measure checkout step 2:
ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

/**
 * Called when the user begins the checkout process.
 * @param {Array} cart An array representing the user's shopping cart.
 */
function checkout(cart) {
  for(var i = 0; i < cart.length; i++) {
    var product = cart[i];
    ga('ec:addProduct', {
      'id': product.id,
      'name': product.name,
      'category': product.category,
      'brand': product.brand,
      'variant':  product.variant,
      'price': product.price,
      'quantity': product.qty
    });
  }
}

ga('ec:setAction','checkout', {'step': 2});
ga('send', 'pageview');     // Pageview for shipping.html

// Called when user has completed shipping options.
function onShippingComplete(stepNumber, shippingOption) {
  ga('ec:setAction', 'checkout_option', {
    'step': stepNumber,
    'option': shippingOption
  });

  ga('send', 'event', 'Checkout', 'Option', {
     hitCallback: function() {
       // Advance to next page.
     }
  });
}

Dessa forma, o formulário poderia ser implementado assim:

<a href="/next-page.html"
   onclick="onShippingComplete(2, 'FedEx'); return !ga.loaded;">Continue</a>

Avaliação de uma transação

Por fim, o usuário conclui o processo de pagamento e envia a compra.

Para avaliar a venda de um ou mais produtos, use ec:addProduct para adicionar cada produto e ec:setAction para especificar uma purchase. As informações no nível da transação, como a receita total, impostos etc., podem ser especificadas por meio de um actionFieldObject. Por exemplo:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black',
  'price': '29.20',
  'quantity': 1
});

// Transaction level information is provided via an actionFieldObject.
ga('ec:setAction', 'purchase', {
  'id': 'T12345',
  'affiliation': 'Google Store - Online',
  'revenue': '37.39',
  'tax': '2.85',
  'shipping': '5.34',
  'coupon': 'SUMMER2013'    // User added a coupon at checkout.
});

ga('send', 'pageview');     // Send transaction data with initial pageview.

Especificação de moedas locais

Por padrão, você pode configurar uma moeda global comum para todas as transações e itens por meio da interface de gerenciamento do Google Analytics na Web. A moeda global é automaticamente usada para todos os itens e transações. Para websites que realizam transações em várias moedas, o plug-in de comércio eletrônico permite que você especifique a moeda local da operação.

É necessário especificar a moeda local de acordo com o padrão ISO 4217. Leia o documento Referência de códigos de moedas para uma lista completa de moedas de conversão suportadas.

Moedas locais são especificadas usando a propriedade do rastreador currencyCode. Por exemplo, este rastreador enviará valores de moeda em Euros:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('set', 'currencyCode', 'EUR'); // Set tracker currency to Euros.

ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black',
  'price': '21.89',
  'quantity': 1
});

ga('ec:setAction', 'purchase', {
  id: 'T12345',
  affiliation: 'Google Store - Online',
  revenue: '28.03',
  tax: '2.14',
  shipping: '4.00',
  coupon: 'SUMMER2013'
});

ga('send', 'pageview');