---
id: casos/marketing-unificado
area: Marketing
uso: muito usado
esforco: médio
grao: Plataforma x conta x campanha x dia
testado_com_agente: out/2026
---

# Marketing unificado (Google + Meta)

Google, Meta e as outras plataformas numa tabela só, com investimento, cliques e conversões que batem com cada gerenciador.

## Resumo executivo

**Para quem:** Times de marketing e agências que investem em mais de uma plataforma de mídia e precisam comparar tudo numa visão só.

**O que resolve**

- O investimento de cada plataforma na tabela bate com o gerenciador dela, no dia e no mês.
- Clique, conversão e custo significam a mesma coisa em todas as plataformas antes de serem comparados.
- CTR, CPC, CPM e custo por conversão saem certos em qualquer recorte, sem média de médias.

**Por que importa:** Cada plataforma mede custo, clique e conversão de um jeito, e a comparação ingênua erra por fatores de 1,5 a 1 milhão. Uma decisão de verba tomada em cima dessa soma tira dinheiro do canal que funciona. É também a base de todo caso que liga mídia a lead, venda e receita.

**Perguntas de negócio que responde**

- Quanto investimos em cada plataforma neste mês e como isso se compara ao mês passado?
- Qual campanha tem o menor custo por conversão, considerando Google e Meta juntos?
- O CTR e o CPC do Meta estão melhores ou piores que os do Google no mesmo período?
- Quanto da verba foi para Performance Max e quanto para pesquisa?
- Quais contas ou campanhas pararam de gastar ou de converter nos últimos dias?

**O que você precisa**

- As plataformas de mídia conectadas na Nekt, com todas as contas de cada uma e a lista de contas esperadas
- A conversão que conta como resultado em cada plataforma, com o stream de conversões por ação do Google ativo no conector
- A moeda de cada conta do Google e o critério de imposto ou taxa sobre a verba, se houver

**O que você recebe**

- Uma tabela plataforma x conta x campanha x dia com o mesmo schema para todas
- Totais por plataforma que batem com cada gerenciador
- Dashboard comparativo com taxas recalculadas a partir das somas
- Um agente de IA que responde sobre mídia sem misturar unidades

## Detalhado

### O problema

Cada plataforma entrega custo numa unidade, clique com uma definição e conversão com uma regra de atribuição própria. O Google manda custo em micros, o Meta manda tudo como texto, e a coluna de conversões do Google pode somar até rota no mapa e visualização de página. Quem empilha as tabelas e soma direto entrega um painel que não bate com nenhum gerenciador, e o gestor volta para as abas de cada plataforma.

### Regras de negócio

