Acompanhamento de comércio eletrônico

Este guia descreve como coletar dados de comércio eletrônico usando o analytics.js.

Visão geral

Com o acompanhamento de comércio eletrônico, é possível avaliar o número de transações e a receita que seu website gera.acompanhamento de comércio eletrônico Em um site de comércio eletrônico comum, depois que um usuário clica no botão "Comprar" no navegador, as informações de compra do usuário são enviadas para o servidor da Web, que realiza a transação. Se ela for bem-sucedida, o servidor redirecionará o usuário para uma página de agradecimento ou confirmação contendo os detalhes da transação e uma confirmação da compra. Você pode usar a biblioteca analytics.js para enviar os dados de comércio eletrônico a partir da página de agradecimento para o Google Analytics.

Existem dois tipos de dados de comércio eletrônico que você pode enviar usando o analytics.js: dados da transação e do item.

Dados da transação

Uma transação representa toda a transação que ocorre no seu site e contém os seguintes valores:

Chave Tipo de valor Obrigatório Descrição
id text Sim O ID da transação (por exemplo, 1234).
affiliation text Não A loja ou afiliação a partir da qual ocorreu essa transação (por exemplo, Acme Roupas).
revenue currency 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.
shipping currency Não Especifica o custo total de envio da transação (por exemplo, 5).
tax currency Não Especifica o imposto total da transação (por exemplo, 1,29).

Dados do item

Um item representa os produtos individuais que estavam no carrinho de compras e contém os seguintes valores:

Chave Tipo de valor Obrigatório Descrição
id text Sim O ID da transação. Esse ID é o que vincula os itens às transações a que pertencem (por exemplo, 1234).
name text Sim O nome do item (por exemplo, Coelhinhos rosa fofos).
sku text Não Especifica o SKU ou código do item (por exemplo SKU47).
category text Não A categoria a que o item pertence (por exemplo, Festa Brinquedos).
price currency Não O preço individual unitário de cada item (por exemplo, 11,99).
quantity integer Não A quantidade de unidades adquiridas na transação. Se um valor não inteiro é informado nesse campo (por exemplo, 1,5), ele é arredondado para o valor inteiro mais próximo.

Implementação

Geralmente, você implementa o acompanhamento de comércio eletrônico depois que o usuário conclui o processo de checkout. Isso normalmente ocorre na página de agradecimento. Quando você tiver os dados de comércio eletrônico e estiver pronto para enviá-los ao Google Analytics, precisará seguir algumas etapas:

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

Para reduzir o tamanho da biblioteca analytics.js, o acompanhamento de comércio eletrônico 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 de comércio eletrônico, use o seguinte comando:

ga('require', 'ecommerce');

Esse comando precisará ocorrer depois que você criar seu objeto de acompanhamento e antes de usar qualquer funcionalidade específica de comércio eletrônico.

Depois de carregado, alguns comandos novos específicos do acompanhamento de comércio eletrônico serão adicionados ao rastreador padrão.

Adição de uma transação

Após o carregamento do plug-in, ele cria um objeto de carrinho de compras transparente. Você pode adicionar dados da transação e do item ao carrinho de compras e, após a configuração completa, enviar todos os dados de uma só vez.

Para adicionar os dados da transação ao carrinho de compras, use o comando ecommerce:addTransaction:

ga('ecommerce:addTransaction', {
  'id': '1234',                     // Transaction ID. Required.
  'affiliation': 'Acme Clothing',   // Affiliation or store name.
  'revenue': '11.99',               // Grand Total.
  'shipping': '5',                  // Shipping.
  'tax': '1.29'                     // Tax.
});

Adição de itens

Em seguida, para adicionar itens ao carrinho de compras, use o comando ecommerce:addItem:

ga('ecommerce:addItem', {
  'id': '1234',                     // Transaction ID. Required.
  'name': 'Fluffy Pink Bunnies',    // Product name. Required.
  'sku': 'DD23444',                 // SKU/code.
  'category': 'Party Toys',         // Category or variation.
  'price': '11.99',                 // Unit price.
  'quantity': '1'                   // Quantity.
});

Envio de dados

Por fim, depois de configurar todos os seus dados de comércio eletrônico no carrinho de compras, envie-os para o Google Analytics usando o comando ecommerce:send:

ga('ecommerce:send');

Esse comando passa por todas as transações e itens do carrinho de compras e envia os respectivos dados para o Google Analytics. Após sua conclusão, o carrinho de compras é limpo e fica pronto para enviar dados de uma nova transação. Se um comando ecommerce:send anterior foi emitido, apenas novos dados de transação e item são enviados.

Limpeza de dados

Se for necessário limpar manualmente todas as transações e itens do carrinho de compras, use o seguinte comando:

ga('ecommerce:clear');

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 transação, bem como os produtos individuais.

É 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.

Para definir a moeda local de uma transação específica e todos os seus itens, só é necessário especificar a moeda da transação:

ga('ecommerce:addTransaction', {
  'id': '1234',
  'affiliation': 'Acme Clothing',
  'revenue': '11.99',
  'shipping': '5',
  'tax': '1.29',
  'currency': 'EUR'  // local currency code.
});

