Özellik bayrakları
Uygulamanızdaki bir özelliği yeni sürüm yayımlamadan açın, kapatın ve kullanıcıların belirli bir yüzdesine kademeli yayın. Metin, sayı veya JSON değerleri uzaktan yapılandırma için de kullanılır. Karar kaydı:…
Uygulamanızdaki bir özelliği yeni sürüm yayımlamadan açın, kapatın ve kullanıcıların belirli bir yüzdesine kademeli yayın. Metin, sayı veya JSON değerleri uzaktan yapılandırma için de kullanılır.
Karar kaydı: docs/adr/0066-ozellik-bayraklari.md.
SDK'ya giden değerler uygulama kimliğini bilen herkesçe okunabilir. Parola, anahtar veya gizli bilgi yazmayın.
Bayrak oluşturma
Dashboard → Özellik Bayrakları → Yeni bayrak:
| Alan | Açıklama | Varsayılan |
|---|---|---|
| Anahtar | Uygulama kodunda kullanılır, sonradan değişmez | Zorunlu |
| Değer türü | Aç/kapat, metin, sayı, JSON | Aç/kapat |
| Açık ve kapalı değer | Kullanıcının alacağı değerler, en fazla 10 KB | Türe göre |
| Hedef kitle | İsteğe bağlı segment | Tüm kullanıcılar |
| Yayın yüzdesi | 0–100 | 100 |
| Zamanlanmış adımlar | Yüzdenin otomatik değişeceği zamanlar, en fazla 10 | Yok |
| Ana anahtar | Kapalıyken herkes kapalı değeri alır | Kapalı |
App başına en fazla 200 bayrak tanımlanabilir.
Nasıl değerlendirilir
- Ana anahtar kapalıysa kapalı değer.
- Segment seçiliyse ve kullanıcı segmentte değilse kapalı değer.
- Kullanıcı yayın yüzdesinin dışındaysa kapalı değer.
- Aksi halde açık değer.
Aynı kullanıcı her zaman aynı sonucu alır. Yüzde artınca önceden içeride olanlar içeride kalır. Yüzde bayrak başına ayrı hesaplanır, bayraklar aynı kullanıcı kümesine denk gelmez.
SDK ile okuma
Değerler oturum başında yenilenir ve cihazda saklanır. Ağ yoksa son değer, hiç alınmadıysa koddaki varsayılan döner.
if (Pushizo.FeatureFlags.isEnabled('yeni_sepet')) showNewCart();
const limit = Pushizo.FeatureFlags.getValue('sepet_limiti', 10);
await Pushizo.FeatureFlags.refresh();if (Pushizo.FeatureFlags.isEnabled("yeni_sepet")) showNewCart()
val limit = Pushizo.FeatureFlags.getValue("sepet_limiti", 10)
Pushizo.FeatureFlags.refresh()if Pushizo.FeatureFlags.isEnabled("yeni_sepet") { showNewCart() }
let limit = Pushizo.FeatureFlags.value("sepet_limiti", default: 10)
await Pushizo.FeatureFlags.refresh()Web, Android ve iOS SDK'larında vardır. Flutter, React Native, Capacitor, Cordova, MAUI, Unity ve KMP köprülerinde henüz yoktur.
Gizlilik onayı beklenirken istek gönderilmez. Abonelik yokken SDK kalıcı rastgele kimlik kullanır; bu durumda segmentli bayraklar kapalı döner.
Sunucudan değerlendirme
curl -X POST "https://api.pushizo.com/v1/apps/$APP_ID/feature-flags/evaluate" \
-H "Authorization: Bearer $PUSHIZO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"external_id":"musteri-1"}'Yanıtta bayrak başına enabled, value ve reason (on, disabled, segment, rollout) döner.
| Uç | Kapsam |
|---|---|
GET /v1/apps/{appId}/feature-flags, GET .../{flagId} | analytics:read |
POST .../feature-flags/evaluate | analytics:read |
POST, PATCH, DELETE | admin |
Kademeli yayın
Zamanlanmış adımlar 5 dakikada bir denetlenir, zamanı gelen en son adım uygulanır. Elle yüzde değiştirmek kalan adımları silmez. Otomatik geri alma yoktur; sorun çıkarsa ana anahtarı kapatın.
Sınırlar
- Değerler oturum başında güncellenir, anlık itilmez. Hemen almak için
refreshçağırın. - Bayrak görülme ve dönüşüm raporu yoktur; ölçüm için uygulamanızdan olay gönderin.
- Hedef segment silinirse bayrak herkese kapalı değeri verir. Yeniden açmak için bayrağın hedefini değiştirin.
Genel kontrol grubu
Genel kontrol grubu, kullanıcıların sabit bir yüzdesine hiçbir pazarlama mesajı göndermez. Bu kullanıcıların dönüşümü diğerleriyle karşılaştırılarak mesajlarınızın toplam etkisi ölçülür. Karar kaydı:…
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.