---
id: imobiliario/midia-ate-venda-empreendimento
industria: Imobiliário
uso: muito usado
esforco: médio
grao: Dia x conta x campanha para custo; lead do CRM com canal e empreendimento; mês x canal para CAC e ROI
---

# Mídia até a venda por empreendimento

Quanto custou cada lead, visita e venda por canal e por lançamento, com os leads contados no CRM e o custo vindo das plataformas e do financeiro.

## Resumo executivo

**Para quem:** Imobiliárias e incorporadoras que investem em Meta, Google e portais e precisam saber quais canais e lançamentos trazem venda.

**O que resolve**

- O CPL usa os leads que de fato entraram no CRM, e não o número que a plataforma reporta.
- Cada lead, visita e venda fica ligado a um canal e a um empreendimento, inclusive portais, que não têm API de custo.
- Vendas e locação, ou cada lançamento, têm CPL, CAC e ROI próprios, sem misturar contas.

**Por que importa:** A verba de lançamento é alta e concentrada em poucas semanas. Se o CPL vem da plataforma, ele não bate com o que os corretores recebem e a diretoria corta o canal errado. Ligar custo a lead do CRM e a venda é o que permite dizer quanto VGV cada real de mídia trouxe.

**Perguntas de negócio que responde**

- Quanto custou cada lead, visita e venda por canal neste mês?
- Qual empreendimento está com o CPL acima do previsto no plano de mídia?
- Quanto VGV veio de leads de mídia paga no trimestre?
- Os portais trazem lead mais barato que Meta e Google?
- Algum canal vai ficar sem verba antes do fim do mês?
- Quantos leads o lançamento X recebeu ontem em cada plataforma?

**O que você precisa**

- Meta Ads e Google Ads conectados, com todas as contas (vendas, locação, cada marca)
- CRM conectado, com o campo de origem do lead preenchido
- A lista de empreendimentos com o trecho que identifica cada um no nome da campanha, e o plano de mídia do mês

**O que você recebe**

- Uma tabela diária de custo por conta, canal, campanha e empreendimento
- Uma tabela por lead do CRM com canal, empreendimento, visita e venda
- CPL, CAC e ROI mensais por canal e lançamento
- Alerta de plano de mídia x realizado no mês corrente

## Detalhado

### O problema

O Meta e o Google contam conversões do jeito deles, e o CRM conta leads de outro. Portais imobiliários trazem muito lead e não têm API de custo, então somem do CPL. Quem divide custo da plataforma por lead da plataforma entrega um CPL que não bate com o comercial, e quem não liga campanha a empreendimento não sabe qual lançamento está caro.

### Regras de negócio

