Event Tracking no Magento

Monitorar páginas na internet é um procedimento comum que ajuda no desenvolvimento / usabilidade / portabilidade / navegação / interação / acessibilidade, etc, etc, etc.

Ou seja, tudo que você faz enquanto visita um site pode ser observado e registrado. E o google analytics permite que desenvolvedores preparem o código para monitorar até mesmo ações on-page – que não submetem url.

E o nome disso é Event Tracking (ver site oficial). Para que você possa usar este recurso no Magento, primeiro você deve habilitar o módulo do google analytics no seu sistema como mostrado no post: Estatísticas com Google Analytics.

A importância

Nos relatórios de monitoramento do google, existe uma palavra chamada “taxa de rejeição“. Uma “rejeição” é quando a pessoa entra no seu site e na sequência deixa o site sem navegar por ele, desconsiderando quaisquer ações que o usuário tenha realizado no site.

E como sabemos, existem muitas ações de conversão que podem ser realizadas em uma única página, e que são ignoradas pelo analytics padrão, aumentando assim a taxa de rejeição do seu site. Alguns exemplos de ações que poderiam ser monitoradas:

- Assistir um vídeo
- Entrar em contato (formulários que utilizam ajax)
- Chat online
- Download de arquivos
- Curtir um página ou "tuitar"
- Jogar (arquivos em flash)

Então existe muita coisa acontecendo na sua loja, e que você não está monitorando, e se não sabe o que está acontecendo, como pode tomar decisões estratégicas que definem o rumo da sua empresa!?

A estrutura

Primeiro é fundamental que você tenha o google analytics instalado na sua loja conforme mencionado no início do post. Isso irá carregar um arquivo chamado ga.js nas suas páginas.

Feito isso você pode usar o método:

_trackEvent(category, action, opt_label, opt_value, opt_noninteraction)

E para usar este método você deve fazer um push no código do analytics informando o tipo de rastreamento que deseja gravar. Exemplo:

_gaq.push(['_trackEvent', 'Videos', 'Play', 'Apresentando o blog']);

Normalmente este código é disparado através de algum evento no html, como um link, por exemplo:

Assistir

E ao usar o push e informar o evento “_tranckEvent“, então você tem os parâmetros para preencher:

category (obrigatório) – Palavra que descreve o evento principal, algo como “Cálculo de Frete”, “Carrinho de Compras”, “Comparar Produtos”, “Contato”.

action (obrigatório) – Descrevem ações que os usuários tomam em determinado evento. Seguindo os exemplos acima poderia ser algo como “Selecionou Sedex”, “Retirou Produto do Carrinho”, “Limpou o formulário de contato sem enviar”.

opt_label (opcional) – Seriam informações adicionais sobre a ação tomada. Por exemplo, se você oferece cálculo de frete em diversas páginas, como na página do produto e no checkout, o label poderia ser “página do produto” ou “tela de checkout”. Mesma coisa quando ele adicionar um produto ao carrinho (ação), ele adicionou (label) usando a “página de catálogo”, a “página do próprio produto”, ou usando a “lista de favoritos”.

opt_value (opcional) – Este campo serve como informação extra ao campo opt_label. Caso você queira armazenar algum tipo de informação numérica (inteiro). Então infelizmente não podemos usar este campo para armazenar o cep calculado, ou o valor do produto que foi retirado do carrinho. No momento não vejo como utilizar este campo de forma útil.

opt_noninteraction (opcional) – Um campo do tipo (true/false), que serve para um controle de taxa de rejeição diferenciado. Seria como monitorar um evento sem importância no processo de interação com a página.

Vamos ao Magento

Para exemplificar o funcionamento de toda essa teoria no Magento vamos adicionar um Event Tracking ao botão comprar. Então abra o arquivo:

app > design > frontend > default > default > template > catalog > product > list.phtml

E o arquivo:

app > design > frontend > default > default > template > catalog > product > view > addtocart.phtml

Se não encontrar, faça uma cópia dos arquivos em base/default para default/default, ou para seu template/tema.

Ambos arquivos possuem o botão comprar, sendo que o list.phtml possui dois botões – um para o modo lista e outro para o modo grade.

No arquivo addtocart.phtml altere o código do button para:

<button type="button" title="" class="button btn-cart" onclick="_gaq.push(['_trackEvent', 'Adicionar Produto', 'Tela de Detalhes do Produto', 'getName()?>']); productAddToCartForm.submit(this)">

E no arquivo list.phtml altere os dois códigos button’s para:

<button type="button" title="__('Add to Cart') ?>" class="button btn-cart" onclick="_gaq.push(['_trackEvent', 'Adicionar Produto', 'Tela de Categorias - Modo Lista', 'getName()?>']); setLocation('getAddToCartUrl($_product) ?>')">__('Add to Cart') ?>

e

<button type="button" title="__('Add to Cart') ?>" class="button btn-cart" onclick="_gaq.push(['_trackEvent', 'Adicionar Produto', 'Tela de Categorias - Modo Grade', 'getName()?>']); setLocation('getAddToCartUrl($_product) ?>')">__('Add to Cart') ?>

Veja que nos 3 (três) exemplos foi mantido a mesma category (“Adicionar Produto“), pois trata-se de um evento em comum. Mas em action existe uma pequena diferença (“Tela de Detalhes do Produto“, “Tela de Categorias – Modo Lista“, “Tela de Categorias – Modo Grade“) que indica o local onde ocorreu a ação.

Fiz dessa forma para poder aproveitar o campo opt_label e informar o nome do produto que foi adicionado ao carrinho, usando então código php dentro do javascript “$_product->getName()“.

Continua…

Esse assunto não termina aqui. Isso foi apenas uma pequena demonstração do que pode ser feito em termos de monitoramento de páginas.

A forma como você utiliza os campos do _trackEvent são totalmente livres à sua imaginação e necessidades administrativas.

A maneira como você implementa isso no código também pode ter uma variedade incrível de soluções e informações dinâmicas.

Cabe a você criar as regras, implementar, e depois ver os resultados no seu painel de controle do google analytics, no menu “Conteúdo -> Eventos“.

Lembrando que a informação não vale nada se você não sabe o que fazer com ela. Por isso estude sempre, ou então procure a ajuda de profissionais na área. Eu posso indicar os profissionais em gerenciamento de métricas da Bull Marketing – e você pode falar que foi o Mario SAM quem indicou. 😉

Sucesso!