Aquisição

Visão geral da mídia paga

GET
/v1/acquisition/paid-media

Visão geral da mídia paga (Meta Ads e Google Ads): investimento, impressões, alcance, cliques, leads e custo por lead, com série diária.

Use para acompanhar a performance da mídia paga. Cada card traz value e changePct, a variação contra o período anterior de mesma duração. daily traz um ponto por dia do período, sem lacunas, e os cards são a soma de daily.

  • leads soma os leads do CRM (HubSpot, Kommo, CRM V4) atribuídos a um canal pago por UTM e os leads registrados pelo Meta Ads e pelo Google Ads que o funil da organização conta na etapa de Interesse. Um lead que vem de um formulário do Meta e também entra no CRM com UTM pago é contado nas duas fontes, como no funil. leadsBySource separa o total por origem.
  • cpl = investimento total ÷ leads totais, nunca a média dos CPLs diários.
  • hasLeadSource: false significa que a organização não tem nenhuma fonte de leads: leads, leadsBySource e cpl vêm null (não medidos).
  • reach é só do Meta Ads e é uma aproximação, somada por dia e campanha.

Autorização

ClientIdAuthClientSecretAuth
headerx-client-id<token>

Client ID

headerx-client-secret<token>

Client secret

Parâmetros de query

organizationId*string

Identificador da organização (obrigatório). Um valor ausente ou que não seja string resulta em 400.

period?stringDescontinuado

Descontinuado: use startDate e endDate, que têm precedência quando enviados. Período relativo de N dias terminando hoje, inclusive (7d = hoje e os 6 dias anteriores). "Hoje" é o dia de calendário em UTC, e esse último dia ainda está parcial. Valores aceitos: 7d, 30d, 90d, 1y. Omitido ou vazio equivale a 30d; qualquer outro valor retorna 400.

Padrão"30d"
Valor em"7d""30d""90d""1y"
startDate?string

Início do período (YYYY-MM-DD, inclusivo). Envie junto com endDate: enviar só um dos dois retorna 400. Tem precedência sobre period. Use só a data: data com hora ou data inexistente retorna 400. Regras: startDate ≤ endDate, nenhuma data no futuro (UTC) e no máximo 365 dias entre as datas (até 366 dias no período). A comparação usa o período de mesma duração imediatamente anterior.

Formatodate
endDate?string

Fim do período (YYYY-MM-DD, inclusivo). Veja startDate para as regras. Quando o fim é hoje, esse último dia ainda está parcial, porque os dados do dia continuam chegando.

Formatodate

Corpo da resposta

Visão geral de mídia paga retornada com sucesso

application/json
  1. response

Visão geral da mídia paga: cards do Meta Ads + Google Ads com variação contra o período anterior, e a série diária por trás deles.

investment*

Valor de uma métrica mais a variação relativa contra o período anterior. changePct vem null quando não pode ser calculado (um dos lados null ou valor anterior igual a 0). Nesse caso, não exiba a variação.

impressions*

Valor de uma métrica mais a variação relativa contra o período anterior. changePct vem null quando não pode ser calculado (um dos lados null ou valor anterior igual a 0). Nesse caso, não exiba a variação.

reach*

Pessoas alcançadas no Meta Ads (o Google Ads não reporta alcance). É uma aproximação: o Meta informa pessoas únicas por campanha e por dia, e este valor soma esses números, então quem foi alcançado em vários dias ou por várias campanhas conta mais de uma vez. value é null quando a organização não tem dados do Meta Ads ou o alcance não pôde ser lido; 0 quando o Meta é medido e não alcançou ninguém.

clicks*

Valor de uma métrica mais a variação relativa contra o período anterior. changePct vem null quando não pode ser calculado (um dos lados null ou valor anterior igual a 0). Nesse caso, não exiba a variação.

leads*

Valor de uma métrica mais a variação relativa contra o período anterior. changePct vem null quando não pode ser calculado (um dos lados null ou valor anterior igual a 0). Nesse caso, não exiba a variação.

leadsBySource*|

leads.value da janela dividido por fonte. Sem variação em relação à janela anterior. Null exatamente quando hasLeadSource é false.

cpl*

Valor de uma métrica mais a variação relativa contra o período anterior. changePct vem null quando não pode ser calculado (um dos lados null ou valor anterior igual a 0). Nesse caso, não exiba a variação.

hasLeadSource*boolean

Indica se a organização tem QUALQUER fonte de lead, independentemente da janela: um lead do CRM jamais creditado a um canal pago, OU um lead de plataforma (evento do Meta / categoria de lead do Google) jamais registrado sob a configuração de Interesse do funil. False = nenhuma das duas: leads e CPL não são medidos (null), não zero.

daily*array<>

Um ponto por dia do calendário da janela, do mais antigo para o mais recente, sem lacunas.

curl -X GET "https://example.com/v1/acquisition/paid-media?organizationId=c0ad4763-173e-4a05-9cff-5208c8ea5f6a&period=30d&startDate=2026-03-11&endDate=2026-03-22"

{  "investment": {    "value": 11300,    "changePct": 8.4  },  "impressions": {    "value": 1250000,    "changePct": 3.1  },  "reach": {    "value": 123200,    "changePct": 4.2  },  "clicks": {    "value": 18400,    "changePct": -1.2  },  "leads": {    "value": 412,    "changePct": 12.6  },  "leadsBySource": {    "crm": 300,    "meta": 100,    "google": 12  },  "cpl": {    "value": 27.43,    "changePct": -3.73  },  "hasLeadSource": true,  "daily": [    {      "date": "2026-09-01",      "investment": 3800,      "impressions": 420000,      "reach": 61000,      "clicks": 6100,      "leads": 140,      "leadsBySource": {        "crm": 100,        "meta": 35,        "google": 5      },      "cpl": 27.14    },    {      "date": "2026-09-02",      "investment": 0,      "impressions": 0,      "reach": 0,      "clicks": 0,      "leads": 0,      "leadsBySource": {        "crm": 0,        "meta": 0,        "google": 0      },      "cpl": null    },    {      "date": "2026-09-03",      "investment": 7500,      "impressions": 830000,      "reach": 62200,      "clicks": 12300,      "leads": 272,      "leadsBySource": {        "crm": 200,        "meta": 65,        "google": 7      },      "cpl": 27.57    }  ]}