Google Tag Manager Data Layer — documentação

Como se instala o módulo, o que faz cada campo, como se importa o contêiner e como se sabe que um evento chegou de verdade ao Analytics.

Ver como Markdown

Instalação

Requisitos e instalação

Magento 2.4.x (Open Source ou Adobe Commerce), PHP de 8.1 a 8.5, Hyvä ou Luma. Um contêiner do Google Tag Manager, que é gratuito.

composer require codingrow/module-gtmdl
bin/magento module:enable Codingrow_Gtmdl
bin/magento setup:upgrade

Em modo production também setup:di:compile, setup:static-content:deploy e cache:flush. As credenciais do Composer chegam por email quando pede o módulo gratuito ou compra os eventos de compra.

Tudo se configura em Stores → Configuration → Codingrow Extensions → Google Tag Manager Data Layer, e cada opção pode ser diferente por store view: basta mudar o Scope no canto superior esquerdo.

Contêiner

CampoO que faz
EnableCom isto desligado a loja não gera o contêiner nem uma linha de data layer.
Container IDO seu contêiner, na forma GTM-XXXXXXX. Escrito de outra maneira é ignorado. Deixe vazio para encher o data layer sem carregar nenhum contêiner, que é o que quer quando o contêiner já é instalado por outra coisa.
Load the container only after cookie consentUsa o Cookie Restriction Mode do Magento. O data layer enche-se de qualquer forma, por isso quando o consentimento chega não se perde nada. Com o consentimento do Google activo, abaixo, já não se aplica.

Como se usa

Google Consent Mode v2. O estado inicial tem de ser declarado antes de o contêiner arrancar, por isso só o pode fazer quem carrega o contêiner. O interruptor tem três posições.

Declarar apenas o estado inicial é a correcta quando o consentimento já é gerido por uma extensão dedicada: o módulo declara tudo negado, e a sua extensão envia a atualização chamando

window.codingrowGtmdl.consent({
    ad_storage: 'granted',
    ad_user_data: 'granted',
    ad_personalization: 'granted',
    analytics_storage: 'granted'
});

Declarar o estado inicial e atualizá-lo deixa o módulo conceder o consentimento a partir do aviso de cookies do Magento. Essa posição requer o Cookie Restriction Mode do Magento ligado (Stores → Configuration → General → Web → Default Cookie Settings): com ele desligado nenhum cliente pode aceitar e o consentimento ficaria negado para sempre. Uma linha sob os campos diz qual das duas está realmente a acontecer, e nesse caso fica vermelha.

Como verificar que funciona. No painel de rede do navegador, os pedidos a google-analytics.com/g/collect levam um parâmetro gcs: vale G100 com o consentimento negado e G111 quando é concedido. Se mudar ao aceitar os cookies, o Consent Mode está a trabalhar.

Mais duas opções: ocultar os dados publicitários sem consentimento (enquanto o consentimento publicitário estiver negado, o Google não envia identificadores nas suas chamadas publicitárias) e passar o identificador de clique no URL (sem cookies, viaja de página em página). Ambas recomendadas.

Os catorze eventos

Um interruptor por evento. Os quatro básicos são gratuitos; os outros dez requerem a chave dos eventos de compra.

EventoQuandoNível
view_itempágina do produtogratuito
view_cartcarrinhogratuito
begin_checkoutcheckoutgratuito
purchasepágina de obrigado, da encomenda realgratuito
view_item_listcategoria e resultados de buscacompra
select_itemum clique num produto de uma listacompra
add_to_cartda linha real do carrinhocompra
remove_from_cartda linha real do carrinhocompra
searcho termo e quantos resultados deucompra
add_to_wishlisto produto adicionadocompra
add_shipping_infoo método de envio guardadocompra
add_payment_infoo método de pagamento guardadocompra
loginacesso do clientecompra
sign_upregisto do clientecompra

Neste grupo há mais duas opções: contar as encomendas criadas na administração (as encomendas introduzidas à mão não têm uma visita atrás, e contá-las falseia o custo por conversão) e só estes estados de encomenda, que restringe a compra aos estados que contam de verdade como venda.

Os eventos de envio e pagamento não dependem do checkout: nascem dentro do Magento quando o método é guardado, por isso funcionam no checkout padrão, em Hyvä, em Luma e nos que respondem numa rota própria. Os outros quatro são eventos de página: o módulo traz um pequeno ficheiro de layout por rota, e a assistência pode acrescentar um para um checkout que viva noutro lugar.

Contêiner para importar

Até o contêiner ter uma tag que leia o data layer, ao Analytics não chega nada. Preencha o ID de medição GA4 (o G-XXXXXXXXXX que está no Analytics, em Administrador → Fluxos de dados) e, se quiser também a conversão do Google Ads, o ID de conversão (os dígitos depois de AW-) e a etiqueta da sua ação de conversão de compra. Depois prima Descarregar o contêiner.

