Aquisição

Cards de resumo de aquisição

GET
/v1/acquisition/summary

Números consolidados de aquisição da organização no período: investimento, novos clientes, CAC, LTV, ROI e payback.

Use para os indicadores principais de um painel. Cada métrica traz value e changePct, a variação percentual contra o período anterior de mesma duração.

  • investment e newCustomers são os totais amplos: todas as campanhas, com clientes orgânicos incluídos.
  • acquisitionInvestment e acquisitionNewCustomers contam só as campanhas marcadas como aquisição e são exatamente os dois lados do cac. Não combine um campo de cada par.
  • acquisitionAvgLtv, acquisitionLtvCacRatio e acquisitionRoi também consideram só as campanhas de aquisição.
  • paybackMonths.changePct é sempre null.
  • hasAcquisitionClassification: false significa que nenhuma campanha foi marcada como aquisição; por isso cac e as métricas de aquisição vêm null.

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

Cards de aquisição retornados 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.

investment*

Investimento em mídia TOTAL do período, incluindo brand e monetization. value é sempre um número (0 quando nada foi investido). Sem escala de margem. Este NÃO é o numerador do CAC — veja acquisitionInvestment.

acquisitionInvestment*

Investimento das campanhas marcadas como aquisição na plataforma (marca, monetização e campanhas sem classificação ficam de fora). É o numerador exato do cac. Sempre um número; 0 significa que nenhuma campanha de aquisição investiu no período, e nesse caso cac vem null. Sem margem aplicada.

acquisitionNewCustomers*

Novos clientes atribuídos a essas mesmas campanhas configuradas — o denominador exato de cac, de modo que acquisitionInvestment.value ÷ acquisitionNewCustomers.value = cac.value é válido (salvo o arredondamento de 2 casas decimais de cac). NÃO é newCustomers: dividir o investimento configurado por todos os clientes da organização creditaria à estratégia um tráfego que ela não trouxe e subestimaria o CAC. Sempre um número, e sempre ≤ newCustomers.

newCustomers*

Novos clientes adquiridos no período, todos os canais, incluindo orgânico, e todas as campanhas, independentemente da configuração. Este é o KPI de resultado de negócio e o número para o qual as abas de /new-customers-over-time somam — NÃO é o denominador do CAC, que é acquisitionNewCustomers. value é sempre um número (0 quando não há nenhum).

cac*

acquisitionInvestment ÷ acquisitionNewCustomers: os dois lados vêm só das campanhas marcadas como aquisição. value é null (nunca 0) quando nenhuma campanha de aquisição investiu no período (inclusive quando nenhuma campanha foi marcada; veja hasAcquisitionClassification) ou quando elas não trouxeram nenhum cliente. Sem margem aplicada.

acquisitionAvgLtv*

LTV médio dos clientes trazidos pelas campanhas marcadas como aquisição, já com a margem de contribuição aplicada (diferente do ltv bruto de /v1/acquisition/channels). value é null (nunca 0) quando nenhuma campanha de aquisição investiu no período ou trouxe clientes.

acquisitionLtvCacRatio*

acquisitionAvgLtv ÷ cac. Os dois lados consideram só as campanhas de aquisição, então responde "as campanhas de aquisição se pagam?". É diferente do ltvCacRatio de /v1/acquisition/channels, cujo LTV considera todos os clientes do canal. value é null quando um dos lados é null.

acquisitionRoi*

(receita das campanhas de aquisição × margem − acquisitionInvestment) ÷ acquisitionInvestment, como razão decimal (0,42 = 42%). Costuma ser bem menor que um ROI amplo, porque considera só a receita atribuída às campanhas de aquisição, sem vendas orgânicas, diretas ou não atribuídas. value é null (nunca 0 nem −1) quando nenhuma campanha de aquisição investiu no período ou quando elas não trouxeram nenhum cliente, nas mesmas condições em que cac é null.

paybackMonths*

Payback em meses: média, ponderada pelo número de clientes, do primeiro mês em que a contribuição acumulada de cada grupo de clientes (receita × margem) cobre o custo de aquisição dele. Os grupos são formados por mês de aquisição, então mesmo um período de 7 dias considera meses inteiros. value é null quando nenhum grupo atingiu o payback ou o custo de todos é desconhecido; 0 é real (pagou no próprio mês de aquisição). changePct é sempre null.

hasAcquisitionClassification*boolean

Indica se a organização marcou alguma campanha como aquisição na plataforma V4MOS.AI, em qualquer data (não depende do período selecionado). false explica cac, ltvCacRatio, paybackMonths e métricas de aquisição null, e o grupo acquisition vazio em /v1/acquisition/campaigns: não é falta de dados no período, falta marcar as campanhas de aquisição.

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

{  "investment": {    "value": 212000,    "changePct": 12.5  },  "acquisitionInvestment": {    "value": 180000,    "changePct": 14.2  },  "acquisitionNewCustomers": {    "value": 1200,    "changePct": -2.1  },  "newCustomers": {    "value": 1830,    "changePct": -4.32  },  "cac": {    "value": 150,    "changePct": 6.11  },  "acquisitionAvgLtv": {    "value": 141.34,    "changePct": -3.2  },  "acquisitionLtvCacRatio": {    "value": 1.42,    "changePct": -8.7  },  "acquisitionRoi": {    "value": 0.42,    "changePct": -11.4  },  "paybackMonths": {    "value": 3.4,    "changePct": null  },  "hasAcquisitionClassification": true}