Visão geral

O plug-in do comércio eletrônico avançado da analytics.js permite avaliar as interações dos usuários com produtos em sites de comércio eletrônico durante a experiência de compra, incluindo: impressões, cliques, visualização de detalhes, adição de um item ao carrinho, início do processo de finalização da compra, transações e reembolsos.

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

Se você já implementou a avaliação do comércio eletrônico e quer usar o comércio eletrônico avançado, há duas opções principais:

Usar uma nova propriedade

Você pode adicionar outro rastreador a uma nova propriedade e codificar/ativar o comércio eletrônico avançado para ela. Consulte Como usar 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 da analytics.js precisam remover e substituir as referências pelo código do comércio eletrônico avançado.

Se você usa a ga.jsatualmente e quer mudar para o plug-in do comércio eletrônico avançado, terá primeiro que migrar para a analytics.js.

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:

Dados de impressões

Eles representam as informações de um produto que foi visualizado. Além disso, são representados por um impressionFieldObject e contêm os seguintes valores:

Chave Tipo de valor Obrigatório Descrição
id texto *Sim

O ID ou SKU do produto (por exemplo, P67890).

* É necessário definir um id ou name.

name texto *Sim

O nome do produto (por exemplo, camiseta do Android).

* É necessário definir um id ou name.

list texto Não A lista ou o conjunto ao qual o produto pertence (por exemplo, Resultados da pesquisa)
list_name texto Não A lista ou o conjunto ao qual o produto pertence (por exemplo, Resultados da pesquisa)
brand texto Não A marca associada ao produto (por exemplo, Google).
category texto Não A categoria a que 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 texto Não A variante do produto (por exemplo, preto).
position número inteiro Não A posição do produto em uma lista ou conjunto (por exemplo, 2).
list_position número inteiro Não A posição do produto em uma lista ou conjunto (por exemplo, 2).
price número Não O preço de um produto (por exemplo, 29,20).

Dados do produto

Eles são itens específicos que foram visualizados ou adicionados ao carrinho de compras etc. São representados por um productFieldObject e contêm os seguintes valores:

Chave Tipo de valor Obrigatório Descrição
id texto *Sim

O ID ou SKU do produto (por exemplo, P67890).

* É necessário definir um dos IDs ou name.

name texto *Sim

O nome do produto (por exemplo, camiseta do Android).

* É necessário definir um dos IDs ou name.

brand texto Não A marca associada ao produto (por exemplo, Google).
category texto Não A categoria a que 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 texto Não A variante do produto (por exemplo, preto).
price número Não O preço de um produto (por exemplo, 29,20).
quantity número inteiro Não A quantidade de um produto (por exemplo, 2).
coupon texto Não O código do cupom associado a um produto (por exemplo, PROMO_VERAO13).
position número inteiro Não A posição do produto em uma lista ou conjunto (por exemplo, 2).
list_position número inteiro Não A posição do produto em uma lista ou conjunto (por exemplo, 2).

Dados de promoções

Eles representam as informações de uma promoção que foi visualizada. Além disso, são representados por um promoFieldObject e contêm os seguintes valores:

Chave Tipo de valor Obrigatório Descrição
id texto *Sim

O ID da promoção (por exemplo, PROMO_1234).

* É necessário definir um dos id ou um nome.

name texto *Sim

O nome da promoção (por exemplo, Promoção de verão).

* É necessário definir um dos id ou um nome.

creative texto Não O criativo associado à promoção (por exemplo, verao_banner2).
creative_name texto Não O nome do criativo (por exemplo, verao_banner2).
position texto Não A posição do criativo (por exemplo, slot_banner_1).
creative_slot texto Não O nome do slot do criativo (por exemplo, slot_banner_1).

Dados da ação

Eles representam as informações sobre uma ação que ocorreu relacionada ao comércio eletrônico. Além disso, são representados por um actionFieldObject e contêm os seguintes valores:

Chave Tipo de valor Obrigatório Descrição
id texto *Sim

