Case técnico · Marketing Analytics · SQL · BI

Growth Analytics para controlar CAC, CPL e conversão.

Um case de dados simulando o desafio de consolidar investimentos de mídia, leads, clientes e acessos de páginas em uma camada analítica capaz de apoiar decisões diárias de aquisição.

  • SQL
  • Data Mart
  • Modelagem de dados
  • Looker Studio
  • Marketing Analytics

O problema não era só medir mídia. Era criar confiança operacional.

Empresas com Google Ads, Meta Ads, TikTok Ads, CRM, landing pages e clientes convertidos precisam de uma visão consolidada para decidir onde investir, onde cortar orçamento e como interpretar gargalos de conversão.

CONTEXT · 01
Desafio

Dados distribuídos em plataformas diferentes

Investimento, leads, clientes e acessos ficam espalhados em sistemas com granularidades e chaves distintas. Sem documentação, cada análise vira esforço manual.

Objetivo

Conectar campanha, custo e conversão

Consolidar uma leitura por data, campanha e plataforma, calculando leads, clientes, CPL, CAC e taxa de conversão para apoiar decisões de Growth.

Entrega

Consulta analítica + dashboard de acompanhamento

O case evolui da documentação do Data Mart para queries SQL e, por fim, para uma visualização consumível pela operação de mídia.

Primeira camada: documentação do Data Mart

Antes de criar o dashboard, a estrutura precisa estar clara. O levantamento das tabelas, colunas, origens e relacionamentos reduz ambiguidade e melhora a manutenção das análises.

MODEL · 02
MER interativo · dbdiagramAds · Leads · Clientes · Páginas

Segunda camada: SQL para perguntas reais de negócio

As consultas demonstram como responder solicitações pontuais e construir uma base agregada para acompanhamento de campanhas. O foco está na clareza da regra e na capacidade de transformar tabelas dispersas em leitura operacional.

QUERY · 03
Clientes convertidos por origem GoogleSolicitação 01
SELECT 
    c.nome_completo AS "Nome Completo", 
    c.email AS "E-mail"
FROM clientes c
LEFT JOIN leads_salesforce l 
    ON c.id_lead_conversao = l.id
WHERE
    l.data_conversao = '2025-03-14'
    AND l.origem = 'Campanha Google'
ORDER BY l.data_conversao;
Leads e clientes por páginaSolicitação 02
SELECT 
    l.data_criacao AS "Data de criação do Lead",
    l.url_landing_page AS "Página",
    COUNT(DISTINCT l.id) AS "Quantidade de Leads",
    COUNT(DISTINCT c.id) AS "Quantidade de Clientes"
FROM leads_salesforce l
LEFT JOIN clientes c 
    ON c.id_lead_conversao = l.id
WHERE
    l.data_criacao >= '2025-01-01'
GROUP BY
    l.data_criacao,
    l.url_landing_page
