PushizoDocs
API referansı

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öntemYolİşlem
GET/v1/apps/{appId}/analytics/overviewGenel bakış KPI
GET/v1/apps/{appId}/analytics/messagesTeslimat raporu
GET/v1/apps/{appId}/analytics/subscriptionsAbonelik büyümesi
GET/v1/apps/{appId}/analytics/eventsOlay hacmi
GET/v1/apps/{appId}/analytics/conversionsDönüşüm/atribüsyon
POST/v1/apps/{appId}/analytics/funnelsFunnel
GET/v1/apps/{appId}/analytics/providersSağlayıcı sağlığı
GET/v1/apps/{appId}/analytics/retentionRetention kohortu
GET/v1/apps/{appId}/analytics/engagementEtkileşim ısı haritası

Ayrıntılar

Genel bakış KPI

GET/v1/apps/{appId}/analytics/overviewDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
rangesorguenumHayırDeğerler: "7d", "30d"; Varsayılan: "7d""7d"
fromsorgustring (date-time)Hayır"2026-10-17T09:00:00Z"
tosorgustring (date-time)Hayır"2026-10-17T09:00:00Z"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: OverviewStats

AlanTürZorunluAçıklama
rangeenumEvetDeğerler: "7d", "30d", "custom"
fromstringEvet
tostringEvet
kpisobjectEvet
kpis.sentintegerEvet
kpis.deliveredintegerEvet
kpis.failedintegerEvet
kpis.openedintegerEvet
kpis.clickedintegerEvet
kpis.delivery_ratenumber | nullEvet
kpis.open_ratenumber | nullEvet
kpis.click_ratenumber | nullEvet
kpis.active_subscriptionsintegerEvet
kpis.new_subscriptionsintegerEvet
kpis.opt_outsintegerEvet
seriesarray<object>Evet
series[].datestringEvet
series[].sentintegerEvet
series[].deliveredintegerEvet
series[].failedintegerEvet
series[].openedintegerEvet
recent_messagesarray<object>Evet
recent_messages[].idstringEvet
recent_messages[].app_idstringEvet
recent_messages[].sourceenumEvetDeğerler: "campaign", "api", "journey", "test"
recent_messages[].statusenumEvetDeğerler: "queued", "processing", "completed", "cancelled", "failed"
recent_messages[].idempotency_keystring | nullEvet
recent_messages[].namestring | nullEvet
recent_messages[].contentmap<string, any>Evet
recent_messages[].targetmap<string, any>Evet
recent_messages[].optionsmap<string, any>Evet
recent_messages[].labelsarray<string>Evet
recent_messages[].categorystring | nullEvet
recent_messages[].template_idstring | nullEvet
recent_messages[].campaign_idstring | nullEvet
recent_messages[].variantsarray<object> | nullEvet
recent_messages[].countsobjectEvet
recent_messages[].counts.targetedintegerHayır
recent_messages[].counts.suppressedintegerHayır
recent_messages[].counts.sentintegerHayır
recent_messages[].counts.deliveredintegerHayır
recent_messages[].counts.failedintegerHayır
recent_messages[].counts.erroredintegerHayır
recent_messages[].counts.expiredintegerHayır
recent_messages[].counts.openedintegerHayır
recent_messages[].counts.clickedintegerHayır
recent_messages[].counts.convertedintegerHayır
recent_messages[].counts.bouncedintegerHayır
recent_messages[].counts.complainedintegerHayır
recent_messages[].counts.unsubscribedintegerHayır
recent_messages[].counts.sms_segmentsintegerHayır
recent_messages[].requested_byobjectEvet
recent_messages[].requested_by.typeenumEvetDeğerler: "api_key", "account", "system"
recent_messages[].requested_by.idstringHayır
recent_messages[].errorstring | nullEvet
recent_messages[].scheduled_forstring | nullEvet
recent_messages[].started_atstring | nullEvet
recent_messages[].completed_atstring | nullEvet
recent_messages[].created_atstringEvet
recent_messages[].updated_atstringEvet
recent_campaignsarray<object>Evet
recent_campaigns[].idstringEvet
recent_campaigns[].namestringEvet
recent_campaigns[].typestringEvet
recent_campaigns[].statusstringEvet
recent_campaigns[].sentintegerEvet
recent_campaigns[].openedintegerEvet
recent_campaigns[].clickedintegerEvet
recent_campaigns[].updated_atstringEvet
top_errorsarray<object>Evet
top_errors[].codestringEvet
top_errors[].countintegerEvet
channelsarray<object>Evet
channels[].channelenumEvetDeğerler: "ios_push", "android_push", "hms_push", "web_push", "email", "sms", "whatsapp", "rcs"
channels[].providerenum | nullEvet
channels[].statusenumEvetDeğerler: "unconfigured", "active", "invalid", "suspended"
channels[].last_errorstring | nullEvet
channels[].active_subscriptionsintegerEvet

