Analitik
Analitik — 9 işlem (GET /v1/apps/{appId}/analytics/overview, GET /v1/apps/{appId}/analytics/messages, GET /v1/apps/{appId}/analytics/subscriptions, …). OpenAPI 3.1.0 sözleşmesinden üretilir.
Teslimat, abonelik, olay, dönüşüm, funnel, sağlayıcı sağlığı, etkileşim ve retention raporları (tarih aralığı, karşılaştırma).
Taban adres: https://api.pushizo.com · Etiket: analytics · Etkileşimli belge (Scalar)
İşlemler
| Yöntem | Yol | İşlem |
|---|---|---|
GET | /v1/apps/{appId}/analytics/overview | Genel bakış KPI |
GET | /v1/apps/{appId}/analytics/messages | Teslimat raporu |
GET | /v1/apps/{appId}/analytics/subscriptions | Abonelik büyümesi |
GET | /v1/apps/{appId}/analytics/events | Olay hacmi |
GET | /v1/apps/{appId}/analytics/conversions | Dönüşüm/atribüsyon |
POST | /v1/apps/{appId}/analytics/funnels | Funnel |
GET | /v1/apps/{appId}/analytics/providers | Sağlayıcı sağlığı |
GET | /v1/apps/{appId}/analytics/retention | Retention kohortu |
GET | /v1/apps/{appId}/analytics/engagement | Etkileşim ısı haritası |
Ayrıntılar
Genel bakış KPI
Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
range | sorgu | enum | Hayır | Değerler: "7d", "30d"; Varsayılan: "7d" | "7d" |
from | sorgu | string (date-time) | Hayır | "2026-10-17T09:00:00Z" | |
to | sorgu | string (date-time) | Hayır | "2026-10-17T09:00:00Z" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: OverviewStats
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
range | enum | Evet | Değerler: "7d", "30d", "custom" |
from | string | Evet | |
to | string | Evet | |
kpis | object | Evet | |
kpis.sent | integer | Evet | |
kpis.delivered | integer | Evet | |
kpis.failed | integer | Evet | |
kpis.opened | integer | Evet | |
kpis.clicked | integer | Evet | |
kpis.delivery_rate | number | null | Evet | |
kpis.open_rate | number | null | Evet | |
kpis.click_rate | number | null | Evet | |
kpis.active_subscriptions | integer | Evet | |
kpis.new_subscriptions | integer | Evet | |
kpis.opt_outs | integer | Evet | |
series | array<object> | Evet | |
series[].date | string | Evet | |
series[].sent | integer | Evet | |
series[].delivered | integer | Evet | |
series[].failed | integer | Evet | |
series[].opened | integer | Evet | |
recent_messages | array<object> | Evet | |
recent_messages[].id | string | Evet | |
recent_messages[].app_id | string | Evet | |
recent_messages[].source | enum | Evet | Değerler: "campaign", "api", "journey", "test" |
recent_messages[].status | enum | Evet | Değerler: "queued", "processing", "completed", "cancelled", "failed" |
recent_messages[].idempotency_key | string | null | Evet | |
recent_messages[].name | string | null | Evet | |
recent_messages[].content | map<string, any> | Evet | |
recent_messages[].target | map<string, any> | Evet | |
recent_messages[].options | map<string, any> | Evet | |
recent_messages[].labels | array<string> | Evet | |
recent_messages[].category | string | null | Evet | |
recent_messages[].template_id | string | null | Evet | |
recent_messages[].campaign_id | string | null | Evet | |
recent_messages[].variants | array<object> | null | Evet | |
recent_messages[].counts | object | Evet | |
recent_messages[].counts.targeted | integer | Hayır | |
recent_messages[].counts.suppressed | integer | Hayır | |
recent_messages[].counts.sent | integer | Hayır | |
recent_messages[].counts.delivered | integer | Hayır | |
recent_messages[].counts.failed | integer | Hayır | |
recent_messages[].counts.errored | integer | Hayır | |
recent_messages[].counts.expired | integer | Hayır | |
recent_messages[].counts.opened | integer | Hayır | |
recent_messages[].counts.clicked | integer | Hayır | |
recent_messages[].counts.converted | integer | Hayır | |
recent_messages[].counts.bounced | integer | Hayır | |
recent_messages[].counts.complained | integer | Hayır | |
recent_messages[].counts.unsubscribed | integer | Hayır | |
recent_messages[].counts.sms_segments | integer | Hayır | |
recent_messages[].requested_by | object | Evet | |
recent_messages[].requested_by.type | enum | Evet | Değerler: "api_key", "account", "system" |
recent_messages[].requested_by.id | string | Hayır | |
recent_messages[].error | string | null | Evet | |
recent_messages[].scheduled_for | string | null | Evet | |
recent_messages[].started_at | string | null | Evet | |
recent_messages[].completed_at | string | null | Evet | |
recent_messages[].created_at | string | Evet | |
recent_messages[].updated_at | string | Evet | |
recent_campaigns | array<object> | Evet | |
recent_campaigns[].id | string | Evet | |
recent_campaigns[].name | string | Evet | |
recent_campaigns[].type | string | Evet | |
recent_campaigns[].status | string | Evet | |
recent_campaigns[].sent | integer | Evet | |
recent_campaigns[].opened | integer | Evet | |
recent_campaigns[].clicked | integer | Evet | |
recent_campaigns[].updated_at | string | Evet | |
top_errors | array<object> | Evet | |
top_errors[].code | string | Evet | |
top_errors[].count | integer | Evet | |
channels | array<object> | Evet | |
channels[].channel | enum | Evet | Değerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs" |
channels[].provider | enum | null | Evet | |
channels[].status | enum | Evet | Değerler: "unconfigured", "active", "invalid", "suspended" |
channels[].last_error | string | null | Evet | |
channels[].active_subscriptions | integer | Evet |
Örnek yanıt:
{
"channels": [
"web_push"
],
"range": "7d",
"from": "2026-10-01T00:00:00Z",
"to": "2026-10-17T00:00:00Z",
"kpis": {
"sent": 1,
"delivered": 1,
"failed": 1,
"opened": 1,
"clicked": 1,
"delivery_rate": 1.5,
"open_rate": 1.5,
"click_rate": 1.5,
"active_subscriptions": 1,
"new_subscriptions": 1,
"opt_outs": 1
},
"series": [
{
"date": "örnek",
"sent": 1,
"delivered": 1,
"failed": 1,
"opened": 1
}
],
"recent_messages": [
{
"name": "Sipariş bildirimleri",
"target": {
"include_external_ids": [
"user_42"
]
},
"status": "queued",
"id": "msg_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"app_id": "app_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"source": "campaign",
"idempotency_key": "order-1001",
"content": {
"contents": {
"tr": "Siparişiniz yola çıktı"
}
},
"options": {},
"labels": [
"promo"
],
"category": "örnek",
"template_id": "tpl_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"campaign_id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"variants": [
{
"name": "Sipariş bildirimleri",
"id": "var_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"weight_percent": 1,
"is_control": true
}
],
"counts": {
"targeted": 1,
"suppressed": 1
},
"requested_by": {
"type": "api_key",
"id": "id_01JD3W5Q7X9K2M4N6P8R0T1V3W"
},
"error": "örnek",
"scheduled_for": "örnek",
"started_at": "örnek",
"completed_at": "örnek",
"created_at": "örnek",
"updated_at": "örnek"
}
],
"recent_campaigns": [
{
"name": "Sipariş bildirimleri",
"type": "örnek",
"status": "örnek",
"id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"sent": 1,
"opened": 1,
"clicked": 1,
"updated_at": "örnek"
}
],
"top_errors": [
{
"code": "örnek",
"count": 1
}
]
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/analytics/overview" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Teslimat raporu
Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
from | sorgu | string (date-time) | Hayır | "2026-10-17T09:00:00Z" | |
to | sorgu | string (date-time) | Hayır | "2026-10-17T09:00:00Z" | |
compare | sorgu | enum | Hayır | Değerler: "true", "false" | "true" |
format | sorgu | enum | Hayır | Değerler: "json", "csv"; Varsayılan: "json" | "json" |
group_by | sorgu | enum | Hayır | Değerler: "day", "channel", "campaign"; Varsayılan: "day" | "day" |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: MessagesReport
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
from | string | Evet | |
to | string | Evet | |
group_by | enum | Evet | Değerler: "day", "channel", "campaign" |
totals | object | Evet | |
totals.sent | integer | Evet | |
totals.delivered | integer | Evet | |
totals.failed | integer | Evet | |
totals.opened | integer | Evet | |
totals.clicked | integer | Evet | |
totals.converted | integer | Evet | |
totals.delivery_rate | number | null | Evet | |
totals.open_rate | number | null | Evet | |
totals.click_rate | number | null | Evet | |
previous | object | null | Evet | |
rows | array<object> | Evet | |
rows[].key | string | Evet | |
rows[].label | string | Evet | |
rows[].sent | integer | Evet | |
rows[].delivered | integer | Evet | |
rows[].failed | integer | Evet | |
rows[].opened | integer | Evet | |
rows[].clicked | integer | Evet | |
rows[].converted | integer | Evet |
Örnek yanıt:
{
"from": "2026-10-01T00:00:00Z",
"to": "2026-10-17T00:00:00Z",
"group_by": "day",
"totals": {
"sent": 1,
"delivered": 1,
"failed": 1,
"opened": 1,
"clicked": 1,
"converted": 1,
"delivery_rate": 1.5,
"open_rate": 1.5,
"click_rate": 1.5
},
"previous": {
"sent": 1,
"delivered": 1,
"failed": 1,
"opened": 1,
"clicked": 1,
"converted": 1,
"delivery_rate": 1.5,
"open_rate": 1.5,
"click_rate": 1.5
},
"rows": [
{
"key": "key-2026-10",
"label": "external_id",
"sent": 1,
"delivered": 1,
"failed": 1,
"opened": 1,
"clicked": 1,
"converted": 1
}
]
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/analytics/messages" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Abonelik büyümesi
Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
from | sorgu | string (date-time) | Hayır | "2026-10-17T09:00:00Z" | |
to | sorgu | string (date-time) | Hayır | "2026-10-17T09:00:00Z" | |
compare | sorgu | enum | Hayır | Değerler: "true", "false" | "true" |
format | sorgu | enum | Hayır | Değerler: "json", "csv"; Varsayılan: "json" | "json" |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: SubscriptionsReport
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
from | string | Evet | |
to | string | Evet | |
totals | object | Evet | |
totals.active | integer | Evet | |
totals.new | integer | Evet | |
totals.unsubscribed | integer | Evet | |
totals.opt_outs | integer | Evet | |
totals.net | integer | Evet | |
previous | object | null | Evet | |
rows | array<object> | Evet | |
rows[].date | string | Evet | |
rows[].new | integer | Evet | |
rows[].unsubscribed | integer | Evet | |
rows[].opt_outs | integer | Evet | |
rows[].net | integer | Evet | |
by_channel | array<object> | Evet | |
by_channel[].channel | string | Evet | |
by_channel[].active | integer | Evet | |
by_channel[].new | integer | Evet | |
by_channel[].unsubscribed | integer | Evet |
Örnek yanıt:
{
"from": "2026-10-01T00:00:00Z",
"to": "2026-10-17T00:00:00Z",
"totals": {
"active": 1,
"new": 1,
"unsubscribed": 1,
"opt_outs": 1,
"net": 1
},
"previous": {
"active": 1,
"new": 1,
"unsubscribed": 1,
"opt_outs": 1,
"net": 1
},
"rows": [
{
"date": "örnek",
"new": 1,
"unsubscribed": 1,
"opt_outs": 1,
"net": 1
}
],
"by_channel": [
{
"channel": "web_push",
"active": 1,
"new": 1,
"unsubscribed": 1
}
]
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/analytics/subscriptions" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Olay hacmi
Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
from | sorgu | string (date-time) | Hayır | "2026-10-17T09:00:00Z" | |
to | sorgu | string (date-time) | Hayır | "2026-10-17T09:00:00Z" | |
compare | sorgu | enum | Hayır | Değerler: "true", "false" | "true" |
format | sorgu | enum | Hayır | Değerler: "json", "csv"; Varsayılan: "json" | "json" |
name | sorgu | string | Hayır | Uzunluk: 1–100 | "Sipariş bildirimleri" |
group_by | sorgu | enum | Hayır | Değerler: "day", "name"; Varsayılan: "day" | "day" |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: EventsReport
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
from | string | Evet | |
to | string | Evet | |
group_by | enum | Evet | Değerler: "day", "name" |
name | string | null | Evet | |
totals | object | Evet | |
totals.count | integer | Evet | |
totals.users | integer | Evet | |
previous | object | null | Evet | |
rows | array<object> | Evet | |
rows[].key | string | Evet | |
rows[].count | integer | Evet | |
rows[].users | integer | Evet |
Örnek yanıt:
{
"name": "purchase",
"from": "2026-10-01T00:00:00Z",
"to": "2026-10-17T00:00:00Z",
"group_by": "day",
"totals": {
"count": 1,
"users": 1
},
"previous": {
"count": 1,
"users": 1
},
"rows": [
{
"key": "key-2026-10",
"count": 1,
"users": 1
}
]
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/analytics/events" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Dönüşüm/atribüsyon
Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
from | sorgu | string (date-time) | Hayır | "2026-10-17T09:00:00Z" | |
to | sorgu | string (date-time) | Hayır | "2026-10-17T09:00:00Z" | |
compare | sorgu | enum | Hayır | Değerler: "true", "false" | "true" |
format | sorgu | enum | Hayır | Değerler: "json", "csv"; Varsayılan: "json" | "json" |
campaign_id | sorgu | string | Hayır | "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W" | |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: ConversionsReport
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
from | string | Evet | |
to | string | Evet | |
totals | object | Evet | |
totals.conversions | integer | Evet | |
totals.direct | integer | Evet | |
totals.influenced | integer | Evet | |
totals.unattributed | integer | Evet | |
totals.revenue | number | Evet | |
previous | object | null | Evet | |
by_campaign | array<object> | Evet | |
by_campaign[].campaign_id | string | null | Evet | |
by_campaign[].name | string | Evet | |
by_campaign[].conversions | integer | Evet | |
by_campaign[].direct | integer | Evet | |
by_campaign[].influenced | integer | Evet | |
by_campaign[].unattributed | integer | Evet | |
by_campaign[].revenue | number | Evet | |
by_campaign[].sent | integer | Evet | |
by_campaign[].conversion_rate | number | null | Evet | |
rows | array<object> | Evet | |
rows[].date | string | Evet | |
rows[].conversions | integer | Evet | |
rows[].revenue | number | Evet |
Örnek yanıt:
{
"from": "2026-10-01T00:00:00Z",
"to": "2026-10-17T00:00:00Z",
"totals": {
"conversions": 1,
"direct": 1,
"influenced": 1,
"unattributed": 1,
"revenue": 149.9
},
"previous": {
"conversions": 1,
"direct": 1,
"influenced": 1,
"unattributed": 1,
"revenue": 149.9
},
"by_campaign": [
{
"name": "Sipariş bildirimleri",
"campaign_id": "cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W",
"conversions": 1,
"direct": 1,
"influenced": 1,
"unattributed": 1,
"revenue": 149.9,
"sent": 1,
"conversion_rate": 1.5
}
],
"rows": [
{
"date": "örnek",
"conversions": 1,
"revenue": 149.9
}
]
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/analytics/conversions" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Funnel
Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
İstek gövdesi (zorunlu)
Şema: FunnelBodyDto
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
steps | array<object> | Evet | Öğe: 2–8 |
steps[].name | string | Evet | Uzunluk: 1–100 |
steps[].where | object | Hayır | |
steps[].where.key | string | Evet | Uzunluk: 1–64 |
steps[].where.value | string | Evet | Uzunluk: 0–500 |
from | string (date-time) | Hayır | |
to | string (date-time) | Hayır | |
window_hours | integer | Hayır | Varsayılan: 72; Aralık: 1–720 |
compare | boolean | Hayır | Varsayılan: false |
format | enum | Hayır | Değerler: "json", "csv"; Varsayılan: "json" |
Örnek:
{
"steps": [
{
"name": "Sipariş bildirimleri",
"where": {
"key": "key-2026-10",
"value": "user_42"
}
}
],
"from": "2026-10-17T09:00:00Z",
"to": "2026-10-17T09:00:00Z",
"window_hours": 72,
"compare": false,
"format": "json"
}Yanıtlar
200 — Başarılı.
Şema: FunnelReport
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
from | string | Evet | |
to | string | Evet | |
window_hours | integer | Evet | |
steps | array<object> | Evet | |
steps[].name | string | Evet | |
steps[].users | integer | Evet | |
steps[].conversion_rate | number | null | Evet | |
steps[].drop_off | integer | Evet | |
overall_rate | number | null | Evet | |
previous | object | null | Evet |
Örnek yanıt:
{
"from": "2026-10-01T00:00:00Z",
"to": "2026-10-17T00:00:00Z",
"window_hours": 1,
"steps": [
{
"name": "Sipariş bildirimleri",
"users": 1,
"conversion_rate": 1.5,
"drop_off": 1
}
],
"overall_rate": 1.5,
"previous": {
"steps": [
1
],
"overall_rate": 1.5
}
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X POST "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/analytics/funnels" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"steps": [
{
"name": "Sipariş bildirimleri",
"where": {
"key": "key-2026-10",
"value": "user_42"
}
}
],
"from": "2026-10-17T09:00:00Z",
"to": "2026-10-17T09:00:00Z",
"window_hours": 72,
"compare": false,
"format": "json"
}'Sağlayıcı sağlığı
Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
from | sorgu | string (date-time) | Hayır | "2026-10-17T09:00:00Z" | |
to | sorgu | string (date-time) | Hayır | "2026-10-17T09:00:00Z" | |
compare | sorgu | enum | Hayır | Değerler: "true", "false" | "true" |
format | sorgu | enum | Hayır | Değerler: "json", "csv"; Varsayılan: "json" | "json" |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: ProvidersReport
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
from | string | Evet | |
to | string | Evet | |
totals | object | Evet | |
totals.sent | integer | Evet | |
totals.failed | integer | Evet | |
totals.failure_rate | number | null | Evet | |
previous | object | null | Evet | |
rows | array<object> | Evet | |
rows[].channel | string | Evet | |
rows[].provider | string | null | Evet | |
rows[].sent | integer | Evet | |
rows[].failed | integer | Evet | |
rows[].failure_rate | number | null | Evet | |
rows[].latency_p50_ms | number | null | Evet | |
rows[].latency_p95_ms | number | null | Evet | |
rows[].errors | array<object> | Evet | |
rows[].errors[].code | string | Evet | |
rows[].errors[].count | integer | Evet |
Örnek yanıt:
{
"from": "2026-10-01T00:00:00Z",
"to": "2026-10-17T00:00:00Z",
"totals": {
"sent": 1,
"failed": 1,
"failure_rate": 1.5
},
"previous": {
"sent": 1,
"failed": 1,
"failure_rate": 1.5
},
"rows": [
{
"channel": "web_push",
"provider": "örnek",
"sent": 1,
"failed": 1,
"failure_rate": 1.5,
"latency_p50_ms": 1.5,
"latency_p95_ms": 1.5,
"errors": [
{
"code": "örnek",
"count": 1
}
]
}
]
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/analytics/providers" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Retention kohortu
Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
weeks | sorgu | integer | Hayır | Varsayılan: 8; Aralık: 2–26 | 2 |
format | sorgu | enum | Hayır | Değerler: "json", "csv"; Varsayılan: "json" | "json" |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: RetentionReport
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
weeks | integer | Evet | |
cohorts | array<object> | Evet | |
cohorts[].week | string | Evet | |
cohorts[].users | integer | Evet | |
cohorts[].retention | array<number | null> | Evet | |
average | array<number | null> | Evet |
Örnek yanıt:
{
"weeks": 1,
"cohorts": [
{
"week": "örnek",
"users": 1,
"retention": [
1.5
]
}
],
"average": [
1.5
]
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/analytics/retention" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Etkileşim ısı haritası
Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).
Parametreler
| Ad | Konum | Tür | Zorunlu | Açıklama | Örnek |
|---|---|---|---|---|---|
from | sorgu | string (date-time) | Hayır | "2026-10-17T09:00:00Z" | |
to | sorgu | string (date-time) | Hayır | "2026-10-17T09:00:00Z" | |
compare | sorgu | enum | Hayır | Değerler: "true", "false" | "true" |
format | sorgu | enum | Hayır | Değerler: "json", "csv"; Varsayılan: "json" | "json" |
appId | yol | string | Evet | "app_01JD3W5Q7X9K2M4N6P8R0T1V3W" |
Yanıtlar
200 — Başarılı.
Şema: EngagementReport
| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
from | string | Evet | |
to | string | Evet | |
timezone | string | Evet | |
totals | object | Evet | |
totals.opened | integer | Evet | |
totals.clicked | integer | Evet | |
previous | object | null | Evet | |
cells | array<object> | Evet | |
cells[].weekday | integer | Evet | |
cells[].hour | integer | Evet | |
cells[].opened | integer | Evet | |
cells[].clicked | integer | Evet | |
rows | array<object> | Evet | |
rows[].date | string | Evet | |
rows[].opened | integer | Evet | |
rows[].clicked | integer | Evet |
Örnek yanıt:
{
"from": "2026-10-01T00:00:00Z",
"to": "2026-10-17T00:00:00Z",
"timezone": "Europe/Istanbul",
"totals": {
"opened": 1,
"clicked": 1
},
"previous": {
"opened": 1,
"clicked": 1
},
"cells": [
{
"weekday": 1,
"hour": 1,
"opened": 1,
"clicked": 1
}
],
"rows": [
{
"date": "örnek",
"opened": 1,
"clicked": 1
}
]
}Hata yanıtları ortak zarfla döner (error.code, message, details, request_id): hata kataloğu. Tüm yanıtlar X-RateLimit-* başlıklarını taşır (hız sınırları).
Örnekler
curl -X GET "https://api.pushizo.com/v1/apps/app_01JD3W5Q7X9K2M4N6P8R0T1V3W/analytics/engagement" \
-H "Authorization: Bearer $PUSHIZO_API_KEY"Webhook’lar
Webhook’lar — 10 işlem (GET /v1/apps/{appId}/webhooks, POST /v1/apps/{appId}/webhooks, POST /v1/apps/{appId}/webhooks/preview, …). OpenAPI 3.1.0 sözleşmesinden üretilir.
Dışa / içe aktarma
Dışa / içe aktarma — 6 işlem (GET /v1/apps/{appId}/exports, POST /v1/apps/{appId}/exports, GET /v1/apps/{appId}/exports/{exportId}, …). OpenAPI 3.1.0 sözleşmesinden üretilir.