Agências de marketing · Mídia paga

Mídia paga de toda a carteira

Investimento, cliques e resultados de todos os clientes e plataformas numa tabela só, com cada conta de anúncio presa ao cliente certo.

UsoMuito usado
EsforçoMédio
Para quemAgências que gerenciam contas de anúncio de vários clientes em mais de uma plataforma.
Fonte

Meta, Google, TikTok e LinkedIn, uma fonte por conta

Regra

Registro conta para cliente e escala de cada plataforma

Resultado

Mídia de toda a carteira numa tabela só

Ativação

Dashboard, relatório, agente de IA e alertas

O que resolve

  • Uma tabela só com o investimento de todos os clientes, comparável entre Meta, Google, TikTok e LinkedIn.
  • Cada conta de anúncio pertence a um cliente declarado, e o número de um cliente nunca aparece no do outro.
  • O total por cliente e por dia bate com cada gerenciador, sem fator de um milhão, moeda misturada ou dia trocado.

Perguntas de negócio que responde

Faça estas perguntas ao seu agente quando o caso estiver pronto.

Quanto cada cliente investiu neste mês, por plataforma?
Como foi a semana do cliente X no Meta e no Google?
Investimento de setembro contra agosto, cliente a cliente.
Qual o CPC e o CPM consolidados da carteira por plataforma?
Quais contas de anúncio estão gastando sem cliente definido?
Quais clientes têm mídia paga ativa hoje?

O que você precisa

  • As contas de anúncio de cada cliente conectadas na Nekt (uma fonte por conta)
  • Um registro conta para cliente: plataforma, id da conta, cliente, moeda, fuso e status
  • O critério de cada cliente para contas compartilhadas e imposto sobre a verba

O que você recebe

  • Uma tabela unificada por cliente, plataforma, campanha e dia, já em reais
  • Um registro versionado que diz de qual cliente é cada conta
  • Um alerta de contas sem cliente e de fontes paradas
  • Um agente de IA que responde sobre a carteira sem misturar clientes

Onde ativar

Dashboard da carteira

Investimento e resultado de todos os clientes lado a lado, com filtro por cliente e plataforma.

Agente de IA via MCP

Responde sobre qualquer cliente, isolando cada um pelo registro.

Alertas

Conta sem cliente, fonte parada e cliente que zerou o investimento.

Quer construir?

As regras de cada plataforma são fechadas. O trabalho está no registro conta para cliente e em mantê-lo vivo quando entra ou sai cliente. O detalhado traz as regras de negócio, as armadilhas e o teste de aceitação. Ou mande tudo direto para o seu agente com o MCP da Nekt.

Ver detalhado
O problema

Cada cliente vira uma fonte por plataforma, e a agência acaba com dezenas de tabelas iguais por fora e diferentes por dentro. O Google manda custo em micros, o Meta manda tudo como texto, cada conta tem moeda e fuso próprios. E a conta de anúncio não é o cliente: um cliente tem várias contas, uma conta serve mais de uma marca, e o nome da conta raramente é o nome do cliente.

Como costuma ser feito, e a regra

Cada linha é um erro que já aconteceu na prática.

O jeito comumA regra
01
Tirar o cliente do nome da tabela ou da conta.
O cliente vem do registro, nunca do nome

Mantenha um registro com uma linha por conta: plataforma, account_id (ou customer_id do Google), client_id, moeda, fuso, status e data de início e fim. A tabela unificada pega o cliente por plataforma + account_id. O prefixo da tabela e o nome da conta no gerenciador são da conta, não do cliente, e casar por nome não serve como prova.

02
Unir as colunas de custo como vieram e converter no dashboard.
Converta cada plataforma para reais antes de unir

Google: metrics_cost_micros ÷ 1.000.000 (orçamento e lance em micros também). Meta: spend, impressions e clicks chegam como texto e viram número. LinkedIn: costInLocalCurrency é texto. TikTok: spend por stat_time_day. Converta em cada braço, antes do UNION, para que a coluna investimento tenha a mesma unidade em todas as linhas.

03
Somar investimento de todas as contas sem olhar a moeda.
Nunca some moedas diferentes

