PushizoDocs
Kanallar

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ümDeğerler
display.layoutmodal, 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
Aksiyonlardismiss, url (tarayıcı), deeplink (uygulama şeması), tags (kullanıcıya etiket yazar)
audienceSegment dahil/hariç; push izni olmayan cihazlar da dahildir
frequencyKullanıcı (kimliksizde cihaz) başına toplam gösterim, iki gösterim arası süre, etkileşim sonrası durdurma; varsayılan max_impressions: 1
variantsA/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üğmede click, kapatmada dismiss bildirilir (POST /sdk/v1/apps/{app_id}/in-app/{message_id}/events).
  • remaining_impressions ve min_interval_seconds cihazda da uygulanır; end_at geç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.

Bu sayfada