분석: 하나의 뷰
분석은 사용자 상태를 읽는 것입니다. 퍼널, 리텐션, 코호트는 엔진의 나머지가 작용하는 것과 동일한 실시간 투영에 대한 쿼리입니다.
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
- 퍼널과 리텐션은 실시간 상태에서 계산되며, 야간 웨어하우스 롤업이 아닙니다
- 코호트는 한 번 정의하면 이벤트가 도착하는 대로 최신 상태로 유지됩니다
- SQL 왕복이 없음. 상태가 이미 질문에 맞게 형성되어 있습니다
작동 방식
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.접근 위치
| Surface | Operation |
|---|---|
| REST | POST /v1/events · POST /v1/identify · POST /v1/group |
| GraphQL | analytics query · events query · dashboards, cohorts |
| MCP | prodantix.analytics.runQuery |
예시
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
}
}
}