PushizoDocs
A/B testleri

Ö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:

AlanAçıklamaVarsayılan
AnahtarUygulama kodunda kullanılır, sonradan değişmezZorunlu
Değer türüAç/kapat, metin, sayı, JSONAç/kapat
Açık ve kapalı değerKullanıcının alacağı değerler, en fazla 10 KBTüre göre
Hedef kitleİsteğe bağlı segmentTüm kullanıcılar
Yayın yüzdesi0–100100
Zamanlanmış adımlarYüzdenin otomatik değişeceği zamanlar, en fazla 10Yok
Ana anahtarKapalıyken herkes kapalı değeri alırKapalı

App başına en fazla 200 bayrak tanımlanabilir.

Nasıl değerlendirilir

  1. Ana anahtar kapalıysa kapalı değer.
  2. Segment seçiliyse ve kullanıcı segmentte değilse kapalı değer.
  3. Kullanıcı yayın yüzdesinin dışındaysa kapalı değer.
  4. 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/evaluateanalytics:read
POST, PATCH, DELETEadmin

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.

Bu sayfada