Todos os guias de integração

Guia de integração

Analytics no WordPress

Duas linhas no <head> do site, coladas por um plugin de cabeçalho ou pelo tema filho. Sem cookies — um passo a menos no banner da LGPD.

Antes de começar

  • Acesso de administrador ao painel do WordPress.
  • A site_key e o domínio em Allowed origins (com e sem www, se o site responder nos dois).

Instalação

  1. 1Opção 1: cole o snippet com o WPCode

    Instale o plugin gratuito WPCode (antigo "Insert Headers and Footers"). Vá em Code Snippets → Header & Footer, cole o snippet no campo Header e clique em Save Changes.

    <script src="https://cdn.jsdelivr.net/npm/@racoelho/analytics@0.2/dist/index.global.js"></script>
    <script>window.analytics = new Analytics.Analytics({ siteKey: 'YOUR_SITE_KEY' })</script>
  2. 2Opção 2: pelo functions.php do tema filho

    Se você prefere não instalar plugin, use o gancho wp_head. Faça isso num tema filho — o functions.php do tema principal é sobrescrito nas atualizações.

    wp-content/themes/seu-tema-filho/functions.php
    <?php
    // carrega o SDK no <head> de todas as páginas do site
    add_action('wp_head', function () {
      echo '<script src="https://cdn.jsdelivr.net/npm/@racoelho/analytics@0.2/dist/index.global.js"></script>';
      echo "<script>window.analytics = new Analytics.Analytics({ siteKey: 'YOUR_SITE_KEY' })</script>";
    });
  3. 3Limpe o cache

    Se o site usa plugin de cache (WP Rocket, LiteSpeed Cache, W3 Total Cache…) ou CDN, limpe o cache para as páginas saírem com o script novo.

Eventos e metas

Qualquer script do site pode chamar window.analytics. Dois casos comuns: formulários do Contact Form 7 e compras do WooCommerce. O window.analytics && evita erro se o SDK estiver bloqueado.

WPCode → Header & Footer → Footer
<script>
  // Contact Form 7: dispara quando a mensagem é enviada com sucesso
  document.addEventListener('wpcf7mailsent', function (event) {
    window.analytics && window.analytics.formSubmit(String(event.detail.contactFormId), 'contact')
  })
</script>
functions.php
<?php
// WooCommerce: página de pedido recebido
add_action('woocommerce_thankyou', function ($order_id) {
  $order = wc_get_order($order_id);
  if (!$order) return;
  printf(
    '<script>window.analytics && window.analytics.purchase(%s, %s, %s)</script>',
    wp_json_encode((string) $order->get_order_number()),
    wp_json_encode((float) $order->get_total()),
    wp_json_encode($order->get_currency())
  );
});

No painel, crie metas do tipo evento form_submit e purchase. Para páginas fixas (como /obrigado), use uma meta do tipo caminho — sem código. A URL de pedido do WooCommerce muda a cada pedido, por isso o evento.

Navegação entre páginas

Sites WordPress recarregam a página a cada clique, e cada carga conta a própria pageview. Não há nada a configurar.

Confira se está funcionando

  1. Abra o site publicado numa janela comum, sem bloqueador de anúncios.
  2. Nas ferramentas do navegador, aba Network, filtre por v1/i: deve aparecer um POST com status 200 em até 3 segundos (ou quando você sai da página).
  3. No painel, os eventos aparecem em cerca de 30 segundos.
  4. Abra o código-fonte da página (Ctrl+U) e procure por index.global.js — se não aparecer, o cache ainda está servindo a versão antiga.

Problemas comuns

Plugins de otimização quebraram o script
Plugins que adiam ou juntam JavaScript podem mudar a ordem das duas linhas. Exclua index.global.js e o script com new Analytics.Analytics da otimização ("delay/defer JS").
A requisição volta 403 (origin_not_allowed)
O domínio não está em Allowed origins nas configurações do site. Cadastre a origem exata — com https://, com e sem www, e endereços de teste como http://localhost:3000 se quiser medir em desenvolvimento.
Nenhuma requisição aparece na aba Network
O SDK respeita o Do Not Track por padrão: se o seu navegador envia DNT, nada é enviado. Teste em outro navegador ou perfil. Bloqueadores de anúncio também podem barrar o script.
As pageviews aparecem em dobro
O SDK foi inicializado duas vezes (por exemplo, o script colado no tema e também por um plugin). Mantenha uma única instância por página.

Crie sua conta e pegue a site_key

Grátis até 10 mil eventos por mês, sem cartão.

Criar conta grátis
Analytics no WordPress sem cookies: guia de instalação · Analisa