1. **Lead vem do CRM, custo vem da plataforma.** O número de leads é contado no CRM, pelo campo de origem do contato ou do negócio (por exemplo, media_source no Imobzi, source_id no Bitrix24, a origem no Vista ou no CV CRM). Meta e Google entram só com investimento, impressões e cliques. Num caso real, os leads lidos da API das plataformas vinham zerados ou divergentes, e o CPL só passou a bater com o comercial quando a contagem foi para o CRM. (Evite: Dividir o investimento pelos leads reportados pelo Meta e pelo Google.)
2. **CPL de mídia só com origem inbound.** Origens de prospecção ativa (ligação fria, disparo de WhatsApp de marketing, SDR) e origens que não são cliente (vaga de corretor, 'Nenhum', '-') ficam fora do CPL de mídia. Elas têm custo próprio, como lista, evento e ferramenta, e podem ter um custo por lead separado. Num caso real, o outbound tinha o dobro do volume do inbound e derrubava o CPL pela metade. (Evite: Todo lead criado no mês no denominador do CPL.)
3. **Um de-para de origem para canal.** Mantenha uma tabela única que leva cada origem do CRM e cada traffic_source da automação de marketing para um canal: Meta, Google, Portais, Site orgânico, Indicação, Offline ou Outbound. Origem nova cai em 'Não mapeado' e aparece num relatório até alguém classificar. Gere o id de cada origem a partir de um hash do nome normalizado: ids derivados do tamanho do texto colidiram ('Live' e 'Site' ganharam o mesmo id). (Evite: Classificar origem com CASE espalhado em cada consulta.)
4. **Portal e offline pelo contas a pagar.** Portais imobiliários, anúncios em sites, e-mail marketing, placas, outdoor e eventos não têm API de custo. Leia o lançamento no contas a pagar pela subcategoria e declare se usa a data de pagamento ou de vencimento. Escolha uma fonte de custo por canal: se Meta e Google também estão no financeiro, não some com o custo da API. (Evite: Somar o Meta da API com o Meta lançado no financeiro.)
5. **Empreendimento por lista fechada de trechos.** Normalize o nome da campanha (minúsculas, sem acento) e procure os trechos de uma lista fechada por empreendimento. Trecho curto que aparece dentro de outras palavras é buscado como palavra inteira. Campanha sem trecho reconhecido vai para 'outro', não entra na contagem por empreendimento e é listada para alguém corrigir o nome ou a lista. Campanhas de marca do próprio empreendimento entram nele. No CRM, o empreendimento vem do campo canônico, nunca do nome do negócio. (Evite: LIKE solto com o nome do empreendimento e campanhas sem par sumindo em silêncio.)
6. **Uma conta por linha de negócio, somadas com origem.** Vendas e locação, ou marcas diferentes, costumam ter contas de anúncio separadas em cada plataforma, e às vezes formulários e automações de marketing separados. Una as contas numa tabela com as colunas conta e linha de negócio. CPL de venda e de locação nunca se misturam: o ticket, o ciclo e o custo aceitável são outros. (Evite: Um CPL único que mistura venda e locação.)
7. **No Meta, o destino do conjunto escolhe o lead.** Para comparar com o CRM, conte o lead do Meta pelo destination_type do conjunto. Em ON_AD, o anúncio abre formulário e nunca leva ao site: o lead é o do formulário, e um lead de pixel ali é o mesmo lead contado de novo. Nos outros destinos, vale o pixel do site. Campanhas de conversa contam conversas iniciadas, numa coluna própria. Antes de somar custo, deixe um valor por anúncio, conjunto e dia. (Evite: Somar formulário, pixel e conversa como leads.)
8. **No Google, declare a data das conversões.** metrics_conversions conta as conversões principais pela data do clique, fracionadas pela atribuição. metrics_conversions_by_conversion_date conta pela data em que a conversão aconteceu. Para comparar com leads criados no CRM no mês, use a data da conversão; para reproduzir o gerenciador, a do clique. O custo vem em micros: divida metrics_cost_micros por 1.000.000. conversions inclui toda ação marcada como principal, então confirme que só lead está marcada. (Evite: Misturar as duas bases de data entre meses ou relatórios.)
9. **Venda ligada ao último lead antes dela.** Um comprador costuma gerar vários leads antes de fechar. Para VGV de mídia, ligue cada venda ao lead mais recente do mesmo contato criado antes da data da venda. Guarde também o primeiro lead para a visão de primeiro toque, mas o painel usa uma só, declarada. Cada venda tem no máximo um lead atribuído. (Evite: Contar a venda em todos os leads do contato.)
10. **Mês sem venda não é prejuízo de 100%.** ROI = (receita - investimento) / investimento x 100. No imobiliário a venda costuma cair meses depois do lead, então mês com custo e sem venda mostra ROI neutro com o aviso 'sem venda no período', e não -100%. Limite o ROI a um teto (por exemplo, 9.999%) para canal de custo quase zero não distorcer o gráfico. Declare se a receita é VGV ou comissão. (Evite: ROI de -100% em todo mês sem venda.)

### De-para de origem para canal

Origem do CRM, traffic_source da automação de marketing e GA4.

- **traffic_source com prefixo encoded_** → Decodificar o base64 antes de classificar (`encoded_<base64>`)
- **gclid ou gad_ no traffic_source** → Google (`gclid|gad_`)
- **facebook, instagram, paid_social** → Meta (`facebook|instagram|paid_social`)
- **GA4: medium 'paid' com fonte social** → Social pago, não 'Outros' (`sessionmedium = 'paid'`)
- **GA4: l.instagram.com, facebook.com** → Social orgânico, não 'Referral' (`sessionsource`)
- **Portal imobiliário, anúncio em site** → Portais, custo pelo contas a pagar (`subcategoria do título`)
- **Ligação fria, WhatsApp de marketing, SDR** → Outbound, fora do CPL de mídia
- **Vaga de corretor, 'Nenhum', '-'** → Fora de toda contagem de lead
- **Evento de status do CRM enviado à automação** → Não é conversão de mídia (`ex.: ganho de negócio`)
- **Origem sem par na tabela** → Não mapeado, listado para classificar

### Definições

| Métrica | Definição |
|---|---|
| Investimento | soma do custo do canal no período: spend no Meta, metrics_cost_micros / 1.000.000 no Google, títulos da subcategoria no contas a pagar para portais e offline |
| Leads | contatos ou negócios distintos criados no CRM no período com origem inbound mapeada para o canal, sem testes, duplicados e e-mails internos |
| CPL | investimento do canal / leads do canal, no mesmo período e na mesma linha de negócio (venda ou locação) |
| Custo por visita | investimento do canal / leads do canal com visita concluída no período |
| CAC | investimento do canal no mês / vendas atribuídas ao canal no mês, pela data oficial da venda |
| VGV de mídia | soma do valor de venda das vendas cujo lead atribuído (último antes da venda) é de canal pago |
| ROI | (receita - investimento) / investimento x 100, com receita declarada (VGV ou comissão), neutro e sinalizado quando não há venda, com teto declarado |
| Plano x realizado do mês | gasto e leads do mês até hoje / verba líquida e meta de leads do plano, com projeção linear até o último dia |

