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
projectKeyas 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
| Surface | Operation |
|---|---|
| REST | POST /v1/events · POST /v1/identify · POST /v1/group |
| GraphQL | analytics query · events query · dashboards, cohorts |
| MCP | prodantix.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}}]}'prodantix.capture('order.completed', {
properties: { amount: 4200 },
});await prodantix.capture(
'order.completed',
properties: {'amount': 4200},
);prodantix.capture(
"order.completed",
distinct_id="u_8f3a",
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
}
}
}