O código da transação (por exemplo, T1234).

* Obrigatório se o tipo de ação for purchase ou refund

affiliation texto Não A loja ou afiliação na qual a transação ocorreu (por exemplo, Google Store).
revenue número Não

Especifica a receita total ou a soma geral associada à transação (por exemplo, 11,99). Esse valor pode inclui frete, tributos ou outros ajustes na receita total que você quer considerar como parte dos cálculos da receita.

valor número Não Valor (ou seja, receita) associado ao evento.
tax número Não O total de impostos associados à transação.
shipping número Não O custo de envio associado à transação.
coupon texto Não O cupom de transação resgatado na transação.
list texto Não A lista à qual os produtos associados pertencem. Opcional.
items matriz Não Matriz que contém os produtos associados.
step número inteiro Não Um número que representa uma etapa no processo de finalização da compra. Opcional em ações de "checkout".
checkout_step número inteiro Não Um número que representa uma etapa no processo de finalização da compra.
option texto Não Campo adicional para ações checkout e checkout_option que podem descrever informações de opções na página de finalização da compra, como o método de pagamento selecionado.
checkout_option texto Não Opção de finalização da compra (ou seja, forma de pagamento selecionada).

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 Evento Descrição
click Um clique em um produto ou link do produto para um ou mais itens.
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.
select_content Um clique em um produto ou link do produto para um ou mais itens.
view_item Uma visualização dos detalhes do produto
add_to_cart A adição de um ou mais produtos a um carrinho de compras.
remove_from_cart A remoção de um ou mais produtos de um carrinho de compras.
begin_checkout O início do processo de checkout para um ou mais produtos.
set_checkout_option O envio de um valor de opção para determinada etapa da finalização de compra.
refund A venda de um ou mais produtos
view_refund O reembolso de um ou mais produtos
view_promotion 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 site com a biblioteca analytics.js.

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

Para reduzir o tamanho da analytics.js, o comércio eletrônico avançado não é fornecido na biblioteca padrão, em vez disso, ele é disponibilizado 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 das funcionalidades específicas do comércio eletrônico avançado.

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

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

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 finalização da compra de um produto.
  • Compras e reembolsos

Avaliação de impressões

As impressões de produtos são avaliadas usando o comando ec:addImpression. Os detalhes sobre eles são adicionados a 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 usando o comando ec:addProduct com um productFieldObject para adicionar detalhes do produto, e o comando ec:setAction para especificar a ação que está 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).
});

O productFieldObject precisa ter um valor de 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 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 usando o comando ec:setAction e definindo o tipo de ação como purchase. Os detalhes do nível da transação, como receita total, tributos e frete, 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 (number).
  '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 (number).
  'tax': '2.85',                          // Tax (number).
  'shipping': '5.34',                     // Shipping (number).
  'coupon': 'SUMMER2013'                  // Transaction coupon (string).
});

O actionFieldObject precisará ter um valor de 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 informe o código da transação:

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

Se não houver nenhuma transação correspondente, o hit refund não será processado.

Para avaliar um reembolso parcial, defina uma ação refund e especifique o código da transação, os IDs dos produtos e as quantidades do 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. Exemplo:

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

Avaliação do processo de finalização de compra

Para avaliar cada etapa do processo de finalização de compra, siga estas etapas:

  • Adicione o código para avaliar cada etapa do processo.
  • Se aplicável, adicione o código para analisar as opções de finalização de compra.
  • Como alternativa, defina nomes fáceis para as etapas no Relatório de funis de finalização da compra. Basta alterar as Configurações de comércio eletrônico na seção "Administrador" da interface da Web.

1. Avaliação das etapas de finalização da compra