1. **Converta o custo para reais na entrada.** Google Ads: metrics_cost_micros dividido por 1.000.000. Meta Ads: spend chega como texto, em moeda da conta, e precisa virar número. LinkedIn: costInLocalCurrency também é texto. Faça a conversão em cada plataforma antes de unificar, e guarde a moeda da conta numa coluna. No Meta, a moeda vem do campo currency da tabela de contas. No Google, a tabela de desempenho não traz moeda: declare a moeda de cada conta no context document. Conta em dólar é convertida com uma taxa declarada. (Evite: Somar metrics_cost_micros com spend na mesma coluna.)
2. **Um schema comum com colunas explícitas.** A tabela única tem as mesmas colunas para todas as plataformas: data, plataforma, conta, campanha (id e nome), investimento, impressões, cliques, conversões, valor de conversão e moeda. Cada bloco da união lista as colunas pelo nome. Quando uma conta ganha uma coluna nova no conector, a união não quebra nem desloca valores. (Evite: Empilhar as tabelas com select de todas as colunas.)
3. **A tabela de insights é a autoridade do realizado.** Investimento, impressões e cliques vêm só da tabela diária de desempenho. Campanhas, conjuntos e contas apenas enriquecem com nome, objetivo e status. Campanha pausada, renomeada ou excluída continua com o gasto que teve. O Meta entrega os insights por anúncio e dia: agregue para campanha e dia antes de unir. O desempenho de campanha do Google não traz a conta: tire o customer_id do resource_name da tabela de campanhas (customers/<id>/campaigns/<id>). As tabelas de configuração guardam várias versões por id: fique com a mais recente (maior updated_time; quando a tabela não tem updated_time, maior _nekt_sync_at) antes de cruzar. (Evite: Partir da lista de campanhas ativas e buscar o gasto delas.)
4. **Clique é clique no link.** No Meta, a coluna clicks conta qualquer clique no anúncio, inclusive curtida, perfil e expandir texto. O número que bate com o gerenciador e se compara com o clique do Google é link_click da lista de ações (ou inline_link_clicks). No Google, clicks já é clique no anúncio. (Evite: Comparar clicks do Meta com clicks do Google.)
5. **Conversão do Google é a conversão primária.** metrics_conversions soma só as ações marcadas como principais, mas se a conta marcou visualização de página, clique em botão ou rota no mapa como principal, elas entram. Abra por ação de conversão (o stream de conversões por campanha segmentado por segments.conversion_action, que precisa estar ativo no conector) e escolha as ações que valem como resultado. Se o stream não estiver ativo, use metrics_conversions e registre a limitação no context document. Nunca use metrics_all_conversions. GET_DIRECTIONS e STORE_VISIT são estimativas de topo de funil; PHONE_CALL_LEAD, CONTACT e SUBMIT_LEAD_FORM são o mais perto de um contato real. (Evite: Usar a coluna de conversões do Google como total de leads.)
6. **Conversão do Meta segue o objetivo do conjunto.** O resultado de cada campanha é o action_type do objetivo de otimização (optimization_goal) do conjunto. LEAD_GENERATION: lead. OFFSITE_CONVERSIONS: o evento de promoted_object.custom_event_type (LEAD vira lead, PURCHASE vira purchase, COMPLETE_REGISTRATION vira complete_registration). CONVERSATIONS: onsite_conversion.messaging_conversation_started_7d. LINK_CLICKS, LANDING_PAGE_VIEWS, REACH, THRUPLAY e VISIT_INSTAGRAM_PROFILE não têm conversão a cobrar. Objetivo fora desta lista é declarado no context document antes de entrar. lead já soma formulário e pixel, então nunca some lead com onsite_conversion.lead_grouped e offsite_conversion.fb_pixel_lead. (Evite: Somar todo action_type que contém lead.)
7. **Taxas são recalculadas a partir das somas.** CTR = soma de cliques / soma de impressões. CPC = soma de investimento / soma de cliques. CPM = soma de investimento / soma de impressões x 1000. Custo por conversão = soma de investimento / soma de conversões. As colunas de taxa que as plataformas entregam ficam fora da tabela, porque somar ou tirar média delas dá número errado em qualquer recorte. (Evite: Média do CTR diário ou soma do CPC de cada plataforma.)
8. **Performance Max e Demand Gen no nível de campanha.** Performance Max não tem anúncio individual, e o relatório por anúncio perde essas campanhas. A tabela unificada fica no nível de campanha. Quem precisa de anúncio usa o relatório de anúncios para pesquisa, display e vídeo e o de campanha só para Performance Max, sem sobrepor os dois. (Evite: Montar o investimento do Google pelo relatório de anúncios.)
9. **Dia no fuso da conta e janela de reprocessamento.** Cada plataforma corta o dia no fuso da conta. Use a data que a plataforma entrega, sem converter de novo. Meta e Google reajustam conversões dos últimos dias (no Meta, até cerca de 28 dias), então a carga regrava pelo menos os últimos 30 dias por plataforma, conta, campanha e dia, sem duplicar. Se a fonte manda várias extrações do mesmo dia, fique com a mais recente antes de somar. (Evite: Carregar só o dia anterior e nunca regravar.)
10. **Nulo é não medido, zero é zero.** Plataforma sem valor de conversão (como campanha de conversa no Meta) fica com valor nulo, não zero, e o ROAS dela é nulo. O Google devolve 0 em metrics_conversions_value quando a conta não mede valor: se nenhuma ação de conversão da conta tem valor, trate como nulo. Conta compartilhada entre marcas ou entre cliente e agência é filtrada por um padrão de nome de campanha declarado. Fonte antiga que foi substituída sai da união: antes de unir, procure tabelas da mesma plataforma com o mesmo account_id em outro conector ou prefixo e compare o gasto mensal; se os valores coincidem, só uma fica. (Evite: Preencher conversão ausente com zero e somar duas fontes da mesma conta.)