O ficheiro contém a tag de configuração GA4, a que encaminha os eventos de ecommerce, o conversion linker, as variáveis necessárias e — quando os dois campos do Google Ads estão preenchidos — a conversão de compra com a facturação real e o número da encomenda.

No Google Tag Manager: Administrador → Importar contêiner, escolha o ficheiro, marque Merge e Renomear tags em conflito, veja a pré-visualização e publique. Nada do que já tem é sobrescrito.

Compras perdidas

Cerca de uma compra em cada cinco nunca chega ao Analytics: um bloqueador de anúncios, um script que falhou, um cliente que fecha a página demasiado cedo. Com isto activo, a loja envia a compra por si quando o navegador não o fez, levando o identificador que esse cliente tinha naquele momento.

É preciso o ID de medição GA4 do grupo acima e uma chave API do Measurement Protocol, que se cria no Analytics em Administrador → Fluxos de dados → o seu fluxo → Segredos de API do Measurement Protocol. É guardada cifrada. A espera antes de enviar é a margem dada ao navegador do cliente: um quarto de hora basta mesmo com uma ligação lenta.

Recuperar também as compras sem identificador do Analytics cobre os clientes que bloqueiam o Analytics desde a primeira página: não há nada para ler, por isso a compra só pode ser enviada como uma visita nova e directa. Recupera a facturação nos relatórios e perde a atribuição dessas encomendas: por isso começa desligado.

Sob os campos, um painel conta os últimos trinta dias: encomendas registadas, as confirmadas pelo navegador, as recuperadas pela loja, as que ainda esperam. Um botão pede ao Google para verificar o conteúdo de uma compra de teste sem a registar.

Três coisas a saber. As encomendas feitas antes de o ligar não são recuperadas: o registo começa aqui. Uma chave API errada não dá erro — o Google aceita a chamada e descarta o evento — por isso o módulo nunca afirma que uma compra chegou: registra que a enviou, e a confirmação lê-se no Analytics, em Tempo real. E quem recusou os cookies nunca é recuperado, nem com a opção acima: enviar a sua compra do servidor contornaria a sua recusa.

O que entra nos artigos

CampoO que faz
Os preços incluem impostoTem de corresponder à base usada pelos seus relatórios do Google.
O valor da compra inclui o freteMuda apenas o valor da compra.
Atributo de produto usado como item_idUse o mesmo identificador do seu feed de produtos, ou o Google não vai emparelhar os artigos.
Atributo de produto usado como item_brandQualquer atributo do produto.
Adicionar as categorias do produtoPõe a categoria dentro de cada artigo.
Número máximo de artigos em view_item_listEvita que uma categoria longa envie um evento enorme.
Enviar também as chaves clássicas de remarketingPara contêineres que ainda leem as chaves antigas.
Endereços IP a ignorarSeparados por vírgulas. Desses endereços não sai nenhum evento: o escritório, por exemplo.
Dimensões personalizadasPares de atributo de produto e nome de parâmetro GA4. O parâmetro viaja dentro de cada artigo de cada evento. No GA4 tem de ser declarado como dimensão personalizada a nível de artigo, senão chega mas não aparece nos relatórios.
Nome adicional para o id único do eventoPara contêineres cujos acionadores leem esse id com outro nome. O mesmo valor viaja com os dois nomes, por isso no dia da mudança não toca em nada no contêiner.

Problemas comuns

Pus o ID do contêiner mas não vejo nada no Google Tag Manager. Verifique que Enable está em Yes no scope que está a ver, que o ID tem a forma GTM-XXXXXXX, e em modo production que fez o compile, o static deploy e uma limpeza de cache. Na pré-visualização do Google Tag Manager vê-se os eventos a chegar; se chegam e os relatórios continuam vazios, o problema está nas tags dentro do contêiner.

Um evento nunca parte. Dez dos catorze pertencem aos eventos de compra: a chave vai no grupo da licença. Sem ela, a loja continua a enviar os quatro básicos.

Os eventos do checkout chegam todos juntos na página de obrigado. É normal num checkout de página única: o evento é registado assim que o cliente escolhe e entregue no carregamento de página seguinte, que ali é a página de obrigado. No Analytics ficam na mesma visita e na ordem certa, antes da compra.

Os números não batem com o Analytics ou o Google Ads. Verifique a base de imposto, se o frete deve fazer parte do valor da compra, e que o atributo usado como item_id é o identificador do seu feed de produtos.

A compra chegou duas vezes. Não do módulo: recarregar a página de obrigado não repete o evento. Procure uma segunda tag que envie a mesma compra, por exemplo uma antiga conversão do Google Ads ainda configurada no Magento em Sales → Google API.