In-app mesajlar
Uygulama içi mesajlar — blok tabanlı modal/banner/tam ekran düzenleri, tetikler, kitle, sıklık, aksiyonlar, A/B varyantları, SDK sözleşmesi ve public API.
In-app mesajlar uygulama açıkken SDK tarafından yerel bileşenlerle çizilir; push izni gerektirmez. Mesaj bloklardan (resim, başlık, gövde, düğme) oluşur; ham HTML kullanmak için HTML in-app. Dashboard Mesajlar → In-App (düzenleme campaigns.create, yayınlama campaigns.send).
Tanım
{
"name": "Sepet hatırlatma",
"triggers": [{ "kind": "event", "name": "cart_viewed" }],
"display": {
"layout": "modal",
"background_color": "#ffffff",
"text_color": "#18181b",
"dismissible": true,
"blocks": [
{ "type": "image", "url": "https://cdn.example.com/sale.png" },
{ "type": "title", "text": { "tr": "Merhaba {{ user.tags.name }}", "en": "Hi {{ user.tags.name }}" } },
{ "type": "body", "text": { "tr": "Sepetin seni bekliyor", "en": "Your cart is waiting" } },
{ "type": "button", "id": "go", "text": { "tr": "Sepete git", "en": "Open cart" }, "action": { "type": "deeplink", "url": "myapp://cart" } }
]
},
"audience": { "included_segments": ["seg_…"], "excluded_segments": [] },
"frequency": { "max_impressions": 3, "min_interval_seconds": 86400, "stop_after_interaction": true },
"priority": 10,
"start_at": null,
"end_at": null
}| Bölüm | Değerler |
|---|---|
display.layout | modal, banner_top, banner_bottom, fullscreen; banner'da auto_dismiss_seconds |
triggers (hepsi sağlanmalı) | session_start; event (name); screen (name); trigger (key, op: eq|neq|exists|gt|lt, value) — SDK InAppMessages.addTrigger(key, value) değerleriyle karşılaştırılır; tetik grupları ve oturum süresi koşulu |
| Aksiyonlar | dismiss, url (tarayıcı), deeplink (uygulama şeması), tags (kullanıcıya etiket yazar) |
audience | Segment dahil/hariç; push izni olmayan cihazlar da dahildir |
frequency | Kullanıcı (kimliksizde cihaz) başına toplam gösterim, iki gösterim arası süre, etkileşim sonrası durdurma; varsayılan max_impressions: 1 |
variants | A/B varyantları ve holdout; kazanan POST …/in-app-messages/{id}/winner (A/B testi) |
İstatistik: gösterim, tıklama (button_id), kapatma, benzersiz kullanıcı, CTR; webhook olayları in_app.impression, in_app.clicked, in_app.dismissed.
SDK davranışı
- Oturum başında ve en fazla 5 dakikada bir
GET /sdk/v1/apps/{app_id}/in-app?subscription_id=ile liste yenilenir; metinler kullanıcının dilinde çözülmüş ve Liquid ile kişiselleştirilmiş düz dizedir. - Aynı anda tek mesaj gösterilir (öncelik yüksek olan); gösterimde
impression, düğmedeclick, kapatmadadismissbildirilir (POST /sdk/v1/apps/{app_id}/in-app/{message_id}/events). remaining_impressionsvemin_interval_secondscihazda da uygulanır;end_atgeçen mesaj gösterilmez.- Tıklama dinleyicisi: Web
Pushizo.InAppMessages.addClickListener, iOS/Android/Flutter/köprüler eşdeğer API (SDK rehberleri).
Public API
GET|POST /v1/apps/{app_id}/in-app-messages, GET|PATCH|DELETE …/{id}, POST …/{id}/status (draft → active → paused/archived), POST …/{id}/winner. Okuma analytics:read, yazma admin. Tüm alanlar: API → In-app mesajlar.
Kişisel veri
Kullanıcı silindiğinde gösterim kayıtları silinir; "Verileri temizle" gösterimleri siler, mesaj tanımlarını korur. Gösterim kayıtları olay saklama süresine tabidir.
RCS: Google RBM ve Twilio RCS, zengin kartlar ve SMS geri düşüşü
RCS (Rich Communication Services) kanalı Android mesajlaşma uygulamasına zengin kart, görsel ve öneri çipleri gönderir. RCS desteklemeyen cihazlar aynı mesajın metin karşılığını app'in SMS kanalından alır (ADR-0029 §3).…
HTML in-app mesajları, şablon galerisi ve carousel
Karar kaydı: ADR-0027. In-app mesaj editöründe içerik türü HTML seçilir veya Şablondan başla ile galeriden (24 hazır şablon, tr/en) bir görünüm kopyalanır.