### Armadilhas

- **CPL zerado ou infinito.** Os leads vinham da API do Meta e do Google e chegavam zerados em boa parte dos dias, e o painel mostrava CPL vazio. Como evitar: Conte leads no CRM e use as plataformas só para custo.
- **Meta pago caindo em 'Outros'.** No GA4, o Meta usa medium 'paid', e não 'cpc'. O maior canal pago aparecia como 'Outros', e links de l.instagram.com como 'Referral'. Como evitar: Regra explícita: medium 'paid' com fonte social é social pago; subdomínios do Instagram e do Facebook são social.
- **Venda contada como lead novo.** A integração do CRM enviava à automação de marketing eventos de mudança de status, como ganho de negócio, e o funil por canal contava essas vendas como conversões. Como evitar: Exclua eventos de status do CRM da contagem de conversões por canal.
- **Funil parado numa data.** Depois de trocar a conexão da automação de marketing, a tabela antiga parou de atualizar e o funil por canal ficou congelado semanas sem ninguém notar. Como evitar: Aponte para a fonte atual e monitore a data mais recente de cada tabela.
- **Lead de teste no total.** Leads de teste do formulário do Meta, e-mails de teste e contatos internos da agência entravam na contagem e no público enviado de volta às plataformas. Como evitar: Exclua test leads, e-mails com 'teste' ou 'test' e domínios internos antes de contar.
- **Lançamento sem lead.** Uma campanha com nome fora do padrão caiu em 'outro', e o empreendimento apareceu com zero leads na reunião de lançamento. Como evitar: Publique sempre a lista de campanhas com resultado que caíram em 'outro'.

Validado em dados reais: Na conta de Google Ads da própria Nekt, de março a setembro de 2026, as conversões pela data do clique (metrics_conversions) ficaram entre 8% e 19% abaixo das conversões pela data da conversão em todos os meses, e vêm fracionadas pela atribuição. Trocar de base de data muda o CPL do mês nessa mesma proporção.

### Teste de aceitação

- [ ] Para um mês fechado, a soma dos leads por canal é igual ao total de leads inbound do CRM no mês, e todo lead sem canal aparece como 'Não mapeado'.
- [ ] O investimento de Meta e Google por conta e mês bate com o gerenciador de cada plataforma (diferença abaixo de 1%).
- [ ] Leads por empreendimento mais 'outro' somam o total de leads de mídia do período, e a lista de campanhas em 'outro' é publicada.
- [ ] Nenhuma origem outbound aparece no CPL de mídia.
- [ ] Cada venda tem no máximo um lead atribuído, e o VGV de mídia não passa o VGV total do período.

### Context document

```text
Mídia até a venda (imobiliário)
- Leads são contados no CRM, pelo campo de origem do contato ou do negócio. Meta e Google entram só com custo, impressões e cliques.
- CPL = investimento do canal / leads do canal no CRM, no mesmo período e na mesma linha de negócio (venda ou locação).
- Origens outbound (ligação fria, WhatsApp de marketing, SDR) e não clientes (vaga de corretor, 'Nenhum', '-') ficam fora do CPL de mídia.
- O canal de cada origem vem da tabela de-para. Origem sem par é 'Não mapeado': diga isso, não chute o canal.
- Custo de portais e mídia offline vem do contas a pagar, pela subcategoria. Uma fonte de custo por canal.
- Empreendimento da campanha: nome normalizado (minúsculas, sem acento) e lista fechada de trechos. Sem trecho = 'outro'. Sempre liste as campanhas com resultado em 'outro'.
- Meta: em conjunto com destination_type = ON_AD, lead = formulário; nos demais, pixel do site. Conversas ficam em coluna própria.
- Google: custo = metrics_cost_micros / 1.000.000. Conversões pela data da conversão para comparar com o CRM.
- Venda atribuída ao lead mais recente do contato antes da data da venda.
- ROI sem venda no período é neutro e sinalizado, nunca -100%.
- Eventos de status do CRM enviados à automação de marketing não são conversão.
Exceções por cliente:
- <cliente>: contas de anúncio <conta_venda> e <conta_locacao>; nunca somar CPL das duas.
- <cliente>: trechos de campanha por empreendimento: <trecho> = <empreendimento>.
- <cliente>: receita do ROI = <VGV ou comissão>.
```

### Variações

- **Conversões de volta às plataformas:** Envie a etapa real do lead no CRM (visita, proposta, ganho) para o Meta e o Google, dentro da janela de 7 dias do Meta, casando por e-mail e telefone normalizados.
- **Públicos por etapa:** Leads com visita ou ganho viram semente de lookalike; públicos pequenos demais, como os de locação, servem só para remarketing e exclusão.
- **Funil de leads pagos:** Lead, qualificado, reunião e ganho por dia só para origens pagas, em cada pipeline, sem duplicados e testes.
