Conecte o Google Ads Data Manager
Uma compra confirmada por webhook — Hotmart, Kiwify, Yampi, WooCommerce — acontece fora do navegador. Ela chega ao seu Node, mas a tag do Google Ads na página nunca a viu. A Fonte de dados fecha esse buraco: o Supreme publica um arquivo autenticado no seu Node e o Google Ads vem buscá-lo sozinho, todo dia.
Este manual cobre o procedimento inteiro, dos dois lados, e termina com um guia de resolução de problemas ligando o que o Google mostra ao que fazer no Supreme.
Tempo estimado: 20 minutos de configuração, mais 3 a 48 horas até os números aparecerem no Google Ads.
Como funciona, em um parágrafo
O modelo é de busca, não de envio. O Supreme mantém um arquivo CSV atualizado em uma URL protegida por usuário e senha; você entrega essa URL ao Google Ads uma única vez; o Google passa a buscá-la no horário que você agendar. A frequência máxima do Google é uma vez por dia — não existe hora em hora, não existe tempo real, e não há configuração que mude isso.
Antes de começar
Na conta do Google Ads
| Requisito | Onde conferir |
|---|---|
| Marcação automática (auto-tagging) ligada | Nas configurações da conta, na opção Auto-tagging. Sem ela não existe gclid, e sem gclid não há conversão offline para importar. |
| Acesso de administrador | Criar conexão no Data manager exige permissão de admin na conta. |
| Uma ação de conversão do tipo importação | Você cria na Etapa 1, se ainda não tiver. |
| Contagem "Every" | Na ação de conversão, se a mesma pessoa pode converter mais de uma vez pelo mesmo clique. |
No seu Supreme
| Requisito | Onde conferir |
|---|---|
| Uma Propriedade ativa com os domínios do site | Console → Propriedades. Veja Crie sua primeira Propriedade. |
| O módulo Google Ads instalado e ativo | Console → Integrações → Gerenciar Módulos. |
| Uma conexão do Google Ads nessa Propriedade | Console → Integrações → Google Ads. |
| Eventos chegando há pelo menos alguns dias | Console → Eventos. O arquivo é montado a partir do que o seu Node já tem. |
Tenha em mãos
O nome exato da ação de conversão no Google Ads. Você vai digitá-lo dentro do Supreme, e ele precisa ser idêntico — mesma grafia, mesmos acentos, mesmas maiúsculas.
O caminho certo dentro do Google Ads
Use Tools > Data manager.
Não use Goals > Conversions > Uploads. As duas telas se chamam "HTTPS" e são incompatíveis:
- a tela antiga exige um preâmbulo
Parameters:TimeZone=na primeira linha do arquivo e nomes de coluna fixos, que o arquivo do Supreme não tem; - e o que entra por ela não aparece no Data manager.
Quem escolhe a tela errada monta uma conexão que o nosso arquivo nunca vai satisfazer, e o erro só aparece dias depois. Confira o topo da tela antes de colar qualquer coisa.
Etapa 1 — Crie a ação de conversão no Google Ads
Pule esta etapa se a ação já existe. Para Customer Match, pule direto para a Etapa 2.
- Vá em
Goals > Summary. - Clique em + New conversion action.
- Escolha Import.
- Escolha "CRMs, files, or other data sources" e depois "Track conversions from clicks".
- Dê um nome à ação. Anote esse nome exatamente como você digitou — ele vai para o Supreme na próxima etapa.
- Em contagem, escolha Every se a mesma pessoa pode comprar mais de uma vez pelo mesmo clique.
- Salve.
Etapa 2 — Crie a fonte no Supreme
No Console, abra Integrações → Google Ads, na Propriedade que você quer publicar. A fonte de dados é por Propriedade: cada Propriedade tem as suas.
O bloco fica na conexão do Google Ads, dentro da Propriedade que você quer publicar.
No bloco Fonte de dados, clique em Nova fonte e escolha a Ação de dados:
Se escolher conversions — Conversões offline (Data Manager)
| Campo | O que preencher |
|---|---|
| Evento canônico | O evento do seu Node que representa a conversão — normalmente purchase. |
| Nome da conversão no Google Ads | Idêntico ao nome da ação de conversão da Etapa 1. |
| Nome (opcional) | Só para você distinguir várias fontes na mesma Propriedade. |
O evento canônico e o nome da conversão só aparecem depois que você escolhe a ação de dados.
É este mesmo arquivo que alimenta as conversões otimizadas (enhanced conversions): ele já carrega e-mail e telefone com hash junto do identificador de clique.
Se escolher customer-match — Lista de Customer Match
| Campo | O que preencher |
|---|---|
| Escopo da audiência | Todos os contatos (qualquer pessoa com evento nesta Propriedade) ou Somente compradores. |
| Nome (opcional) | Só para você distinguir várias fontes. |
Ao salvar
O Supreme devolve três coisas: uma URL da fonte, um Usuário e uma Senha.
A URL, o usuário e a senha da fonte. É isso que vai para o Data manager.
Copie a senha agora. Ela é gerada uma vez; se você sair da tela sem copiar, o Console avisa que ela não pode mais ser lida no Node e você terá de gerar uma nova.
Etapa 3 — Crie a conexão HTTPS no Data manager
- No Google Ads, abra
Tools > Data manager. - Clique em Connect product e escolha a fonte de dados HTTPS.
- Cole a URL da fonte, o Usuário e a Senha que o Supreme mostrou.
- Dê um nome à conexão. Esse nome nunca pode mudar depois — o Google exige o mesmo nome de fonte a cada atualização, e mudá-lo quebra a integração.
- Avance para o mapeamento de campos.
O próprio Console repete o caminho certo e o aviso da tela errada, ao lado da fonte.
Etapa 4 — Mapeie os campos
O Google mostra as colunas do nosso arquivo de um lado e os campos de destino dele do outro, e pede que você ligue um ao outro. Isso é normal: neste caminho os nossos nomes de coluna não precisam ser iguais aos rótulos do Google, e colunas a mais são permitidas — o Google ignora o que você não mapear.
Arquivo conversions
As colunas saem nesta ordem:
| Coluna do arquivo | Campo de destino no Google | Obrigatório? |
|---|---|---|
conversion_action |
Conversion action | recomendado |
gclid |
GCLID | sim, na prática |
gbraid |
GBRAID | opcional (cliques em app, iOS 14+) |
wbraid |
WBRAID | opcional (cliques web, iOS 14+) |
conversion_date_time |
Conversion date and time | sim |
order_id |
Order ID | recomendado |
conversion_value |
Conversion value | opcional |
conversion_currency |
Conversion Currency | mapeie se aparecer na lista (veja Moeda) |
event_source |
Event source | opcional |
user_agent |
User agent | opcional |
email |
Email Address | para conversões otimizadas |
phone |
Phone number | para conversões otimizadas |
email e phone já saem com hash SHA-256, como o Google espera para dados pessoais. Todo o resto sai em texto puro — isso é proposital e obrigatório: um arquivo com hash em coluna que não é dado pessoal o Google não consegue ler.
Arquivo customer-match
| Coluna do arquivo | Campo de destino no Google | Observação |
|---|---|---|
email |
hash SHA-256 | |
phone |
Phone number | hash SHA-256 |
first_name |
First name | hash SHA-256 |
last_name |
Last name | hash SHA-256 |
country_code |
Country code | texto puro, minúsculo |
postal_code |
Postal code | texto puro |
user_id |
User_id | exige uma conexão própria — uma conexão carrega um tipo de dado só |
Não mapeie user_id na mesma conexão de e-mail/telefone: o Google trata identificadores de contato e IDs próprios como tipos de dado diferentes.
Etapa 5 — Agende e rode
- Escolha a frequência: daily é o recomendado e também o máximo.
- Defina o horário de início e o fuso do agendamento.
- Marque "Also run now" para não esperar até amanhã pela primeira execução.
- Salve.
Etapa 6 — Confira os dois lados
No Supreme
Volte ao bloco Fonte de dados. Depois da primeira busca, a linha Última busca mostra:
| Campo | O que significa |
|---|---|
| Última busca | quando o Google buscou o arquivo pela última vez (horário UTC do Node). |
| Estado da busca | Arquivo servido (verde) ou Servido com corte (vermelho — bateu em um limite). |
| Linhas servidas | quantas linhas o arquivo tinha naquela busca. |
| Bytes servidos | o tamanho do arquivo naquela busca. |
| Duração | quanto tempo o seu Node levou para montar e servir. |
Depois da primeira busca do Google: arquivo servido, 4 linhas, 1,2 kB, 4 ms.
Se ainda estiver escrito "O Google ainda não buscou" depois de você ter marcado Also run now, o Google não chegou até o seu Node — vá direto para Resolução de problemas.
No Google Ads
Na página da conexão, abra View connection runs: é o log de execução, linha a linha. Os indicadores Needs attention e Urgent e a seção Connection quality ficam na mesma página.
Quando os números aparecem
- Cerca de 3 horas para uma conversão importada aparecer nas colunas de relatório.
- De 24 a 48 horas para os números estabilizarem.
- Até 48 horas para uma lista de Customer Match terminar de processar.
Some a isso o agendamento. Conferir uma hora depois e não ver nada não é falha.
O que exatamente vai dentro do arquivo
Vale conhecer, porque quase toda dúvida de "faltou conversão" se resolve aqui.
Recorte dos dados
- Somente eventos daquela Propriedade, com o nome de evento configurado na fonte.
- Janela móvel de 60 dias para trás, sempre.
- Eventos de sandbox nunca entram.
- Teto de 10.000 linhas, 16 MB ou 20 segundos de montagem por busca — o que vier primeiro.
Quais eventos viram linha
Uma conversão só entra se tiver pelo menos um identificador: gclid, gbraid, wbraid, ou e-mail/telefone com hash. Uma compra sem nenhum dos dois não tem como ser casada pelo Google e é omitida em vez de virar lixo no relatório.
Como cada campo é montado
conversion_date_timesai como2026-08-24 17:01:54 Z— o horário do evento em UTC, com o fuso explícito no próprio valor. Não configure nenhuma transformação de data no Data manager: o valor já está completo.order_idé o identificador da transação da compra. Quando não existe compra associada, o Supreme usa o id interno do evento, para que a linha continue tendo um identificador estável.conversion_valuesai com ponto decimal (149.90) e fica vazio quando o evento não tem compra associada.event_sourcesai comoWEBquando o evento veio do navegador eOTHERquando veio de webhook.emailephonesão normalizados antes do hash (minúsculas, telefone em E.164). Nenhum dado pessoal em texto puro sai do seu Node.
No arquivo de Customer Match, uma pessoa entra se tiver e-mail ou telefone ou o conjunto completo nome + sobrenome + país + CEP. O arquivo expressa a lista inteira a cada busca: para remover alguém, a pessoa deixa de aparecer no arquivo e a permanência dela expira pelas regras do Google.
Manutenção
Gerar uma nova senha
Nova senha mantém a mesma URL e invalida a senha atual na hora. A próxima busca do Google falha até você colar a nova no Data manager. Faça as duas coisas na mesma sessão.
Pausar
Pausar mantém URL e senha. Enquanto está pausada, a fonte responde 503 e nada é lido. Retomar é um clique. É o caminho certo para interromper temporariamente.
Excluir
Excluir **destr
O Console avisa o que a exclusão custa antes de confirmar.ói a URL para sempre. Como o Google exige o mesmo nome de fonte a cada atualização, uma fonte recriada tem outra URL e a conexão precisa ser refeita dentro do Google Ads. Se a intenção é temporária, use Pausar**.
Resolução de problemas
Como testar a URL você mesmo
O jeito mais rápido de separar "problema no Google" de "problema no Node" é buscar o arquivo você mesmo, de qualquer terminal:
curl -u "USUARIO:SENHA" -D - -o conversions.csv "URL_DA_FONTE"
O que a primeira linha da resposta diz:
| Resposta | Significado | O que fazer |
|---|---|---|
200 |
Está tudo certo. Abra o CSV: primeira linha é o cabeçalho. | Se o Google ainda falha, o problema está na conexão dele — confira usuário/senha e o nome da fonte. |
401 |
Usuário ou senha não conferem, ou a fonte não existe mais. | Gere uma Nova senha no Console e cole no Data manager. |
503 |
A fonte está Pausada, ou a Propriedade está inativa, ou a conexão do Google Ads não está utilizável. | Retome a fonte; confira se a Propriedade está Ativa. |
404 |
O módulo Google Ads está inativo neste Node, ou a URL foi alterada. | Reative o módulo em Gerenciar Módulos; confira se a URL colada é exatamente a que o Console mostra. |
429 |
Buscas demais em pouco tempo — o limite é 60 leituras autenticadas a cada 5 minutos. | Espere o tempo indicado no cabeçalho Retry-After. Uma conexão diária nunca chega perto disso. |
Cada teste seu consome uma leitura desse limite — teste à vontade, só não deixe um laço rodando.
O Google mostra um erro
| Mensagem no Google Ads | Causa real | Solução |
|---|---|---|
| Invalid DATA_SOURCE credentials | A senha no Data manager não é mais a válida — quase sempre porque alguém gerou uma nova no Console. | Gere uma Nova senha e cole no Data manager. Como a requisição é recusada antes de chegar aos dados, o Supreme não registra nada: a Última busca simplesmente para de avançar. |
| Source for DATA_SOURCE not found | A fonte foi excluída, ou a URL colada está incompleta. | Compare a URL do Data manager com a que o Console mostra. Se a fonte foi excluída, crie outra e refaça a conexão. |
| Connection failed its last run | Genérico. Rode o teste com curl acima para descobrir qual dos casos é. |
Conforme a tabela anterior. |
| Invalid DATA_SOURCE format / Column headers aren't readable | Quase sempre é a tela errada: a conexão foi criada em Goals > Conversions > Uploads, que espera outro formato de arquivo. |
Refaça a conexão em Tools > Data manager. |
| Missing required column | O mapeamento não ligou um campo obrigatório — normalmente Conversion date and time. | Reabra o mapeamento e ligue as colunas da Etapa 4. |
| Mensagens de linha duplicada no log de execução | Estado normal. O Supreme serve de novo, de propósito, uma janela sobreposta, para que uma execução que falhe ou atrase não perca nada. O Google deduplica sozinho. | Nada a fazer. |
| Your conversions may be overcounted | Os identificadores de transação do arquivo e da tag de navegador não estão casando (o Google alerta quando menos de 10% casam em 2 dias). | Confirme que a mesma Propriedade não está enviando transaction_id diferente pela tag e pelo webhook. O arquivo usa o identificador da compra registrada no Node. |
O Supreme mostra um problema
| Sintoma no Console | Causa | Solução |
|---|---|---|
Servido com corte (truncated) |
O arquivo bateu no teto de 10.000 linhas, 16 MB ou 20 segundos. Como o arquivo é montado da conversão mais antiga para a mais nova, o corte cai justamente nas mais recentes. | Reduza o volume por fonte: use um evento canônico mais específico, ou separe as Propriedades. Se a Propriedade sozinha ultrapassa 10.000 conversões em 60 dias, fale com o suporte antes de confiar no arquivo. |
| Linhas servidas: 0 | O nome do evento canônico não existe no Node; ou nenhum evento da janela tem identificador de clique nem e-mail/telefone; ou a Propriedade não recebeu eventos nos últimos 60 dias. | Console → Eventos: confirme o nome exato do evento e que ele está chegando naquela Propriedade. |
| Última busca não avança | O Google não chegou ao Node — credencial recusada, fonte pausada, ou a conexão nem chegou a rodar. | Faça o teste com curl e siga a tabela de respostas. |
| Nada em lugar nenhum | A conexão pode nem ter sido agendada. | No Data manager, confira se existe um agendamento e use "Start a connection run" para rodar na hora. |
Onde ficam os registros no seu Node
Console → Logs → LOGS DO NODE, filtrando o canal datasource. Uma busca que terminou em erro ou com corte grava um registro de nível ERRO com os códigos datasource_error ou datasource_truncated, com id da fonte, linhas e bytes. Uma busca normal não gera log — ela aparece só na linha Última busca.
As conversões chegaram, mas não aparecem no relatório
Confira nesta ordem:
- Ainda é cedo. ~3 h para aparecer, 24–48 h para estabilizar.
- O nome da conversão não bate. O valor de Nome da conversão no Google Ads na fonte precisa ser idêntico ao da ação de conversão.
- A conversão é velha demais. O Google não importa conversão com mais de 90 dias desde o clique (63 dias quando o casamento é por e-mail/telefone em vez de
gclid). - A ação de conversão não está incluída em "Conversions". Uma ação marcada como secundária aparece em outra coluna do relatório.
O resumo que fica ao lado da fonte, dentro do Console.
Limites que você precisa conhecer
O Supreme nunca mostra a confirmação do lado do Google
O Supreme sabe que serviu o arquivo: quando, quantas linhas, quantos bytes, em quanto tempo. Ele não tem como saber o que o Google fez com o arquivo depois.
Isso não é funcionalidade faltando nem item de roadmap: neste caminho não existe callback, webhook, exportação nem API de status — não há canal por onde essa informação pudesse voltar. O diagnóstico da importação existe apenas dentro do Data manager.
Divida as perguntas assim:
- O arquivo foi servido, com quantas linhas e quando? → Console do Supreme, bloco Fonte de dados.
- O Google processou o arquivo, e o que ele fez com cada linha? → Google Ads, Data manager, na página da conexão.
Customer Match tem um requisito do próprio Google
Para usar a segmentação por Customer Match, a conta precisa de mais de 90 dias de histórico e mais de USD 50.000 de investimento acumulado, além de um mínimo de 100 registros na lista. O Supreme não contorna isso: a fonte continua sendo criada e servida, mas a segmentação só liga quando a conta se qualifica.
Moeda
O valor da conversão vai na moeda que a conta do Google Ads espera. O arquivo carrega a coluna conversion_currency, mas Conversion Currency não é um campo de destino documentado no fluxo de conversões do Data manager — se ele aparecer na sua lista de mapeamento, ligue; se não aparecer, a coluna é simplesmente ignorada, o que é permitido.
Se você opera em mais de uma moeda, confira o valor das conversões importadas nos primeiros dias antes de otimizar campanhas por valor.
Frequência
Uma vez por dia é o teto do Google. Quem precisa de confirmação por evento e de latência de minutos precisa de uma integração de envio, com OAuth e projeto próprio na nuvem — outro produto, não uma configuração desta tela.
Saiba mais sobre a arquitetura por trás desta tela: A lane de Fonte de dados.