Ö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

GET/v1/apps/{appId}/analytics/messagesDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
fromsorgustring (date-time)Hayır"2026-10-17T09:00:00Z"
tosorgustring (date-time)Hayır"2026-10-17T09:00:00Z"
comparesorguenumHayırDeğerler: "true", "false""true"
formatsorguenumHayırDeğerler: "json", "csv"; Varsayılan: "json""json"
group_bysorguenumHayırDeğerler: "day", "channel", "campaign"; Varsayılan: "day""day"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: MessagesReport

AlanTürZorunluAçıklama
fromstringEvet
tostringEvet
group_byenumEvetDeğerler: "day", "channel", "campaign"
totalsobjectEvet
totals.sentintegerEvet
totals.deliveredintegerEvet
totals.failedintegerEvet
totals.openedintegerEvet
totals.clickedintegerEvet
totals.convertedintegerEvet
totals.delivery_ratenumber | nullEvet
totals.open_ratenumber | nullEvet
totals.click_ratenumber | nullEvet
previousobject | nullEvet
rowsarray<object>Evet
rows[].keystringEvet
rows[].labelstringEvet
rows[].sentintegerEvet
rows[].deliveredintegerEvet
rows[].failedintegerEvet
rows[].openedintegerEvet
rows[].clickedintegerEvet
rows[].convertedintegerEvet

Ö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

GET/v1/apps/{appId}/analytics/subscriptionsDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
fromsorgustring (date-time)Hayır"2026-10-17T09:00:00Z"
tosorgustring (date-time)Hayır"2026-10-17T09:00:00Z"
comparesorguenumHayırDeğerler: "true", "false""true"
formatsorguenumHayırDeğerler: "json", "csv"; Varsayılan: "json""json"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: SubscriptionsReport

AlanTürZorunluAçıklama
fromstringEvet
tostringEvet
totalsobjectEvet
totals.activeintegerEvet
totals.newintegerEvet
totals.unsubscribedintegerEvet
totals.opt_outsintegerEvet
totals.netintegerEvet
previousobject | nullEvet
rowsarray<object>Evet
rows[].datestringEvet
rows[].newintegerEvet
rows[].unsubscribedintegerEvet
rows[].opt_outsintegerEvet
rows[].netintegerEvet
by_channelarray<object>Evet
by_channel[].channelstringEvet
by_channel[].activeintegerEvet
by_channel[].newintegerEvet
by_channel[].unsubscribedintegerEvet

Ö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

GET/v1/apps/{appId}/analytics/eventsDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
fromsorgustring (date-time)Hayır"2026-10-17T09:00:00Z"
tosorgustring (date-time)Hayır"2026-10-17T09:00:00Z"
comparesorguenumHayırDeğerler: "true", "false""true"
formatsorguenumHayırDeğerler: "json", "csv"; Varsayılan: "json""json"
namesorgustringHayırUzunluk: 1–100"Sipariş bildirimleri"
group_bysorguenumHayırDeğerler: "day", "name"; Varsayılan: "day""day"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: EventsReport

AlanTürZorunluAçıklama
fromstringEvet
tostringEvet
group_byenumEvetDeğerler: "day", "name"
namestring | nullEvet
totalsobjectEvet
totals.countintegerEvet
totals.usersintegerEvet
previousobject | nullEvet
rowsarray<object>Evet
rows[].keystringEvet
rows[].countintegerEvet
rows[].usersintegerEvet

Ö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

GET/v1/apps/{appId}/analytics/conversionsDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
fromsorgustring (date-time)Hayır"2026-10-17T09:00:00Z"
tosorgustring (date-time)Hayır"2026-10-17T09:00:00Z"
comparesorguenumHayırDeğerler: "true", "false""true"
formatsorguenumHayırDeğerler: "json", "csv"; Varsayılan: "json""json"
campaign_idsorgustringHayır"cmp_01JD3W5Q7X9K2M4N6P8R0T1V3W"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: ConversionsReport

