Aller au contenu principal

Analytique : une vue

L'analytique, c'est lire l'état utilisateur. Tunnels, rétention et cohortes sont des requêtes sur la même projection en direct sur laquelle agit le reste du moteur.

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
  • Tunnels et rétention calculés sur l'état en direct, pas un agrégat d'entrepôt nocturne
  • Cohortes définies une fois et tenues à jour à mesure que les événements arrivent
  • Pas d'aller-retour SQL, l'état est déjà façonné pour la question

Comment ça marche

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.

Où y accéder

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

Exemple

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
    }
  }
}