### De cada plataforma para o schema comum

Campo de origem de cada métrica e o tratamento antes da união.

- **Google Ads · investimento** → Dividir por 1.000.000 (`metrics_cost_micros`)
- **Meta Ads · investimento** → Texto para número (`spend`)
- **LinkedIn Ads · investimento** → Texto para número (`costInLocalCurrency`)
- **Google Ads · cliques** → Clique no anúncio (`metrics_clicks`)
- **Meta Ads · cliques** → Clique no link (`link_click`)
- **Google Ads · conversões** → Só as ações escolhidas como resultado (`metrics_conversions · segments.conversion_action`)
- **Meta Ads · conversões** → action_type do objetivo do conjunto, somado do anúncio para a campanha (`actions · optimization_goal`)
- **Valor de conversão** → Nulo quando a plataforma não mede, inclusive o 0 do Google sem ação com valor (`metrics_conversions_value · action_values`)
- **Taxas nativas** → Fora da tabela, recalculadas das somas (`ctr · cpc · cpm`)

### Definições

| Métrica | Definição |
|---|---|
| Investimento | soma do custo em reais por plataforma, conta, campanha e dia, já convertido da unidade de cada plataforma |
| Cliques | cliques no anúncio no Google e cliques no link no Meta, por campanha e dia |
| Conversões | soma das ações de conversão escolhidas como resultado em cada plataforma, por campanha e dia, pela data que a plataforma atribui; nula em campanha sem conversão a cobrar |
| CTR | soma de cliques / soma de impressões no recorte |
| CPC | soma de investimento / soma de cliques no recorte |
| CPM | soma de investimento / soma de impressões x 1000 no recorte |
| Custo por conversão | soma de investimento / soma de conversões no recorte, só em campanhas que têm conversão a cobrar |
| ROAS de plataforma | soma do valor de conversão / soma de investimento, nulo quando a plataforma não mede valor (no Google, quando nenhuma ação de conversão da conta tem valor) |

### Armadilhas

- **Um fator de um milhão.** O custo do Google em micros foi somado com o spend do Meta em reais e o Google virou quase todo o investimento do painel. Como evitar: Converta cada plataforma para reais antes da união e confira o total de cada uma com o gerenciador.
- **Google com seis vezes mais conversões.** A coluna de conversões do Google somava micro-conversões e mostrava 43 mil conversões contra menos de 7 mil leads do Meta no mesmo período. A comparação entre plataformas estava errada por um fator de seis. Como evitar: Ative o stream de conversões por ação no conector do Google e use só as ações que valem como resultado.
- **A união parou por uma coluna.** O conector de uma única conta ganhou uma coluna nova e a união por posição quebrou o pipeline de todas as contas. Como evitar: Liste as colunas pelo nome em cada bloco da união.
- **Performance Max sumiu do relatório.** O investimento do Google foi montado pelo relatório de anúncios, que não tem as campanhas de Performance Max e Demand Gen. O total ficou abaixo do gerenciador. Como evitar: Use o nível de campanha como base e trate o anúncio só onde ele existe.
- **Contas fora do conector.** Os conectores vivos cobriam só parte das contas de uma plataforma, e o investimento do ano ficou subestimado em 15% a 36% sem ninguém perceber. Como evitar: Mantenha um cadastro de contas esperadas por plataforma e alerte quando uma conta não aparece na tabela. Sem cadastro, use como lista esperada as contas ativas da tabela de contas do conector.
- **O número do mês mudou depois do relatório.** O Meta reajustou conversões dos dias anteriores e a carga que só lia o dia novo deixou a tabela diferente do gerenciador. Como evitar: Regrave a janela recente a cada carga e avise no relatório que os últimos dias ainda podem mudar.

