Aquisição

Tabela de campanhas

GET
/v1/acquisition/campaigns

Tabela hierárquica canal → campanha → conjunto de anúncios → anúncio, com métricas de mídia e de negócio, separada em dois grupos.

Use para descobrir quais campanhas, conjuntos e anúncios performam melhor. A tabela inteira vem em uma única resposta, sem paginação nem ordenação.

  • groups traz sempre acquisition (campanhas marcadas como aquisição) e other (marca, monetização, campanhas sem classificação e clientes sem campanha identificada), mesmo vazios. No grupo other, cac e ltvCacRatio são sempre null.
  • Métricas de mídia (investment, impressions, clicks, cpm, ctr, cpc) existem em todos os níveis. Métricas de negócio (newCustomers, cac, avgLtv, ltvCacRatio, roi, paybackMonths, leads) só existem nos níveis de canal e campanha e vêm null abaixo deles.
  • A linha Campanha não identificada reúne, em cada canal, os clientes que não puderam ser ligados a uma campanha específica.
  • search filtra pelo nome da campanha, do conjunto ou do anúncio. Com busca ativa, os totais de cada canal somam só as campanhas exibidas e deixam de bater com /v1/acquisition/channels.
  • Limite de 5.000 linhas: anúncios e depois conjuntos são removidos primeiro, e truncation informa o corte.

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
search?string

Filtro de texto pelo nome da campanha, do conjunto de anúncios ou do anúncio, sem diferenciar maiúsculas de minúsculas (também encontra Campanha não identificada). Vazio não filtra. Só /v1/acquisition/campaigns usa este parâmetro; os demais endpoints o aceitam e ignoram.

Corpo da resposta

Tabela de campanhas retornada com sucesso

application/json
  1. response
marginConfigured?boolean

Indica se a organização configurou uma margem de contribuição na plataforma. false significa que o padrão de 100% está em uso.

marginCompleteness?MarginCompleteness

Completude da margem de contribuição configurada por itens de custo: complete = todos os itens resolvidos; partial = algum item pendente, então a margem aplicada é parcial; none = sem composição por itens (margem nunca configurada ou configurada como um percentual único; diferencie com marginConfigured).

Valor em"complete""partial""none"
marginItemStatus?

Status por item da composição da margem (synced = vindo dos pedidos, configured = informado pelo usuário, pending = não configurado ou com dados ausentes). null quando a organização não tem composição.

groups*array<>

Sempre exatamente dois grupos, nesta ordem: acquisition e other. Os dois são retornados mesmo quando vazios.

truncation*

Informa se a tabela foi cortada pelo limite de linhas, para você poder exibir "mostrando N de M linhas" em vez de uma árvore incompleta sem aviso.

curl -X GET "https://example.com/v1/acquisition/campaigns?organizationId=c0ad4763-173e-4a05-9cff-5208c8ea5f6a&period=30d&startDate=2026-03-11&endDate=2026-03-22&search=prospec%C3%A7%C3%A3o"
{  "groups": [    {      "groupId": "acquisition",      "rows": [        {          "level": "channel",          "id": "v4:acquisition:channel:Meta%20Ads",          "name": "Meta Ads",          "campaignId": null,          "creativeUrl": null,          "investment": 128000,          "impressions": 10000000,          "clicks": 195000,          "cpm": 12.8,          "ctr": 1.95,          "cpc": 0.66,          "leads": 4838,          "leadsBySource": {            "crm": 4838,            "meta": null,            "google": null          },          "roi": 1.94,          "newCustomers": 1120,          "cac": 114.29,          "avgLtv": 486.5,          "ltvCacRatio": 4.26,          "paybackMonths": 2.7,          "children": [            {              "level": "campaign",              "id": "cmp-8891",              "name": "Aquisição | Prospecção BR",              "campaignId": "cmp-8891",              "creativeUrl": null,              "investment": 96000,              "impressions": 7680000,              "clicks": 161280,              "cpm": 12.5,              "ctr": 2.1,              "cpc": 0.6,              "leads": 4838,              "leadsBySource": {                "crm": 4838,                "meta": null,                "google": null              },              "roi": 2.31,              "newCustomers": 940,              "cac": 102.13,              "avgLtv": 501.2,              "ltvCacRatio": 4.91,              "paybackMonths": 2.4,              "children": [                {                  "level": "adset",                  "id": "adset-11",                  "name": "Conjunto Lookalike 1%",                  "campaignId": null,                  "creativeUrl": null,                  "investment": 51000,                  "impressions": 4214876,                  "clicks": 96942,                  "cpm": 12.1,                  "ctr": 2.3,                  "cpc": 0.53,                  "leads": null,                  "leadsBySource": null,                  "roi": null,                  "newCustomers": null,                  "cac": null,                  "avgLtv": null,                  "ltvCacRatio": null,                  "paybackMonths": null,                  "children": [                    {                      "level": "ad",                      "id": "ad-101",                      "name": "Vídeo institucional 15s",                      "campaignId": null,                      "creativeUrl": "https://cdn.example.com/creative/ad-101.jpg",                      "investment": 51000,                      "impressions": 4214876,                      "clicks": 96942,                      "cpm": 12.1,                      "ctr": 2.3,                      "cpc": 0.53,                      "leads": null,                      "leadsBySource": null,                      "roi": null,                      "newCustomers": null,                      "cac": null,                      "avgLtv": null,                      "ltvCacRatio": null,                      "paybackMonths": null                    }                  ]                }              ]            },            {              "level": "campaign",              "id": "v4:acquisition:unknown-campaign:Meta%20Ads",              "name": "Campanha não identificada",              "campaignId": null,              "creativeUrl": null,              "investment": 0,              "impressions": 0,              "clicks": 0,              "cpm": null,              "ctr": null,              "cpc": null,              "leads": 0,              "leadsBySource": {                "crm": 0,                "meta": null,                "google": null              },              "roi": null,              "newCustomers": 180,              "cac": null,              "avgLtv": 412.7,              "ltvCacRatio": null,              "paybackMonths": null,              "children": []            }          ]        }      ]    },    {      "groupId": "other",      "rows": []    }  ],  "truncation": {    "truncated": false,    "returnedRows": 5,    "totalRows": 5,    "droppedLevels": []  }}