Em cada etapa do processo, você precisará implementar o código correspondente para enviar os dados ao Google Analytics.

  • Campo step

    Inclua um valor step para cada etapa de finalização de compra avaliada. Esse valor é usado para estabelecer a correspondência entre as ações desse tipo e 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 finalização da 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 (por exemplo, Visa).

  • Avaliação de uma etapa da finalização da compra

    Ao avaliar uma etapa da finalização da compra, use ec:addProduct para cada produto e ec:setAction para indicar a ação correspondente. Se necessário, é possível utilizar um actionFieldObject adicional em ec:setAction para descrever a etapa com step e option.

    O exemplo a seguir mostra como avaliar a primeira etapa de um processo de finalização de compra com um único produto e 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 (number).
      '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 finalização da compra

Com as opções de finalização de compra, você pode avaliar informações adicionais sobre o estado dessa etapa. Isso é útil nos casos em que você avaliou uma etapa de finalização de compra durante a exibição da página inicial, mas as informações adicionais sobre a mesma etapa ficam disponíveis depois de o usuário definir uma opção. Por exemplo, o usuário seleciona um método de envio.

Para avaliar uma opção de finalização de compra, use ec:setAction para indicar um checkout_option e inclua 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 para passar à próxima etapa no processo de finalização da compra. 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 finalização da compra

Cada etapa do seu processo pode receber um nome descritivo que será usado nos relatórios. Para configurar esses nomes, visite 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 do comércio eletrônico para etiquetar cada etapa de finalização da compra a ser avaliada.

Configurações de comércio eletrônico na seção
Figura 1: Configuração do comércio eletrônico – Funil de finalização de compra

Avaliação de 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 com o objetivo de promover uma liquidação em outra seção do site.

Impressões da promoção

As impressões de promoções internas geralmente são avaliadas quando a página é carregada e enviadas com a visualização de página inicial usando o comando ec:addPromo. 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 da promoção

Os cliques nas promoções internas podem ser avaliados ao configurar a ação promo_click. 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 visualização de página inicial. Em seguida, envie os dados do clique na promoção em outro evento:

// 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');
}

O 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 de 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 da pesquisa. Para avaliar essa impressão de produto, use o comando ec:addImpression e forneça os detalhes do produto em 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 item específico ao clicar na lista de produtos para ver mais detalhes.

Para avaliar o clique dele, 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';
    }
  });
}

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 visualização de detalhes de um produto

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

Para avaliar a vista de detalhes do produto, especifique uma ação detail usando ec:addProduct e ec:setAction:

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 de produto do carrinho

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 de um 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 finalização da compra

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:

  • Adicionar detalhes de pagamento (payment.html).
  • Adicionar detalhes de envio (shipping.html)

Se aplicável, verifique se você configurou um funil de finalização de compra adequadamente em "Administrador" na interface da Web, em Configurações de comércio eletrônico. Exemplo:

Configurações de comércio eletrônico na seção
Figura 2: Configuração do comércio eletrônico – Funil de finalização de compra

Etapa 1: pagamento

Avalie a primeira etapa da finalização da compra usando ec:addProduct para cada produto no carrinho de compras e indique um checkout com ec:setAction. O ec:setAction utiliza um actionFieldObject para descrever a etapa de finalização de compra 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

Avalie a segunda etapa usando ec:addProduct para cada produto no carrinho de compras e indique uma finalização da compra com ec:setAction. Nesse caso, não temos informações adicionais sobre a opção de envio selecionada quando a visualização de página inicial é enviada. Sendo assim, ela será tratada separadamente usando o ec:setAction para indicar uma 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.
     }
  });
}

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.

Avalie a venda de um ou mais produtos usando ec:addProduct para adicionar cada produto e depois especifique uma purchase com ec:setAction. As informações do nível da transação, como receita total, impostos etc. podem ser especificadas por meio de um actionFieldObject. 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 pela interface da Web de gerenciamento do Google Analytics. A moeda global é automaticamente usada para todos os itens e transações. Em sites que utilizam várias moedas para realizar as transações, o plug-in do comércio eletrônico permite que você especifique a moeda local.

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 das moedas de conversão compatíveis.

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

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

ga('set', 'currencyCode', 'EUR'); // Set 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');