Remarketing Dinâmico no Google Ads: Parâmetros que Fazem o Feed Bater
items[], ID no Merchant Center, value/currency e Consent Mode: o que faz o criativo dinâmico e o match rate funcionarem de verdade.
Contexto
A campanha de remarketing “funciona”: você paga impressão, o anúncio roda. O criativo mostra o logo e um pack genérico — nunca o tênis que a pessoa acabou de abrir no site. O media buyer culmina o PMax. O Merchant Center parece populado. O Tech Lead jura que “a tag de remarketing está no site”.
Remarketing estático só responde: esta pessoa visitou. Remarketing dinâmico responde: qual item do feed ela tocou — e monta o criativo a partir do catálogo (imagem, preço, título). O mesmo sinal de evento alimenta aprendizado de prospecção e redes que rodam catálogo (Display, Performance Max). Sem parâmetro certo, o algoritmo não tem o que casar.
Este guia é o contrato de dados, com foco retail na web e GTM: o que vai no items[], como o ID bate no Merchant Center, o que quebra match rate e o que privacidade faz com as listas.
Estático vs dinâmico (e por que o parâmetro importa)
No modelo antigo (e ainda vivo em scraps de implementação), bastavam chaves planas: ecomm_prodid, ecomm_pagetype, ecomm_totalvalue. Hoje o padrão alinhado ao Help do Google Ads e ao ecommerce do GA4 é evento nomeado + array items: um objeto por produto tocado, com ID legível para o feed.
Sem items (ou com ID que não existe no Merchant Center), a plataforma tem usuário para remarketing genérico — e zero produto para o criativo dinâmico. Match rate baixo no diagnóstico do Google quase nunca se resolve “subindo lance”.
Eventos que importam
Para catálogo/retail, implemente a mesma lógica de funil do ecommerce (mesmo se a tag final for Google Ads, não só GA4):
view_item— PDP: um item no arrayview_item_list/view_search_results— intenção em grade ou buscaadd_to_cart— intenção forte; base de “abandonadores”purchase— fecha o ciclo; usado para excluir quem já comprou (e para valor)
Outras verticais (hotel, voo, emprego…) têm feed keys diferentes (destination, datas ISO, etc.). O Help de eventos e parâmetros de remarketing dinâmico lista cada vertical. Aqui o miolo é retail: se o negócio não é loja, troque o key principal, não só o nome da campanha.
O contrato do payload (retail)
No mínimo, o hit precisa carregar:
- Evento com nome estável (
view_item,add_to_cart…) items: array; cada item com identificador (idouitem_id— o que a doc da tag/evento e o seu mapping GTM combinarem)google_business_vertical: por exemploretail— evita buscar o ID no catálogo errado se a conta tem mais de um tipo de feedvalueecurrency: número + ISO 4217 (BRL,USD), semR$, sem vírgula de milhar, sem string"99,90"
Exemplo de orientação para o front/dataLayer (ajuste nomes ao template oficial da tag no seu container):
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
event: 'view_item',
ecommerce: {
currency: 'BRL',
value: 299.9,
items: [{
item_id: 'SHOE-RUN-ALPHA-RED-42',
item_name: 'Tênis Corrida Alpha',
price: 299.9,
quantity: 1,
google_business_vertical: 'retail'
}]
}
});
O ponto de verdade não é “ter um push qualquer”. É o mesmo ID que o Merchant Center indexa. Detalhe de contrato ecommerce e tipagem: Data Layer para devs. Erros clássicos de funil/receita: erros de e-commerce no GA4.
Match com o Merchant Center
O motor tenta casar o ID do evento com atributos do feed, em especial:
id— SKU / variante (ex.: cor+tamanho)item_group_id— produto paidisplay_ads_id— when você quer ID/título só para Display, desacoplado do Shopping
Se a tag manda o SKU fino e o feed só tem o pai (ou o contrário sem regra clara), o match rate cai e o anúncio vira genérico ou some. Decida uma lógica: “sempre mandamos o id da variante” ou “sempre o group” — e documente para eng, feed e mídia.
Preço e moeda também entram no jogo. O GMC e o rastreamento se incomodam com:
valueformatado como texto- moeda fora de ISO
- preço no site/evento diferente do preço no feed (dynamic pricing, desconto por IP, imposto só no HTML)
Currency mismatch e price mismatch não “só dão warning”: podem reprovar produto e silenciar o uso no criativo dinâmico.
Do dataLayer ao GTM
Fluxo usual:
- Front emite o Custom Event no dataLayer com
itemslimpos. - GTM dispara no nome do evento (
view_item, etc.). - Tag de Google Ads / remarketing (ou parâmetros na Google Tag alinhados à doc atual) mapeia item ID, value, currency, vertical.
- Preview no Tag Assistant: o hit carrega o ID e não envia PII.
Entre pushes de ecommerce, limpe estado com ecommerce: null — em SPA o modelo do GTM herda item do hit anterior e o carrinho fantasmas no feed.
Plataformas (Shopify em cêntimos, checkout em sandbox, plugins Woo) mudam de onde o ID vem, não o princípio: o valor que sai na tag tem que ser o do feed, em número e moeda certos. App nativo é outro caminho (SDK / eventos de app); não reaproveite só o container web e espere deep link mágico.
Audiências que o parâmetro desbloqueia
Com eventos confiáveis você monta segmentos dos seus dados (as antigas listas):
- Viu item, mas não comprou
- Add to cart sem
purchaseposterior (abandonadores) - Purchase — exclusão nas combinações (não remarcar quem já pagou)
Recência importa: clone lógica de 7 vs 30 vs 90 dias se o lance deve ser mais agressivo no recente. Sobreposição de listas no mesmo leilão queima orçamento sem critério — use exclusões (AND / NOT) de propósito, não de hábito.
Consent Mode e listas dinâmicas
Remarketing dinâmico depende de personalização publicitária. Com Consent Mode v2, se ad_personalization fica denied, aquele usuário não alimenta a user list para exibir o produto depois. Ping de modelagem / conversão modelada não substitui o “mostrar o mesmo SKU”.
Default denied até o banner, update da CMP, e leitura das tags no momento certo: Consent Mode v2. Se o match rate no Docs parece “ok” e a lista não cresce no Brasil/EEE, confira consent antes de culpar o feed.
PII: o interruptor silencioso
Parâmetros de e-mail, nome ou documento na URL (form GET, ?email=, utm com PII) ou na tag violam a política de PII do Google Ads. O efeito típico: segmentos e listas desligados até limpar. Use UUID opaco se precisar de ID próprio — nunca e-mail em claro no hit de remarketing.
Enhanced Conversions (ponte, não substituto)
Cookies e ITP reduzam atribuição. Conversões otimizadas (hash de e-mail/telefone no momento da conversão) recuperam conversão e treinam lance — boa prática first-party. Não confundir com: “sem items no view_item o produto volta no Display”. Enhanced Conversions ajuda o fechamento; o catálogo dinâmico ainda exige o sinal de item + feed.
Checklist de QA
- PDP dispara
view_item(ou equivalente) com um item e ID estável. - ID do hit existe no Merchant Center (id / group / display_ads_id — a regra que vocês escolheram).
value/pricenuméricos;currencyISO.google_business_verticalcoerente com o feed (retailno e-comm).- Preview: payload limpo; zero e-mail em page location / params.
- Match rate / diagnóstico de dynamic remarketing no Ads — tendência depois de 24–72h de tráfego real.
- Segmento “carrinho sem purchase” popula; purchase exclui.
- Com consent denied em personalização, o usuário não deve engordar lista dinâmica (comportamento esperado).
Próximo passo
Dinamico barato de manter só existe quando feed + evento + consent são o mesmo contrato. Quando a loja tem SKU divergente, plugin que manda título no lugar de ID, e mídia “otimiza” listão de 540 dias, o criativo vira roleta.
Se quiser, partimos do seu container GTM e de uma amostra do Merchant Center e fechamos: qual ID manda o site, se o match rate faz sentido e o que o Ads ainda não deveria estar tentando remarcar.