AlanTürZorunluAçıklama
fromstringEvet
tostringEvet
totalsobjectEvet
totals.conversionsintegerEvet
totals.directintegerEvet
totals.influencedintegerEvet
totals.unattributedintegerEvet
totals.revenuenumberEvet
previousobject | nullEvet
by_campaignarray<object>Evet
by_campaign[].campaign_idstring | nullEvet
by_campaign[].namestringEvet
by_campaign[].conversionsintegerEvet
by_campaign[].directintegerEvet
by_campaign[].influencedintegerEvet
by_campaign[].unattributedintegerEvet
by_campaign[].revenuenumberEvet
by_campaign[].sentintegerEvet
by_campaign[].conversion_ratenumber | nullEvet
rowsarray<object>Evet
rows[].datestringEvet
rows[].conversionsintegerEvet
rows[].revenuenumberEvet

Ö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

POST/v1/apps/{appId}/analytics/funnelsDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

İstek gövdesi (zorunlu)

Şema: FunnelBodyDto

AlanTürZorunluAçıklama
stepsarray<object>EvetÖğe: 2–8
steps[].namestringEvetUzunluk: 1–100
steps[].whereobjectHayır
steps[].where.keystringEvetUzunluk: 1–64
steps[].where.valuestringEvetUzunluk: 0–500
fromstring (date-time)Hayır
tostring (date-time)Hayır
window_hoursintegerHayırVarsayılan: 72; Aralık: 1–720
comparebooleanHayırVarsayılan: false
formatenumHayırDeğ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

AlanTürZorunluAçıklama
fromstringEvet
tostringEvet
window_hoursintegerEvet
stepsarray<object>Evet
steps[].namestringEvet
steps[].usersintegerEvet
steps[].conversion_ratenumber | nullEvet
steps[].drop_offintegerEvet
overall_ratenumber | nullEvet
previousobject | nullEvet

Ö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ığı

GET/v1/apps/{appId}/analytics/providersDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
fromsorgustring (date-time)Hayır"2026-10-17T09:00:00Z"
tosorgustring (date-time)Hayır"2026-10-17T09:00:00Z"
comparesorguenumHayırDeğerler: "true", "false""true"
formatsorguenumHayırDeğerler: "json", "csv"; Varsayılan: "json""json"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: ProvidersReport

AlanTürZorunluAçıklama
fromstringEvet
tostringEvet
totalsobjectEvet
totals.sentintegerEvet
totals.failedintegerEvet
totals.failure_ratenumber | nullEvet
previousobject | nullEvet
rowsarray<object>Evet
rows[].channelstringEvet
rows[].providerstring | nullEvet
rows[].sentintegerEvet
rows[].failedintegerEvet
rows[].failure_ratenumber | nullEvet
rows[].latency_p50_msnumber | nullEvet
rows[].latency_p95_msnumber | nullEvet
rows[].errorsarray<object>Evet
rows[].errors[].codestringEvet
rows[].errors[].countintegerEvet

Ö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

GET/v1/apps/{appId}/analytics/retentionDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
weekssorguintegerHayırVarsayılan: 8; Aralık: 2–262
formatsorguenumHayırDeğerler: "json", "csv"; Varsayılan: "json""json"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: RetentionReport

AlanTürZorunluAçıklama
weeksintegerEvet
cohortsarray<object>Evet
cohorts[].weekstringEvet
cohorts[].usersintegerEvet
cohorts[].retentionarray<number | null>Evet
averagearray<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ı

GET/v1/apps/{appId}/analytics/engagementDene (etkileşimli API belgesi, yeni sekme)

Kimlik doğrulama: API anahtarı — kapsam analytics:read (admin her kapsamı içerir).

Parametreler

AdKonumTürZorunluAçıklamaÖrnek
fromsorgustring (date-time)Hayır"2026-10-17T09:00:00Z"
tosorgustring (date-time)Hayır"2026-10-17T09:00:00Z"
comparesorguenumHayırDeğerler: "true", "false""true"
formatsorguenumHayırDeğerler: "json", "csv"; Varsayılan: "json""json"
appIdyolstringEvet"app_01JD3W5Q7X9K2M4N6P8R0T1V3W"

Yanıtlar

200 — Başarılı.

Şema: EngagementReport

AlanTürZorunluAçıklama
fromstringEvet
tostringEvet
timezonestringEvet
totalsobjectEvet
totals.openedintegerEvet
totals.clickedintegerEvet
previousobject | nullEvet
cellsarray<object>Evet
cells[].weekdayintegerEvet
cells[].hourintegerEvet
cells[].openedintegerEvet
cells[].clickedintegerEvet
rowsarray<object>Evet
rows[].datestringEvet
rows[].openedintegerEvet
rows[].clickedintegerEvet

Ö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"

Bu sayfada