DataFirefly Google Tag Manager Pro: guia completo
Instalar, configurar e explorar o seguimento GTM premium para WooCommerce: dataLayer GA4 ecommerce, gerador de contentor Tag Pilot, ligações multiplataforma, server-side Meta CAPI e GA4 Measurement Protocol, Consent Mode v2 e modo pixel direto.
Apresentação e pré-requisitos
O DataFirefly Google Tag Manager Pro envia um dataLayer GA4 ecommerce completo a partir da sua loja WooCommerce e permite gerar, com um clique, um contentor Google Tag Manager pronto a importar, já ligado a esse dataLayer. O plugin trata também do seguimento server-side (Meta Conversions API, GA4 Measurement Protocol) com deduplicação automática, do Consent Mode v2 e de um modo de injeção direta dos pixels para as lojas que não usam GTM.
- WordPress 5.8 ou superior, testado até à versão 7.0.
- WooCommerce 7.0 ou superior, testado até à versão 9.6, compatível com HPOS e com os blocos Cart/Checkout.
- PHP 7.4 ou superior.
- Multilingue (FR/EN/ES/DE/IT), compatível com Polylang e WPML.
- Nenhum seguimento é emitido no back-office, nos feeds ou no customizer.
O plugin separa dois papéis: produz os dados (o dataLayer GA4) e ajuda a difundi-los (contentor GTM gerado, pixels diretos, eventos server-side). Escolhe o modo de difusão que lhe convier.
Idioma da interface. O pacote de traduções do plugin cobre FR/EN/ES/DE/IT e não inclui o português. Num back-office em português, os ecrãs de definições aparecem em inglês. Isto não afeta o seguimento: os nomes dos eventos GA4 e os dados enviados são idênticos, seja qual for o idioma do back-office.
Instalação
- Descarregue o ficheiro
datafirefly-gtm-pro-1.1.0.zipa partir da sua conta de cliente. - Na administração do WordPress, vá a Plugins > Adicionar novo > Carregar plugin e coloque o ficheiro.
- Clique em Ativar.
- Abra Tag Manager Pro no menu de administração para aceder às definições.
Na ativação, o plugin grava as suas definições por omissão. Pode depois indicar o contentor, as ligações e ativar o server-side separador a separador.
Separador Geral: contentor e dataLayer
Este separador controla a injeção do contentor e a forma do dataLayer:
- Identificador do contentor: o seu ID GTM no formato
GTM-XXXXXXX. Enquanto estiver vazio, nada é injetado do lado do GTM (o dataLayer e o modo direto continuam disponíveis). - Nome do dataLayer:
dataLayerpor omissão. Altere apenas se a sua instalação o exigir. - Colocação: head + body (noscript), apenas head ou apenas body.
- Prioridade de saída: normal ou alta (o contentor é escrito cedo no
head).
O seguimento nunca é emitido para os administradores nem para os utilizadores com perfis excluídos (separador Avançado), nem no back-office, nos feeds RSS ou no customizer.
Separador Ligações: as suas plataformas
Indique aqui os identificadores das plataformas que utiliza. Esta base alimenta simultaneamente o contentor GTM gerado, os pixels diretos e os eventos server-side. Deixe vazio o que não usar.
- Google Analytics 4: Measurement ID (
G-XXXXXXXXXX). - Google Ads: Conversion ID (
AW-XXXXXXXXX), etiqueta de conversão de compra, remarketing dinâmico (opcional). - Meta: Pixel ID, token da Conversions API, código de teste CAPI (opcional).
- TikTok: Pixel ID, token da Events API (opcional).
- Pinterest: Tag ID — Snapchat: Pixel ID — LinkedIn: Partner ID.
- Microsoft Advertising (UET): Tag ID — X: Pixel ID.
- Hotjar: Site ID — Microsoft Clarity: Project ID.
No fim do separador, a definição Difusão dos pixels determina o modo: através do Google Tag Manager (recomendado, importa o contentor gerado) ou injeção direta (o próprio plugin carrega os pixels).
Tag Pilot: gerar e importar o contentor GTM
O separador Tag Pilot constrói um contentor Google Tag Manager completo a partir das suas ligações e disponibiliza-o para descarregar. Gera, nomeadamente:
- a tag Google de configuração GA4 e uma tag de evento GA4 por cada evento ativado (com envio dos dados ecommerce a partir do dataLayer);
- o Conversion Linker, a conversão de compra e o remarketing dinâmico do Google Ads;
- o pixel Meta e os respetivos eventos padrão (ViewContent, AddToCart, InitiateCheckout, AddPaymentInfo, Purchase, Search);
- tags Custom HTML para TikTok, Pinterest, Snapchat, LinkedIn, Microsoft UET, X, Hotjar e Clarity;
- as Data Layer Variables e os acionadores de eventos personalizados correspondentes.
Para o importar:
- Clique em Descarregar o contentor GTM (.json).
- No Google Tag Manager, abra Administração > Importar contentor.
- Selecione o ficheiro JSON, escolha o seu espaço de trabalho e depois Juntar (mantém as tags existentes) ou Substituir.
- Pré-visualize e depois faça Enviar e publicar.
Num contentor já existente, prefira Juntar para não eliminar as suas outras tags.
Modo pixel direto (sem GTM)
Se não quiser depender do GTM, coloque a difusão em injeção direta no separador Ligações. O plugin passa a injetar os pixels de base (GA4, Meta e as restantes plataformas configuradas) e reencaminha os eventos ecommerce do dataLayer para Meta, TikTok, Pinterest, Snapchat e GA4. O mesmo dataLayer alimenta as duas abordagens.
Não ative o mesmo pixel em simultâneo através do GTM e em injeção direta: corre o risco de contar duas vezes. Escolha um único modo de difusão por plataforma.
Server-side: Meta CAPI e GA4 Measurement Protocol
No separador Server-side, ative o envio das compras diretamente a partir do seu servidor:
- Meta Conversions API: exige o Pixel ID e um token CAPI (separador Ligações). O evento Purchase é enviado com dados do cliente em hash SHA-256, os cookies
_fbp/_fbc, o endereço IP e o user-agent. - GA4 Measurement Protocol: exige o Measurement ID (Ligações) e um segredo de API (GA4 > Administrador > Fluxos de dados > Measurement Protocol).
O navegador e o servidor partilham o mesmo event_id determinista por encomenda (dfgtm.purchase.<id>). O Meta e o GA4 usam esse identificador para contar cada conversão apenas uma vez.
Os pedidos server-side são enviados de forma não bloqueante depois do pagamento, nos estados «em processamento», «concluída» ou «pagamento concluído», uma única vez por encomenda.
Dados pessoais. O envio server-side transmite ao Meta e ao Google dados do cliente em hash (e-mail, telefone, endereço IP). Declare esses tratamentos e esses destinatários na sua política de privacidade e não os ative sem consentimento publicitário, nos termos do RGPD e da Lei n.º 41/2004, sob supervisão da CNPD.
Consent Mode v2 e Enhanced Conversions
O separador Consent ativa o Consent Mode v2: são definidos estados de consentimento denied por omissão antes do carregamento do contentor, com âmbito EEE/Reino Unido, wait_for_update, URL passthrough e redação dos dados publicitários. Para atualizar o consentimento conforme a escolha do utilizador, ligue a sua barra de cookies à API JavaScript fornecida:
// Aceitar tudo
window.dfgtmConsent.grantAll();
// Recusar tudo
window.dfgtmConsent.denyAll();
// Atualização detalhada
window.dfgtmConsent.update({ ad_storage: 'granted', analytics_storage: 'granted' });
As Enhanced Conversions do Google Ads (separador GA4 Ecommerce) acrescentam dados do cliente em hash SHA-256 no evento de compra, para melhorar a atribuição.
Consent Mode não é conformidade legal. O Consent Mode v2 é uma exigência do Google para continuar a usar as suas plataformas publicitárias no EEE: transmite o estado do consentimento, mas não o recolhe. Continua a precisar de uma barra de cookies que obtenha consentimento prévio e informado, exigido pelo RGPD e pela Lei n.º 41/2004 (privacidade nas comunicações eletrónicas), com a CNPD como autoridade de controlo em Portugal. É a barra que chama window.dfgtmConsent.
Eventos GA4 ecommerce
O plugin envia os seguintes eventos ecommerce do GA4, cada um ativável individualmente, com objetos items completos (item_id a partir do SKU ou do ID, marca, categorias até 5 níveis, variante, preço, desconto):
view_item_list,view_item,select_itemadd_to_cart,remove_from_cart,view_cartbegin_checkout,add_shipping_info,add_payment_infopurchase(deduplicado: disparado uma única vez por encomenda, mesmo em caso de recarregamento),search
Hooks para programadores
O plugin expõe filtros nos pontos-chave para estender o comportamento sem alterar o núcleo:
dfgtm_export_container: alterar o contentor GTM gerado antes da codificação.dfgtm_meta_capi_payloadedfgtm_ga4_mp_payload: ajustar os payloads server-side.dfgtm_connections_registry: acrescentar ou alterar destinos.dfgtm_purchase_pushedfgtm_build_item: personalizar os dados de compra e a construção dos items.
FAQ e resolução de problemas
Não é injetado nada do lado do GTM
Verifique se o identificador do contentor (GTM-XXXXXXX) está preenchido no separador Geral e se não está autenticado com um perfil excluído. O dataLayer e o modo direto funcionam mesmo sem contentor GTM.
As conversões são contadas duas vezes no Meta
Confirme que não está a carregar o mesmo pixel pelo contentor GTM e em injeção direta ao mesmo tempo. O server-side e o navegador são deduplicados automaticamente pelo event_id, por isso não são fonte de duplicação.
O evento de compra não chega em server-side
Verifique se a opção correspondente está ativada no separador Server-side e se os identificadores exigidos estão preenchidos: Pixel ID + token CAPI para o Meta, Measurement ID + segredo de API para o GA4. O envio ocorre uma única vez por encomenda.
A tag GA4 não envia os dados ecommerce
No contentor gerado, as tags de evento GA4 leem os dados ecommerce a partir do dataLayer. Se construiu as suas tags manualmente, ative «Enviar dados de ecommerce» e escolha «dataLayer» como fonte.
Os valores são enviados em euros?
A moeda transmitida é a da encomenda WooCommerce. Numa loja portuguesa em euros, os eventos saem em EUR; numa loja multimoeda, cada evento leva a moeda usada no pagamento. Confirme que a moeda de reporte do GA4 está coerente com o que espera ver nos relatórios.
O que acontece na desinstalação?
Se a opção correspondente estiver ativada no separador Avançado, as definições e os metadados de seguimento das encomendas são eliminados. Caso contrário, são conservados para uma eventual reinstalação.