Avaliação de comércio eletrônico

Neste guia, descrevemos como coletar dados de comércio eletrônico usando a analytics.js.

Visão geral

Com a avaliação de comércio eletrônico, você pode avaliar o número de transações e a receita gerada pelo seu site. Em um site de comércio eletrônico comum, depois que um usuário clica no botão "Comprar" no navegador, as informações da compra 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 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 texto Sim O código da transação. (por exemplo, 1234)
affiliation texto Não A loja ou afiliação a partir da qual ocorreu essa transação (por exemplo, Acme Modas).
revenue moeda Não Especifica a receita total ou o total geral associado à 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.
shipping moeda Não Especifica o custo total de envio da transação (por exemplo, 5).
tax moeda Não Especifica os tributos totais 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 texto Sim O código da transação. Esse ID é o que vincula os itens às transações a que pertencem (por exemplo, 1234).
name texto Sim O nome do item (por exemplo, Coelhinhos rosa fofos).
sku texto Não Especifica a SKU ou código do item (por exemplo, SKU47).
category texto Não A categoria a que o item pertence (por exemplo, Brinquedos de festa).
price moeda Não O preço individual unitário de cada item (por exemplo, 11,99).
quantity número inteiro Não A quantidade de unidades adquiridas na transação. Se um valor fracionado for informado nesse campo (por exemplo, 1,5), ele será arredondado para o valor inteiro mais próximo.

Implementação

Geralmente, a implementação da avaliação de comércio eletrônico é feita depois que o usuário conclui o processo de finalização de compra. 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 analytics.js, a avaliação de comércio eletrônico não é fornecida na biblioteca padrão, mas como um módulo de plug-in que precisa ser carregado antes do uso.

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 do rastreador e antes de usar qualquer funcionalidade específica de comércio eletrônico.

Depois de carregado, alguns comandos novos específicos da avaliação 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 eles de uma só vez.

Para isso, 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 dados ao 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. Depois da execução dele, o carrinho de compras é limpo e fica pronto para enviar dados de uma nova transação. Se um comando ecommerce:send foi emitido anteriormente, só serão enviados novos dados.

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

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.

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 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 a página de agradecimento usando um mecanismo de modelo do servidor. Nesse caso, você adicionaria o código de avaliação 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 desse 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'=>'Sandals', '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 pela 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ê adicionaria a lógica PHP adicional para produzir os dados da transação e do item de forma dinâmica:

<!-- 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 pela 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). Então:

$-55.00

se tornará:

-55.00