O monitoramento de conversão utilizando a tecnologia da Tail é dividido em duas partes:
Utilizada para carregar o framework da Tail dentro do website. Inclua este código em todas as páginas do seu website, de preferência dentro do <head> da página.
Note que você deve alterar este código para relacioná-lo com a conta do seu website. Não copie e cole esse código no seu site sem fazer as adaptações necessárias. Para isso, siga as instruções contidas logo após este exemplo.
<script type='text/javascript'>
var _ttconversion = _ttconversion || [];
_ttconversion.push(['_setAccount', 'TT-0000-0']);
_ttconversion.push(['_pageTracking']);
_ttconversion.push(['_enableServices']);
(function() {
var ts = document.createElement('script'); ts.type = 'text/javascript';
ts.async = true;
ts.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'd.tailtarget.com/conversion.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ts, s);
})();
</script>
Na linha 3, substitua o código TT-0000-0 pelo código da sua conta na Tail. Se você não sabe qual é este código, consulte com seu atendimento na Tail.
2 - Comandos de manipulação da API
Em páginas onde a tag JavaScript da Tail foi inserida, você pode incluir chamadas à API em qualquer parte do documento HTML. Isso faz com que os comandos chamados sejam processados pelo framework. O exemplo a seguir mostra uma chamada à API para associar a conta da Tail à página:
<script type="text/javascript">
_ttconversion.push(['_setAccount', 'TT-0000-0']);
</script>
Implementação
A tag JavaScript deve ser inserida preferencialmente entre as tags <head> e </head> de todas as páginas que serão monitoradas na propriedade.
O carregamento da tag de monitoramento da Tail é feito de modo assíncrono e não compromete a performance de exibição do website.
Os métodos de manipulação da API TailTarget podem ser incluídos entre as tags <script> </script> em qualquer parte do documento html, como mostra o exemplo a seguir:
<script type="text/javascript">
_ttconversion.push(['_setAccount', 'TT-0000-0']);
</script>
Mecanismo de “push” _ttconversion.push()
Toda a interação com a API, todos os comandos para a API, são passados dentro da função push na fila _ttconversion, e cada comando deve ser definido entre colchetes, sendo o primeiro elemento dentro dos colchetes o nome do método, e os demais os parâmetros enviados para o método.
<script type="text/javascript"> _ttconversion.push(['_nomeDoMétodo', 'parametro_1', 'parametro_2']); </script>
É possível enviar mais de um comando ao mesmo tempo para a API, bastando para isso separá-los por vírgula (,).
<script type="text/javascript"> _ttconversion.push( ['_nomeDoMétodo_1', 'parametro_1'] , ['_nomeDoMétodo_2', 'parametro_1', 'parametro_2'], ['_nomeDoMétodo_3', 'parametro_1'] ); </script>
Métodos de Manipulação da API
- _setAccount
Método obrigatório. Define o código da conta do cliente. Este código deve ser fornecido pela Tail e é único por cliente.
Parâmetro | Tipo | Obrigatório | Limite Caracteres | Descrição |
_setAccount | string | Sim | - | Identificação do método |
TT-0000-0 | string | Sim | - | Código de identificação da conta |
<script type="text/javascript"> _ttconversion.push(['_setAccount', 'TT-0000-0']); </script>
Note que se você já fez uma chamada a este método na inclusão da tag, não é necessário chamá-lo novamente.
- _enableServices
Método obrigatório. Habilita o funcionamento dos serviços de monitoramento. Deve ser chamado uma única vez após todos os outros métodos obrigatórios.
<script type="text/javascript">
_ttconversion.push(['_enableServices']);
</script>
Note que este método está contido na tag da Tail, e você não precisa chamá-lo novamente no restante do documento.
- _enableSingleRequest
Método opcional. Habilita o monitoramento via requisição única. Se habilitado, a requisição do monitoramento só será feita após o envio do comando _track.
<script type="text/javascript">
_ttconversion.push(['_enableSingleRequest']);
</script>
- _pageTracking
Método opcional. Habilita o mecanismo de rastreamento da página atual, este método pode ser chamado independentemente da existência de eventos na página. Este método é responsável por acionar o mecanismo de rastreamento das páginas dentro do site.
<script type="text/javascript">
_ttconversion.push(['_pageTracking']);
</script>
Note que este comando já está incluído na implementação da tag da Tail, e por isso todas as páginas que tiverem este código serão rastreadas por default. No entanto, se por algum motivo você não quiser que uma determinada página seja rastreada, você pode remover este comando da tag.
- _track
Método opcional. Dispara o mecanismo de monitoramento. Ao ser chamado envia todos os comandos da fila ao servidor, via chamada única. Pode ser chamado mais de uma vez.
Se a fila de comandos estiver vazia, ou o comando _enableSingleRequest não foi habilitado, o comando _track não tomará ação alguma.
<script type="text/javascript">
_ttconversion.push(['_track']);
</script>
- _delayed
Método opcional. Define que um ou mais eventos devem ser contabilizados apenas se o usuário ficar na página por pelo menos N segundos. Esse método pode ser chamado mais de uma vez, com eventos diferentes.
Parâmetro | Tipo | Obrigatório | Limite Caracteres | Descrição |
_delayed | string | Sim | - | Identificação do método |
_viewProduct | string | Sim | - | Identificação do evento |
15 | integer | Sim | - | Tempo em segundos |
Exemplo:
<script type="text/javascript"> _ttconversion.push(['_delayed', '_viewProduct', 15]); _ttconversion.push(['_delayed', '_bought', 5]); </script>
- Eventos de conversão
Eventos são métodos predeterminados que informam à API que uma certa ação ocorreu. Esses métodos possuem os seguintes parâmetros:
Parâmetro | Tipo | Obrigatório | Limite Caracteres | Descrição |
_nomeDoMetodo | string | Sim | - | Identificação do método |
codigoProduto | string | Sim | 30 | Código de identificação do produto/item |
quantidade | integer | Não | - | Quantidade |
descrição | string | Não | 30 | Descrição do produto/item |
grupo | string | Não | 30 | Grupo do produto/item |
Os métodos são compostos por uma lista de elementos, onde o primeiro deles representa o nome do método e os outros os parâmetros na ordem apresentada acima.
[‘_nomeDoMetodo’, ‘codigo’, ‘quantidade’, ‘descricao’, ‘grupo’]
É possível omitir um valor intermediário passando null como valor:
[‘_nomeDoMetodo’, ‘codigo’, ‘quantidade’, null, ‘grupo’]
-
- _viewProduct
Informa que um produto foi visto.
Exemplos:
Chamada simples:
<script type="text/javascript">
_ttconversion.push(['_viewProduct', 'sku-0123456']);
</script>
Chamada informando que o produto foi visto 2 vezes:
<script type="text/javascript">
_ttconversion.push(['_viewProduct', 'sku-0123456']);
</script>
Chamada informando a descrição e o grupo do produto:
<script type="text/javascript">
_ttconversion.push(['_viewProduct', 'sku-0123456', 2, "Sapato feminino de salto alto", "Sapatos"]);
</script>
-
- _addCart
Informa que um produto foi adicionado ao carrinho de compras.
Exemplos:
Chamada informando que um produto foi adicionado ao carrinho. Quantidade não é informada e por isso o default é 1:
<script type="text/javascript">
_ttconversion.push(['_addCart', 'sku-0123457']);
</script>
Chamada indicando que 3 unidades de um produto foram adicionadas ao carrinho:
<script type="text/javascript"> _ttconversion.push(['_addCart', 'sku-0123457', 3]); </script>
Chamada indicando a descrição e o grupo do produto adicionado ao carrinho:
<script type="text/javascript">
_ttconversion.push(['_addCart', 'sku-0123467', 3, 'Bota de cano alto modelo XYZ', 'Botas']);
</script>
-
- _removeCart
Informa que um produto foi removido do carrinho de compras.
Exemplos:
Chamada indicando que 1 unidade do produto foi removida do carrinho:
<script type="text/javascript">
_ttconversion.push(['_removeCart', 'sku-0123456']);
</script>
Chamada indicando que 3 unidades do produto foram removidas do carrinho:
<script type="text/javascript">
_ttconversion.push(['_removeCart', 'sku-0123456', 3]);
</script>
-
- _checkOut
Informa que o cliente atingiu a tela de checkout.
Exemplos:
Chamada indicando que uma unidade do produto chegou ao checkout:
<script type="text/javascript">
_ttconversion.push(['_checkOut', 'sku-0123456']);
</script>
Chamada indicando que 3 unidades do produto chegaram à tela de checkout:
<script type="text/javascript">
_ttconversion.push(['_checkOut', 'sku-0123456', 3]);
</script>
Chamada indicando a descrição e o grupo do produto que chegou à tela de checkout:
<script type="text/javascript">
_ttconversion.push(['_checkOut', 'sku-0123456', 1, "Sapato feminino de salto alto", "Sapatos"]);
</script>
-
- _bought
Informa que o cliente finalizou a compra de um produto.
Exemplos:
Chamada indicando que uma unidade do produto foi comprada:
<script type="text/javascript">
_ttconversion.push(['_bought', 'sku-0123456']);
</script>
Chamada indicando que 3 unidades do produto foram compradas:
<script type="text/javascript">
_ttconversion.push(['_bought', 'sku-0123456', 3]);
</script>
Chamada informando a descrição e grupo do produto comprado:
<script type="text/javascript">
_ttconversion.push(['_bought', 'sku-0123456', "Sapato feminino de salto alto", "Sapatos"]);
</script>
- Eventos especiais
-
- _size
Informa o tamanho de um determinado tipo de produto.
Parâmetro | Tipo | Obrigatório | Limite Caracteres | Descrição |
_size | string | Sim | - | Identificação do método |
tipoProduto | string | Sim | - | Tido do produto ex: sapato, camisa, tvs |
tamanho | string | Sim | - | Tamanho ex: p, m, g, 36, 37, único |
Exemplos:
Chamada indicando que a pessoa escolheu um sapato número 36:
<script type="text/javascript">
_ttconversion.push(['_size', 'sapato', '36']);
</script>
Chamada indicando que a pessoa escolheu uma camisa tamanho “m”:
<script type="text/javascript">
_ttconversion.push(['_size', 'camisa', 'm']);
</script>
- Identificação de canais
Permite monitorar a audiência segmentada por canais.
-
- _channel
Informa o nome do canal visualizado. Importante: para utilizar canais é necessário pedir a liberação de todos os canais que utilizados.
Parâmetro | Tipo | Obrigatório | Limite Caracteres | Descrição |
_channel | string | Sim | - | Identificação do método |
canal | string | Sim | 20 | Este identificador deve conter apenas letras e números /^_[A-Za-z0-9]{1,20}$/ |
Exemplo:
Chamada indicando que o canal esportes foi visualizado:
<script type="text/javascript">
_ttconversion.push(['_channel', 'esportes']);
</script>
- Conversão de viagens
-
- _flight
Informa que um evento relacionado a uma passagem ocorreu. O método _flight recebe um objeto com as informações da passagem.
Itens do objeto:
Chave | Valor | Tipo | Obrigatório | Limite Caracteres | Descrição |
stage | view checkout bought | string | Sim | - | Define o estágio em que a compra se encontra |
from | string | string | Sim | 10 | Define a origem da passagem |
to | string | string | Sim | 10 | Define o destino da passagem |
departing | yyyy-mm-dd | date | Sim | - | Define a data de partida |
returning | yyyy-mm-dd | date | Não | - | Define a data de retorno |
quantity | integer | Não | - | Define a quantidade de passagens |
Exemplo:
<script type="text/javascript">
var ticket = {
stage :'view',
from :'GRU',
to :'POA',
departing :'2014-11-13',
returning :'2014-11-21',
quantity : 1
};
</script>
Exemplo de chamada do método _flight:
<script type="text/javascript">
var ticket = {
stage :'view',
from :'GRU',
to :'SFO',
departing :'2014-11-13',
returning :'2014-11-21',
quantity : 1
};
_ttconversion.push(['_flight', ticket]);
</script>
- Conversão personalizada
Um evento de conversão personalizado deve ser utilizado apenas se o tipo de informação que irá monitorar não se enquadrar em alguma das opções anteriores.
-
- _customEvent
Define um evento personalizado, onde é possível enviar informações utilizando espaços reservados (slots). Existem 2 tipos de slots diferentes, um para cada tipo de dados. Cada slot é identificado por uma letra (referente ao tipo de dado utilizado) seguido de um número. Existem 5 slots disponíveis para cada tipo de dados, tendo como identificadores os números de 1 a 5.
Chave | Valor | Tipo | Obrigatório | Limite Caracteres | Descrição |
stage | view add checkout bought | string | Sim | - | Define o estágio em que a compra se encontra |
s1 | string | Não | - | Define o valor para o respectivo slot de texto | |
s2 | string | Não | - | Define o valor para o respectivo slot de texto | |
s3 | string | Não | - | Define o valor para o respectivo slot de texto | |
s4 | string | Não | - | Define o valor para o respectivo slot de texto | |
s5 | string | Não | - | Define o valor para o respectivo slot de texto | |
i1 | integer | Não | - | Define o valor para o respectivo slot numérico | |
i2 | integer | Não | - | Define o valor para o respectivo slot numérico | |
i3 | integer | Não | - | Define o valor para o respectivo slot numérico | |
i4 | integer | Não | - | Define o valor para o respectivo slot numérico | |
i5 | integer | Não | - | Define o valor para o respectivo slot numérico |
Exemplo de chamada do método _customEvent:
<script type="text/javascript">
var custom = {
stage :'view', // estágio do evento
s1 : 'carro', // tipo de busca (carro ou moto)
s2 : 'novo', // tipo de veículo (novo ou usado)
s3 : 'vermelho', // cor do veículo
i1 : 2012, // ano de fabricação
i2 : 2013, // ano do modelo
i3 : 45000, // valor
};
_ttconversion.push(['_customEvent', custom]);
</script>
No exemplo acima foram utilizados 3 slots de texto e 3 slots numéricos. Os slots não utilizados são omitidos no objeto.
Importante: existem apenas 5 slots para cada tipo de dados. Totalizando 10 slots disponíveis. Um slot deve sempre receber o mesmo tipo de dados, pois ele será utilizado posteriormente para filtros, relatórios, análises e geração de audiência personalizada (custom audience - CA) em sua conta na DMP.
Portanto, como no exemplo acima, se o slot de texto 3 (s3) foi utilizado para enviar a cor do veículo, ele sempre deverá ser utilizado para essa finalidade em todas as chamadas. Assim como o slot numérico 1 (i1) foi escolhido para enviar o ano de fabricação do veículo, ele sempre será utilizado para esse fim.
Lembrando ainda que tanto os slots de texto como os slots numéricos podem ser utilizados para a criação de regras de audiência personalizada, e se for necessário utilizar comparadores (menor, maior) em valores numéricos, eles devem ser enviados no slot numérico para funcionarem corretamente.
Monitorando o Pós Click em Campanhas
Os métodos de manipulação da API vistos acima permitem monitorar o comportamento dos usuários a partir do momento que eles estão dentro do site. Porém, para realizar um monitoramento a partir do click em uma determinada campanha, a fim de saber o caminho percorrido até uma conversão, é preciso adicionar algumas variáveis na query string do link de destino da campanha. Essas variáveis são compatíveis com as utilizadas pelo Google Analytics.
Parâmetro URL | Equivalente | Exemplo | Descrição |
tt_source | utm_source | Utilize este campo para identificar a origem da campanha (facebook, google, rede_de_afiliados) Ex.: tt_source=facebook | |
tt_medium | utm_medium | banner | Utilize este campo para identificar o tipo de mídia da campanha (super_banner, square, email, link_patrocinado, etc.) Ex.: tt_medium=super_banner |
tt_campaign | utm_campaign | produtoX | Utilize este campo para identificar uma promoção ou uma campanha específica. Ex.: tt_campaign=campanha_produto_x |
As variáveis que começam por “tt_” possuem prioridade sobre as variáveis que começam por “utm”. Isso possibilita, se necessário, utilizar dados diferentes na contabilização da Tail e do Google Analytics. Se desejar utilizar as mesmas informações tanto para Tail como para Google Analytics, é possível utilizar apenas as variáveis que começam por “utm_”.
Exemplo de utilização das variáveis em um link:
http://www.exemplo.com/link?tt_source=facebook&tt_medium=banner&tt_campaign=produtoX
Qualquer dúvida no processo, entre em contato conosco! Envie um email para: academy@tail.digital