Por fim, também é possível especificar a moeda por item:

  ga('ecommerce:addItem', {
    'id': '1234',
    'name': 'Fluffy Pink Bunnies',
    'sku': 'DD23444',
    'category': 'Party Toys',
    'price': '11.99',
    'quantity': '1',
    'currency': 'GBP' // local currency code.
  });

Suporte a vários rastreadores

Você também poderá usar o plug-in de comércio eletrônico se tiver implementado vários rastreadores (nomeados) na sua página. O plug-in funciona exatamente da mesma forma que o rastreador padrão, exceto pelo formato, que é: trackerName.pluginName:method. Por exemplo, se você criou um rastreador chamado myTracker:

ga('create', 'UA-XXXXX-Y', 'auto', {'name': 'myTracker'});

Então, você carregaria o plug-in de comércio eletrônico desse rastreador nomeado usando:

ga('myTracker.require', 'ecommerce');

Em seguida, para enviar uma transação, é possível criar um objeto de transação e transmiti-lo ao rastreador nomeado da seguinte forma:

var transaction = {
  'id': '1234',                    // Transaction ID.
  'affiliation': 'Acme Clothing',  // Affiliation or store name.
  'revenue': '11.99',              // Grand Total.
  'shipping': '5' ,                // Shipping.
  'tax': '1.29'                    // Tax.
};

ga('myTracker.ecommerce:addTransaction', transaction);

Com essa sintaxe, é possível usar o objeto de transação em vários rastreadores.

Por fim, você enviaria os dados da transação da seguinte forma:

ga('myTracker.ecommerce:send');

Exemplo

A maioria dos sites de comércio eletrônico realiza transações no servidor, enquanto a biblioteca analytics.js envia dados para o Google Analytics a partir do navegador. Então, é necessário que haja um pouco de coordenação entre o servidor e o software cliente para que os dados de comércio eletrônico sejam enviados corretamente para o Google Analytics.

A maioria dos sites de comércio eletrônico processa sua página de agradecimento usando um mecanismo de modelo do servidor. Nesse caso, você adicionaria o código de acompanhamento de comércio eletrônico ao modelo do servidor e usaria a lógica do servidor para criar dinamicamente os valores de dados de comércio eletrônico na página final. Veja um exemplo da aparência do código em PHP.

No PHP, você normalmente teria uma representação dos dados de comércio eletrônico. Neste exemplo, os dados são armazenados em uma matriz associativa:

<?php
// Transaction Data
$trans = array('id'=>'1234', 'affiliation'=>'Acme Clothing',
               'revenue'=>'11.99', 'shipping'=>'5', 'tax'=>'1.29');

// List of Items Purchased.
$items = array(
  array('sku'=>'SDFSDF', 'name'=>'Shoes', 'category'=>'Footwear', 'price'=>'100', 'quantity'=>'1'),
  array('sku'=>'123DSW', 'name'=>'Sandles', 'category'=>'Footwear', 'price'=>'87', 'quantity'=>'1'),
  array('sku'=>'UHDF93', 'name'=>'Socks', 'category'=>'Footwear', 'price'=>'5.99', 'quantity'=>'2')
);
?>

A primeira etapa é criar uma lógica para transformar os dados de comércio eletrônico na string JavaScript exigida pelo analytics.js:

<?php
// Function to return the JavaScript representation of a TransactionData object.
function getTransactionJs(&$trans) {
  return <<<HTML
ga('ecommerce:addTransaction', {
  'id': '{$trans['id']}',
  'affiliation': '{$trans['affiliation']}',
  'revenue': '{$trans['revenue']}',
  'shipping': '{$trans['shipping']}',
  'tax': '{$trans['tax']}'
});
HTML;
}

// Function to return the JavaScript representation of an ItemData object.
function getItemJs(&$transId, &$item) {
  return <<<HTML
ga('ecommerce:addItem', {
  'id': '$transId',
  'name': '{$item['name']}',
  'sku': '{$item['sku']}',
  'category': '{$item['category']}',
  'price': '{$item['price']}',
  'quantity': '{$item['quantity']}'
});
HTML;
}
?>

Em seguida, na tag <script>, você acrescentaria a lógica PHP adicional para produzir dinamicamente os dados da transação e do item:

<!-- Begin HTML -->
<script>
ga('require', 'ecommerce');

<?php
echo getTransactionJs($trans);

foreach ($items as &$item) {
  echo getItemJs($trans['id'], $item);
}
?>

ga('ecommerce:send');
</script>

Após a conclusão da execução do script PHP, os dados da transação e do item exigidos pelo analytics.js são salvos na página. Depois que o JavaScript na página é processado no navegador, todos os dados de comércio eletrônico são enviados ao Google Analytics.

Tipos de moeda

É possível configurar o tipo de moeda padrão na interface de gerenciamento. Quando você envia os valores de moeda usando o analytics.js, eles representam o valor total de uma moeda.

Um ponto decimal pode ser usado como um delimitador entre o todo e a parte fracionária da moeda. A precisão é de até seis casas decimais. O exemplo a seguir é válido para um campo de moeda:

1000.000001

Depois que o valor é enviado para o Google Analytics, todo o texto é removido até o primeiro dígito, o caractere - ou . (decimal). Sendo assim:

$-55.00

se tornará:

-55.00