PushizoDocs
Kullanıcılar & segmentler

Kullanıcılar, alias'lar ve abonelikler

Pushizo kimlik modeli — end user, external_id ve özel alias'lar, abonelikler (cihaz, e-posta, telefon), tag/özellik/deltas, anonim → kimlikli birleştirme, olaylar ve public API uçları.

Pushizo'da kullanıcı (usr_…) sizin son kullanıcınızdır; bir kullanıcının birden fazla aboneliği (sub_…) olabilir: iOS/Android/Huawei cihaz token'ı, tarayıcı aboneliği, e-posta adresi, telefon numarası, WhatsApp/RCS numarası. Kullanıcı alias'larla adreslenir: external_id (sizin kimliğiniz), hs_id (Pushizo kimliği) ve crm_id gibi özel etiketler.

Kullanıcı usr_01J…  ── alias: external_id=user_42, crm_id=C-9 ── tags {plan: pro}, properties {city: İzmir}
   ├─ sub_… ios_push     (token, cihaz, dil, saat dilimi, izin)
   ├─ sub_… web_push     (endpoint + keys)
   ├─ sub_… email        ayse@example.com
   └─ sub_… sms          +905321234567

Anonimden kimlikliye

İstemci SDK'sı açılışta anonim bir kullanıcı ve cihaz aboneliği oluşturur. login(externalId) çağrıldığında abonelik external_id'li kullanıcıya bağlanır; kullanıcı yoksa anonim kayıt kimlik kazanır, varsa anonim kullanıcı mevcut olana birleştirilir (tag/özellik/tercih birleşir, user.merged webhook'u çıkar). logout() cihazı yeni bir anonim kullanıcıya ayırır. Birden fazla cihaz aynı external_id ile login olunca tek kullanıcıda toplanır.

App ayarında identity verification zorunluysa login yalnızca sunucunuzun ürettiği identity_hash = HMAC-SHA256(sdk_secret, external_id) ya da ES256 JWT ile kabul edilir (JWT identity verification).

Tag, özellik, deltas

VeriTürKullanım
tagsRecord<string, string> (merge-patch; null siler)Segment koşulları, Liquid ({{ user.tags.plan }})
propertiesRecord<string, string | number | boolean> (merge-patch)Tiplenmiş alanlar, segment karşılaştırmaları
deltas{ session_count?, session_time?, purchases?[] }OneSignal uyumlu sayaçlar (yalnızca PATCH)
languageISO 639-1Dil haritalı içerik seçimi (contents.tr)
timezoneIANASaat dilimine göre teslimat
locationenlem/boylam (rıza ile)Yarıçap segmentleri (konum)

Tag anahtarı en fazla 64, değeri 500 karakterdir; kullanıcı başına tag sayısı plan kotasına tabidir.

Public API

İşlemUçKapsam
Oluştur/güncelle (upsert)POST /v1/apps/{app_id}/users { identity: { external_id, … }, tags, properties, subscriptions[] } — Idempotency-Key desteklenirusers:write
Alias ile okuGET /v1/apps/{app_id}/users/by/{label}/{value} (external_id, hs_id ya da özel etiket)users:read
Tag/özellik/deltasPATCH /v1/apps/{app_id}/users/by/{label}/{value}users:write
Alias ekle / kaldırPATCH …/identity { identity: { crm_id: "C-9" } }, DELETE …/identity/{alias_label}users:write
Tüm kimliklerGET …/identityusers:read
Abonelik eklePOST …/subscriptions { channel, token, device?, opt_in? }users:write
Abonelik oku/güncelle/sil`GETPATCH
Sahip ataPOST …/subscriptions/{id}/owner { external_id }users:write
Liste / aramaGET /v1/apps/{app_id}/users?q=&tag=&last_active_after=&sort=; POST …/users/search (segment tanımı)users:read
Dışa aktar (KVKK)GET …/export → profil, alias, abonelik, son olaylarusers:read
Sil (KVKK)DELETE /v1/apps/{app_id}/users/by/{label}/{value} → abonelikler silinir, olaylar anonimleşirusers:write
Olay gönderPOST /v1/apps/{app_id}/events { events: [{ external_id, name, properties?, value?, timestamp? }] }events:write

Tüm alanlar, yanıt şemaları ve 8 dilde örnekler: API → Kullanıcılar ve abonelikler, olay tanımları. Dashboard: Kitle → Kullanıcılar (arama, segment filtresi, kullanıcı detayı: abonelikler, zaman çizelgesi, bildirim kutusu, tercihler).

Abonelik durumları

active (gönderilebilir), pending (izin bekliyor), unsubscribed (opt-out, STOP, tek tık), invalid (sağlayıcı reddetti: 410, bounce). invalid abonelikler yeniden kayıtta active olur; unsubscribed yalnızca kullanıcı eylemi (optIn, START, tercih) ya da PATCH ile opt_in: true ile açılır. Durum değişimleri subscription.created|unsubscribed|invalidated webhook'larını üretir.

Olaylar ve dönüşüm

Pushizo.Session.sendEvent('purchase', { sku: 'A1' }, 49.9) ya da POST /v1/apps/{app_id}/events. Olay tanımları (GET /v1/apps/{app_id}/events/definitions) ad, ilk/son görülme ve 30 günlük sayımı tutar; PATCH …/definitions/{name} ile is_conversion işaretlenen olaylar mesaj tıklamasından sonraki pencerede dönüşüm olarak atfedilir (direct_click / influenced). Olaylar segment koşullarını, journey ve in-app tetiklerini besler.

Toplu içe/dışa aktarma

CSV ile toplu kullanıcı/abonelik yükleme (csv_users) ve OneSignal player CSV'si (onesignal_players) için dışa/içe aktarma; içe aktarma webhook üretmez.

Bu sayfada