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
| Campo | O que faz |
|---|---|
| Enable | Com isto desligado a loja não gera o contêiner nem uma linha de data layer. |
| Container ID | O 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 consent | Usa 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
Consentimento do Google
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.
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.
| Evento | Quando | Nível |
|---|---|---|
view_item | página do produto | gratuito |
view_cart | carrinho | gratuito |
begin_checkout | checkout | gratuito |
purchase | página de obrigado, da encomenda real | gratuito |
view_item_list | categoria e resultados de busca | compra |
select_item | um clique num produto de uma lista | compra |
add_to_cart | da linha real do carrinho | compra |
remove_from_cart | da linha real do carrinho | compra |
search | o termo e quantos resultados deu | compra |
add_to_wishlist | o produto adicionado | compra |
add_shipping_info | o método de envio guardado | compra |
add_payment_info | o método de pagamento guardado | compra |
login | acesso do cliente | compra |
sign_up | registo do cliente | compra |
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.
O que entra nos artigos
| Campo | O que faz |
|---|---|
| Os preços incluem imposto | Tem de corresponder à base usada pelos seus relatórios do Google. |
| O valor da compra inclui o frete | Muda apenas o valor da compra. |
| Atributo de produto usado como item_id | Use o mesmo identificador do seu feed de produtos, ou o Google não vai emparelhar os artigos. |
| Atributo de produto usado como item_brand | Qualquer atributo do produto. |
| Adicionar as categorias do produto | Põe a categoria dentro de cada artigo. |
| Número máximo de artigos em view_item_list | Evita que uma categoria longa envie um evento enorme. |
| Enviar também as chaves clássicas de remarketing | Para contêineres que ainda leem as chaves antigas. |
| Endereços IP a ignorar | Separados por vírgulas. Desses endereços não sai nenhum evento: o escritório, por exemplo. |
| Dimensões personalizadas | Pares 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 evento | Para 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.