ORDER BY l.data_criacao;
Base de campanhas com investimento, leads, clientes, CPL e CACSolicitação 03
WITH base_anuncios AS (
  SELECT
    data,
    id_campanha,
    campanha,
    SUM(custo) AS custo,
    'Meta' AS plataforma
  FROM investimento_anuncio_meta_ads
  WHERE EXTRACT(YEAR FROM data) = 2025
  GROUP BY data, id_campanha, campanha

  UNION ALL

  SELECT
    data,
    id_campanha,
    campanha,
    SUM(custo) AS custo,
    'Google' AS plataforma
  FROM investimento_anuncio_google_ads
  WHERE EXTRACT(YEAR FROM data) = 2025
  GROUP BY data, id_campanha, campanha

  UNION ALL

  SELECT
    data,
    id_campanha,
    campanha,
    SUM(custo) AS custo,
    'TikTok' AS plataforma
  FROM investimento_anuncio_tiktok_ads
  WHERE EXTRACT(YEAR FROM data) = 2025
  GROUP BY data, id_campanha, campanha
),
leads_por_campanha_data AS (
  SELECT
    campanha_id,
    DATE(data_criacao) AS data,
    COUNT(*) AS quantidade_leads
  FROM leads_salesforce
  WHERE EXTRACT(YEAR FROM data_criacao) = 2025
  GROUP BY campanha_id, data
),
clientes_por_campanha_data AS (
  SELECT
    l.campanha_id,
    DATE(c.created_at) AS data,
    COUNT(*) AS quantidade_clientes
  FROM clientes c
  JOIN leads_salesforce l 
    ON c.id_lead_conversao = l.id
  WHERE EXTRACT(YEAR FROM c.created_at) = 2025
  GROUP BY l.campanha_id, data
)
SELECT
  a.data AS "Data",
  a.id_campanha AS "ID da Campanha",
  a.campanha AS "Nome da Campanha",
  a.custo AS "Investimento (R$)",
  a.plataforma AS "Plataforma",
  COALESCE(lp.quantidade_leads, 0) AS "Quantidade de Leads",
  COALESCE(cp.quantidade_clientes, 0) AS "Quantidade de Clientes",
  ROUND(a.custo / NULLIF(lp.quantidade_leads, 0), 2) AS "CPL (R$)",
  ROUND(a.custo / NULLIF(cp.quantidade_clientes, 0), 2) AS "CAC (R$)"
FROM base_anuncios a
LEFT JOIN leads_por_campanha_data lp 
  ON lp.campanha_id = a.id_campanha
  AND lp.data = a.data
LEFT JOIN clientes_por_campanha_data cp 
  ON cp.campanha_id = a.id_campanha
  AND cp.data = a.data
ORDER BY a.data, a.plataforma;

Amostra da saída para leitura executiva

Com a base consolidada, a equipe consegue enxergar investimento, volume de leads, clientes, CPL e CAC por campanha e plataforma. A tabela abaixo resume o tipo de entrega que alimenta a análise gráfica.

OUTPUT · 04
DataCampanhaPlataformaInvestimentoLeadsClientesCPLCAC
2025-01-05Impulsione com IAGoogleR$ 842,503421R$ 24,78R$ 40,12
2025-01-07Volta às Aulas TechMetaR$ 732,002819R$ 26,14R$ 38,53
2025-01-09Desafio Digital 7 DiasTikTokR$ 495,304125R$ 12,08R$ 19,81
2025-01-12Semana da InovaçãoGoogleR$ 1.083,204631R$ 23,55R$ 34,94
2025-01-14Black Friday EducaMetaR$ 1.350,905037R$ 27,02R$ 36,51

Terceira camada: dashboard para ritual de acompanhamento

A visualização transforma a consulta em rotina de gestão: leitura diária de clientes, leads, taxa de conversão, CPL e CAC, com filtros por plataforma e campanha.

BI · 05

Resultado: menos planilha solta, mais decisão rastreável

Para resolver o desafio desenvolvi o caminho completo: documentação da estrutura, SQL para responder perguntas, consolidação de métricas e publicação de uma interface de acompanhamento.

IMPACT · 06
01

Padronização da leitura de campanhas, evitando análises isoladas por plataforma.

02

Criação de uma base analítica capaz de cruzar custo, lead e cliente por data e campanha.

03

Inclusão de taxa de conversão como métrica complementar para não avaliar mídia apenas por custo.

04

Transformação da visualização em apoio para reuniões diárias da operação de mídia paga.

Aprendizado

O dashboard é a última camada, não a primeira

Uma boa visualização depende de documentação, chaves de relacionamento, regra de negócio e consultas bem estruturadas. Sem isso, o gráfico pode ficar bonito, mas frágil.

  • Data Quality
  • Governança
  • Storytelling de dados

Projeto de portfólio

Grande parte da análise de dados passa por raciocínio técnico, não só ferramenta.

Este material posiciona o projeto como prova de capacidade em Marketing Analytics, SQL, BI e modelagem de dados, conectado à identidade visual e profissional do site.