Como adicionar Analytics de Comércio Eletrônico no Magento

O google fornece diversas ferramentas gratuitas para que webmasters, gestores, e publicitários possam tirar proveito máximo de tudo que acontece na internet.

Imagine que você anuncie seus produtos usando links patrocinados do google adwords. Como saber quais cliques estão gerando vendas? Qual produto converte mais? Qual o mais lucrativo?

Tudo isso pode ser mensurado usando o google analytics, desde que você habilite o sistema – como mostrado abaixo.

Acompanhamento de Ecommerce

Uma vez que você tenha uma conta no google analytics e habilitado seu módulo no Magento, volte na sua conta analytics e clique no menu “Administrador“, na sequência clique em “Visualizar Configurações“.

Habilitar Acompanhamento

Basta selecionar o valor monetário padrão do seu sistema (R$ – Reais), e logo abaixo marcar a opção “Ativado” em acompanhamento de comércio eletrônico.

Com isso já será possível acompanhar as suas vendas pelo google analytics. Para saber quais anúncios do adwords estão se convertendo em vendas é preciso associar sua conta do analytics com a conta do adwords.

Associar Analytics ao Adwords

Você encontra essa configuração logo abaixo do acompanhamento de comércio eletrônico.

Alterações no Magento

Depois que você habilitou o acompanhamento de comércio eletrônico no google analytics, o que é preciso alterar no código do Magento?

NADA

Absolutamente nada, o Magento já está pronto para atender as configurações avançadas do google analytics na captura dos dados (pedidos e produtos).

Por isso, se o seu sistema não estiver enviando os dados de conversão de vendas para o analytics é muito provável que a página de “pedido realizado com sucesso” tenha sido alterada por algum módulo de pagamento ou mesmo o seu tema customizado tenha retirado o código de acompanhamento.

Caso seja necessário, ou caso você tenha curiosidade, vejamos abaixo como o sistema se preparou para enviar estes dados.

3 em 1

Temos 3 (três) arquivos no Magento que reproduzem este resultado – isso a partir da versão 1.7.x. O primeiro deles é o googleanalytics.xml:

app > design > frontend > base > default > layout > googleanalytics.xml

Esse é o arquivo que constrói o leiaute da página, então esse é o XML que aponta quais arquivos serão usados, veja em template=”googleanalytics/ga.phtml”. Este arquivo fica localizado em:

app > design > frontend > base > default > template > googleanalytics > ga.phtml

Ao analisar o código você encontra a seguinte chamada:

_getOrdersTrackingCode() ?>

Logo, esse método que fica definido no block type=”googleanalytics/ga” deve ser executado sempre que um pedido for realizado.

app > code > core > Mage > GoogleAnalytics > Block > Ga.php

E finalmente, dentro desta classe encontramos o método informado lá no phtml:

protected function _getOrdersTrackingCode() {
    $orderIds = $this->getOrderIds();
    if (empty($orderIds) || !is_array($orderIds)) {
        return;
    }
    $collection = Mage::getResourceModel('sales/order_collection')->addFieldToFilter('entity_id', array('in' => $orderIds));
    $result = array();
    foreach ($collection as $order) {
        if ($order->getIsVirtual()) {
            $address = $order->getBillingAddress();
        } else {
            $address = $order->getShippingAddress();
        }
        $result[] = sprintf("_gaq.push(['_addTrans', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s']);",
        $order->getIncrementId(),
        $this->jsQuoteEscape(Mage::app()->getStore()->getFrontendName()),
        $order->getBaseGrandTotal(),
        $order->getBaseTaxAmount(),
        $order->getBaseShippingAmount(),
        $this->jsQuoteEscape(Mage::helper('core')->escapeHtml($address->getCity())),
        $this->jsQuoteEscape(Mage::helper('core')->escapeHtml($address->getRegion())),
        $this->jsQuoteEscape(Mage::helper('core')->escapeHtml($address->getCountry()))
        );
    foreach ($order->getAllVisibleItems() as $item) {
        $result[] = sprintf("_gaq.push(['_addItem', '%s', '%s', '%s', '%s', '%s', '%s']);",
        $order->getIncrementId(),
        $this->jsQuoteEscape($item->getSku()), $this->jsQuoteEscape($item->getName()),
        null, // there is no "category" defined for the order item
        $item->getBasePrice(), $item->getQtyOrdered()
        );
        }
        $result[] = "_gaq.push(['_trackTrans']);";
    }
    return implode("\n", $result);
}

Para entender o que o código acima está fazendo, leia o procedimento indicado na página oficial do google analytics: http://code.google.com/apis/analytics/docs/gaJS/gaJSApiEcommerce.html#_gat.GA_Tracker_._addTrans

Acompanhamentos

Caso você ainda não tenha o google analytics habilitado no seu sistema, leia o post: Google Analytics no Magento, onde é possível monitorar o movimento da sua loja virtual.

Leia também o post: Event Tracking no Magento, que são configurações avançadas para monitorar as ações que acontecem na navegação (sem submit).

Veja também uma explicação do Google Brasil sobre o acompanhamento de comércio eletrônico:

E nunca mais tome decisões no achômetro.

Sucesso!

O Autor

Mario SAM

Desenvolvedor Magento com certificação M1 Developer e M1 FrontEnd Developer. Graduado em Web Design e Programação, pós-graduado em Gestão de Projetos e TI. Não sou matemático mas estou aqui para somar.