Analitik ve raporlar
Teslimat, abonelik, olay, dönüşüm, funnel, sağlayıcı sağlığı, etkileşim ısı haritası ve retention raporları; tarih aralığı, karşılaştırma, CSV; public analytics API ve ClickHouse ölçekleme.
Analitik, teslimat kayıtlarından (deliveries, delivery_events), olaylardan ve dönüşümlerden saatlik rollup'larla üretilir. Dashboard Analitik sayfası ve public API (analytics:read) aynı raporları sunar; büyük hacimde ClickHouse analitik deposu devreye alınabilir (runbook).
Raporlar
| Rapor | Uç | İçerik |
|---|---|---|
| Genel bakış | GET /v1/apps/{app_id}/analytics/overview | Aktif abonelik, gönderim/teslim/açılma özetleri |
| Mesajlar | …/analytics/messages | Gün × kanal × kampanya: gönderildi, teslim, açıldı, tıklandı, bounce, şikâyet, hata kodları |
| Abonelikler | …/analytics/subscriptions | Büyüme: yeni, opt-out, invalid; kanal/platform kırılımı |
| Olaylar | …/analytics/events | Olay hacmi (ad × gün), benzersiz kullanıcı |
| Dönüşümler | …/analytics/conversions | Dönüşüm sayısı/gelir; direct_click ve influenced atribüsyonu, kampanya/mesaj bazında |
| Funnel | POST …/analytics/funnels { steps: [{ name, where?: { key, value } }], from, to } (2–8 adım) | Adım bazlı dönüşüm ve düşüş |
| Sağlayıcılar | …/analytics/providers | Sağlayıcı hata kodları, gecikme p50/p95, başarı oranı |
| Etkileşim | …/analytics/engagement | Haftanın günü × saat ısı haritası (açılma/tıklama) |
| Retention | …/analytics/retention?weeks= | Kohort (ilk oturum haftası) × geri dönüş |
Ortak sorgu parametreleri: from, to (ISO 8601, UTC), compare=true (önceki dönemle karşılaştırma), format=json|csv (CSV metni); mesaj raporunda group_by=day|channel|campaign. Tüm parametreler ve örnekler: API → Analitik. Sunucu SDK'larında hs.analytics.messages({ from, to }) vb.
Sayaçlar ve tanımlar
| Sayaç | Tanım |
|---|---|
targeted | Kitlede bulunan abonelik sayısı |
suppressed | Politika/tercih/suppression ile bastırılan (suppression_reason) |
sent | Sağlayıcıya kabul ettirilen |
delivered | Sağlayıcı/cihaz teslim onayı (received, e-posta delivered) |
failed, errored, expired | Kalıcı hata, geçici hata sonrası vazgeçme, TTL dolumu |
opened, clicked | Tıklama/açılma (push opened, e-posta açılma pikseli ve bağlantı yönlendirmesi) |
converted | Atribüsyon penceresinde dönüşüm olayı |
bounced, complained, unsubscribed | E-posta/SMS geri bildirimleri |
sms_segments | Faturalandırılan SMS parça sayısı |
Açılma/tıklama sayıları teslimat satırındaki zaman damgalarından hesaplanır (olay saklama süresinden bağımsız). Dönüşüm: olay tanımında is_conversion işaretli olay, son tıklamadan sonraki pencerede direct_click, yalnızca teslim/açılma varsa influenced olarak atfedilir.
Mesaj, kampanya, journey, şablon istatistikleri
- Mesaj:
GET /v1/notifications/{id}→counts; teslimatlar…/deliveries. - Kampanya:
GET …/campaigns/{id}/stats, varyantlar…/variants/stats(kampanyalar). - Journey:
GET …/journeys/{id}/statsdüğüm bazlı geçiş/dönüşüm (journeys). - Şablon:
GET …/templates/{id}/stats. - In-app: gösterim, tıklama, kapatma, CTR (in-app).
Veri çıkışı
- CSV export/import işleri: dışa/içe aktarma.
- Event Streams: olayları Liquid dönüşümü ve koşullarla dış sistemlere akıtır (Event Streams).
- Veri ambarı: BigQuery, Snowflake, Redshift, S3/Parquet'e planlı dışa aktarım (veri ambarı).
- Analitik hedefleri: Segment, Amplitude, Mixpanel'e olay gönderimi ve kohort senkronu (entegrasyonlar).
- Metrikler: operasyonel Prometheus metrikleri
/metrics(status ve izleme).
Canlı olay akışı
Dashboard Olaylar sayfası SSE ile canlı olay akışını gösterir (son olaylar, özellikler, kaynak); olay tanımları count_30d ile günlük yeniden hesaplanır (olay tanımları API).
A/B testi ve holdout (Faz 12)
Kampanya ve journey gönderimlerinde içerik varyantlarını karşılaştırma, kontrol (holdout) grubu ile artımlı etkiyi ölçme ve kazananı otomatik/elle seçme. Tasarım kararları: ADR-0019. Ortak kod:…
Event Streams: webhook gövde şablonu ve olay filtresi
Event Streams, giden webhook'ların (docs/webhooks.md) gövdesini alıcının beklediği biçime dönüştürmenizi ve yalnızca ilgilendiğiniz olayları almanızı sağlar (ADR-0030). Dashboard'da Geliştirici → Webhooks → endpoint…