Validado em dados reais: Na conta de Meta Ads da própria Nekt, em 2026, a coluna clicks soma cerca de 1,5 vez o clique no link, e metade das linhas diárias tem os dois números diferentes. No Google Ads da Nekt, metrics_conversions vem fracionada pela atribuição baseada em dados e na data do clique; contadas pela data da conversão, as conversões de cada mês ficam de 10% a 25% maiores.

### Teste de aceitação

- [ ] O investimento de cada plataforma no mês fechado bate com o gerenciador dela, com diferença abaixo de 1%.
- [ ] A soma da tabela por campanha no mês é igual ao investimento do mês numa série mensal de referência (um relatório mensal já validado ou um export do gerenciador), para cada plataforma.
- [ ] Não existe mais de uma linha por plataforma, conta, campanha e dia.
- [ ] CTR, CPC e CPM de qualquer recorte são iguais à razão das somas daquele recorte.
- [ ] Todas as contas do cadastro de contas esperadas (sem cadastro, as contas ativas da tabela de contas do conector) aparecem na tabela com gasto no mês, ou estão marcadas como pausadas.

### Context document

```text
Mídia paga unificada
- Fonte do investimento, impressões, cliques e conversões: a tabela unificada no grão plataforma x conta x campanha x dia. Não some tabelas de plataforma por fora.
- Investimento em reais. Google veio de metrics_cost_micros / 1.000.000; Meta de spend convertido para número; LinkedIn de costInLocalCurrency convertido. A moeda das contas do Google é a declarada nas exceções.
- Clique no Meta é clique no link (link_click). Clique no Google é clique no anúncio.
- Conversão do Google = só as ações de conversão escolhidas como resultado, nunca metrics_all_conversions. Conversão do Meta = action_type do objetivo de otimização do conjunto. Se o Google não tem conversões por ação, avise que o número inclui todas as ações primárias.
- Campanha de alcance ou reconhecimento não tem conversão a cobrar. Diga isso, não diga zero conversões.
- CTR, CPC, CPM e custo por conversão são sempre recalculados das somas do recorte. Nunca some nem faça média de taxas.
- Valor de conversão nulo significa não medido. ROAS fica nulo nesses casos.
- Os últimos 30 dias ainda podem mudar porque as plataformas reajustam conversões. Avise ao reportar o mês corrente.
- Conversão de plataforma não é lead do CRM. Para lead, venda e receita por canal use os casos de funil e atribuição.
Exceções por cliente:
- <cliente>: ações de conversão do Google que contam como resultado: <lista de ações>.
- <cliente>: investimento reportado <com|sem> imposto de <percentual> sobre a verba.
- <cliente>: conta compartilhada; só entram campanhas cujo nome contém <padrão>.
- <cliente>: moeda das contas do Google: <moeda>; taxa de conversão declarada: <taxa>.
- <cliente>: contas esperadas por plataforma: <lista de contas>; fonte substituída fora da união: <fonte>.
```

### Variações

- **Agência com vários clientes:** Um cadastro conta para cliente define o cliente de cada linha, nunca o nome da tabela ou da conta.
- **Planejado x realizado:** Cruze com o plano de mídia aprovado por mês e campanha e mostre o ritmo de gasto, com e sem imposto.
- **Mais plataformas:** TikTok, Microsoft Ads e mídia de marketplace entram no mesmo schema, cada uma com sua conversão de resultado declarada.
