Analytik: eine Ansicht
Analytik bedeutet, den Nutzerzustand zu lesen. Funnels, Retention und Kohorten sind Abfragen über dieselbe Live-Projektion, auf die der Rest der Engine reagiert.
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
- Funnels und Retention auf dem Live-Zustand berechnet, keine nächtliche Warehouse-Aggregation
- Kohorten einmal definiert und aktuell gehalten, sobald Ereignisse eintreffen
- Kein SQL-Roundtrip, der Zustand ist bereits auf die Frage zugeschnitten
So funktioniert es
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.Wo Sie darauf zugreifen
| Surface | Operation |
|---|---|
| REST | POST /v1/events · POST /v1/identify · POST /v1/group |
| GraphQL | analytics query · events query · dashboards, cohorts |
| MCP | prodantix.analytics.runQuery |
Beispiel
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
}
}
}