Leia a moeda da conta (currency na tabela de contas da plataforma) e leve a coluna moeda até o fim. Para consolidar a carteira, converta com uma cotação declarada e datada, ou deixe a conta de fora e diga que deixou. Conta em dólar somada com contas em real gera um total sem significado.

04
Converter a data da plataforma para o fuso de São Paulo.
A data da plataforma é rótulo de dia

O Meta agrega date_start no fuso da conta, e o Google entrega date como o dia da conta, muitas vezes num timestamp à meia-noite. Use o dia como veio. Converter esse timestamp para outro fuso joga o investimento para o dia anterior. Guarde o fuso de cada conta no registro e só compare contas de fusos diferentes sabendo disso.

05
SELECT * em cada braço do UNION ALL.
Schema comum com colunas explícitas

Defina um contrato de colunas (data, cliente, plataforma, conta, campanha, conjunto, anúncio, moeda, investimento, impressões, cliques, resultado) e liste as colunas em cada braço do UNION ALL, com tipo forçado. Ids viram texto: campaign_id é número numa plataforma e texto na outra, e o cruzamento com a tabela de campanhas do Google precisa do CAST.

06
Partir da lista de contas ou campanhas e trazer o gasto por LEFT JOIN.
O realizado vem do relatório de desempenho

Investimento, impressões e cliques saem dos relatórios diários (adsinsights, campaign_performance, campaign_analytics, daily_report). As tabelas de contas, campanhas e conjuntos só enriquecem nome, status e objetivo. A lista de contas não define quais contas existem, e configuração ausente não apaga gasto realizado.

07
INNER JOIN com o registro, que derruba contas novas sem avisar.
Conta sem cliente aparece, não some

Toda linha leva client_id. Quando a conta não casa no registro, a linha fica com status de mapeamento UNMAPPED_ACCOUNT e entra num alerta. Ela não vai para cliente nenhum e não é descartada em silêncio. A cobertura de mapeamento (investimento com cliente / investimento total) é um número que a agência acompanha.

08
Somar a conta inteira para o cliente.
Conta compartilhada se filtra pela regra do registro

Quando a conta é dividida com o time interno do cliente ou entre marcas, só entram as campanhas da agência ou da marca, por um termo no nome da campanha guardado no registro (nome em minúsculas, com _ virando espaço). Fonte de agência que atende vários clientes, como perfil de empresa no Google, precisa de filtro pelo id do local de cada cliente.

09
Unir todas as tabelas que existem para a conta.
Uma fonte viva por conta

Fonte retirada, congelada ou reconectada com outro prefixo convive com a nova. Marque no registro qual fonte está ativa e com qual vigência, e nunca some uma tabela congelada com a consolidada. Em fontes que reextraem o mesmo dia, fique com a versão mais recente de cada chave antes de somar.

10
Somar o relatório de campanha com o de anúncio.
Performance Max entra no nível de campanha

PMax não tem anúncio individual. Use o relatório de anúncio para Search, Display e Vídeo e o relatório de campanha só para as campanhas PMax. Nunca some os dois níveis da mesma campanha.

Como cada plataforma entrega o custo e o dia

Converta no braço de cada plataforma, antes de unir.

Meta Ads · adsinsightsCusto em moeda da conta, como textospend → número; date_start (texto, fuso da conta)
Google Ads · campaign_performanceCusto em microsmetrics_cost_micros ÷ 1.000.000; date
LinkedIn Ads · campaign_analyticsCusto em moeda local, como textocostInLocalCurrency → número; date
TikTok Ads · daily_reportCusto em moeda da contaspend; stat_time_day
GA4Data em texto AAAAMMDDdate → data
Tabela de contas de cada plataformaMoeda, fuso e status da contacurrency, timezone_name

Definições

Investimento
soma do custo convertido para moeda (Google ÷ 1.000.000), por cliente, plataforma e dia da conta
Impressões e cliques
soma dos relatórios diários de desempenho; no Meta, cliques no link vêm de link_click
CTR
soma dos cliques / soma das impressões no período
CPC
soma do investimento / soma dos cliques no período
CPM
soma do investimento / soma das impressões × 1.000 no período
CPA e ROAS
investimento / conversões e valor de conversão / investimento, com as somas do período
Cobertura de mapeamento
investimento com client_id resolvido / investimento total, por dia
Cliente com mídia ativa
cliente com investimento maior que zero nos últimos 7 dias em pelo menos uma conta ativa no registro

