Pular para o conteúdo principal

Análise: uma visão

Análise é ler o estado de usuário. Funis, retenção e coortes são consultas sobre a mesma projeção ao vivo na qual o resto do motor age.

At a glance

Host
https://eu.api.prodantix.com
Ingest
POST /v1/events, /v1/identify, /v1/group
Batch size
1 to 1000 events per batch
Answers
202 Accepted: accepted for processing, not yet stored
Auth
projectKey as a bearer token
  • Funis e retenção calculados no estado ao vivo, não um rollup noturno de warehouse
  • Coortes definidas uma vez e mantidas atuais à medida que os eventos chegam
  • Sem ida e volta ao SQL, o estado já está moldado para a pergunta

Como funciona

Events land on the EU ingestion host, are buffered through Redpanda and written to ClickHouse. Queries read from ClickHouse, so a funnel over thirty days answers in the same shape whether it spans a thousand events or a billion.

Ingestion answers 202. That is acceptance for processing, not proof of storage, a malformed event is still dropped further down the pipeline.

Onde aceder

SurfaceOperation
RESTPOST /v1/events · POST /v1/identify · POST /v1/group
GraphQLanalytics query · events query · dashboards, cohorts
MCPprodantix.analytics.runQuery

Exemplo

curl -X POST "https://eu.api.prodantix.com/v1/events" \
  -H "Authorization: Bearer $PRODANTIX_KEY" \
  -H "Content-Type: application/json" \
  -d '{"batch":[{"distinct_id":"u_8f3a","name":"order.completed","properties":{"amount":4200}}]}'

Querying a funnel

GraphQL
query Funnel($projectId: String!) {
  analytics {
    funnel(
      projectId: $projectId
      steps: ["signup.started", "signup.completed", "order.completed"]
      window: "P30D"
    ) {
      step
      users
      conversion
    }
  }
}