Armadilhas que já aconteceram

Fator de um milhão

Padronizar a coluna de custo do Google e do Meta da mesma forma faz uma das duas mentir por um milhão. No total salta aos olhos; em CPA e ROAS os micros podem se cancelar e passar.

Converta em cada braço e confira o total de um dia contra cada gerenciador.

Gasto no dia errado

A data do Google chega como timestamp à meia-noite. Converter esse valor para o fuso de São Paulo leva tudo para o dia anterior, e num monitor de frescor isso fez a fonte parecer atrasada.

Trate a data da plataforma como dia, sem conversão de fuso.

UNION que quebra sozinho

O UNION ALL casa por posição. Bastou o conector de uma conta ganhar uma coluna para a tabela da carteira inteira parar.

Liste as colunas em cada braço e mantenha o schema de saída idêntico.

Dupla contagem com fonte antiga

Fontes retiradas ficaram congeladas ao lado da consolidada, e quem somou as duas dobrou o investimento daqueles clientes.

Registre a fonte ativa e a vigência de cada conta.

Cruzamento por nome

O nome do cliente diverge entre mídia, CRM, financeiro e planilha de controle, e o cruzamento por nome falhava na maioria das linhas. Contas com nome parecido são unidades distintas.

Cruze por id de conta ou documento, com tabela de apelidos só como pista.

Cliente que sai da carteira

Apagar o dado do cliente que saiu sem tirar o braço dele quebrou a consulta da carteira. Deixar o braço faz o alerta acusar atraso para sempre.

Marque o status no registro com data de fim e remova o braço sem mudar o schema de saída.

Validado em dados reais. Na própria Nekt, a tabela de contas do Meta lista contas em três moedas (real, dólar e euro) e três fusos, mas só uma delas tem linhas de desempenho: a lista de contas não define o universo. No mesmo workspace, spend, impressions e clicks do Meta chegam como texto, o custo do Google vem em micros, costInLocalCurrency do LinkedIn vem como texto, e as datas do Google e do LinkedIn chegam como timestamp à meia-noite.

Teste de aceitação

O caso está pronto quando todos os itens passam.

Pacote para o agente

Cole no Claude, ChatGPT ou outro cliente com o MCP da Nekt conectado.

Markdown completo
Mídia paga da carteira
- O cliente de cada linha vem do registro conta para cliente (plataforma + account_id). Nunca deduza o cliente pelo nome da tabela, da conta ou da campanha.
- Dados de outro cliente não são evidência para este cliente, mesmo com tabelas e métricas de nome parecido.
- Investimento já está em moeda: Google foi dividido por 1.000.000; Meta e LinkedIn foram convertidos de texto para número.
- Nunca some investimento de moedas diferentes. Se precisar consolidar, diga a cotação usada ou que a conta ficou de fora.
- A data é o dia da conta na plataforma. Não converta fuso.
- CTR, CPC, CPM, CPA e ROAS são recalculados das somas do período, nunca média de taxas diárias.
- Contas com status UNMAPPED_ACCOUNT não pertencem a cliente nenhum: cite como pendência, não atribua.
- Fontes congeladas ou retiradas não entram em totais.
- Para resultado por objetivo no Meta, siga as regras do caso Resultado do Meta Ads por objetivo.
Exceções por cliente:
- <cliente>: conta compartilhada com o time interno; só entram campanhas com <termo> no nome.
- <cliente>: conta <id> opera em <moeda>; fica fora do total da carteira.
- <cliente>: custo do Meta reportado com imposto de <x>% sobre a verba.

Variações

Acesso por cliente

O mesmo registro define quem da equipe ou do cliente vê cada conta no dashboard.

Microsoft Ads e outras

Novo braço com a mesma lista de colunas: a tabela da carteira não muda.

Grupo com várias marcas

O registro aponta conta para marca e marca para grupo, com a mesma regra de isolamento.