Kapatma mantığı (bu panel buna dokunmaz)
Uygulamadaki özelliklerin açık/kapalı olması isFeaturesClose
ile belirlenir ve formül şudur:
isFeaturesClose = isAllFeatureClosed
|| (appVersion == uygulamanın sürümü
&& appBuildNumber == uygulamanın build numarası)
- Acil kapatma:
isAllFeatureClosed = true → tüm özellikler kapanır.
- Sürüm bazlı:
appVersion ve appBuildNumber hedef sürümle birebir eşleşirse sadece o sürümde kapanır.
Bu üç anahtar bilerek bu panelin dışında bırakıldı. Bildirim metni
değiştiren birinin yanlış tıkla tüm uygulamayı kapatabilmesi
istenmeyecek bir şey; sunucu bu anahtarlara gelen yazma isteğini
reddediyor.
Anahtarlar
"Sıfırla" ne yapar?
Her bölümün başındaki Bu bölümü sıfırla ve alttaki
Hepsini sıfırla düğmeleri sadece formu boşaltır.
Firebase'e o anda hiçbir şey yazılmaz.
- Vazgeçtiysen Yenile'ye bas; canlı değerler geri gelir.
- Uygulamak istiyorsan Yayınla'ya bas; o anahtarlar Remote
Config'ten silinir ve uygulama her biri için kendi varsayılanına döner.
Sıfırlamak "her şeyi kapat" demek değildir. Varsayılanı açık
olan bir özellik (örneğin ikili sohbet) sıfırlandığında açık kalır;
varsayılanı kapalı olan (reklamlar, açılış paywall'ı) kapanır.
Her alanın altındaki "Boş bırakılırsa:" satırı hangisi olduğunu söyler.
{code} yer tutucusu
Eşleşme kodu bildiriminin gövdesine {code} yazarsan,
uygulama oraya gerçek kodu koyar:
"Lütfen {code} girin" → "Lütfen 1234-5678 girin"
{code} yazmayı unutursan kod yine de alt satıra eklenir —
bildirimin tek işi kodu taşımak, kazara silinmesi kabul edilmiyor.
{kod} ve {CODE} yazımları da çalışır.
Dil seçimi
Dile göre metin alanı bir JSON nesnesi alır:
{
"tr": { "title": "Bağlantı kodun", "body": "Lütfen {code} girin" },
"en": { "title": "Your link code", "body": "Enter {code} in WhatsApp" }
}
Bölge etiketleri temel dile eşleşir: "pt" girdisi
pt_BR cihazları da kapsar. Kısayol olarak sadece gövde
yazmak istersen "tr": "Lütfen {code} girin" yeterli.
Metin seçilirken sıra şudur, ilk dolu olan kazanır:
- Dile göre metin (cihazın diline uyan girdi)
- Tek başlık/gövde alanları
- Uygulamanın kendi çevirisi
Başlık ve gövde ayrı ayrı çözülür — sadece gövdeyi doldurman
başlığı boşaltmaz.
Ücretsiz kullanıcı hatırlatıcısı ne zaman gider?
Her koşul ayrı ayrı sağlanmak zorunda:
| Koşul | Anlamı |
| Açık mı | freeNotifEnabled = true olmalı. Varsayılan kapalı. |
| Abone değil | Abone veya deneme sürümündeki kullanıcıya asla gitmez. |
| İlk gecikme geçti | İlk açılıştan freeNotifInitialDelayHours saat geçmiş olmalı. |
| Kampanya penceresi | İlk açılıştan freeNotifCampaignDays gün geçtiyse durur. |
| Toplam adet | Kullanıcı ömür boyu en fazla freeNotifMaxCount tane alır. |
| Aralık | Öncekinden bu yana freeNotifIntervalHours saat geçmiş olmalı. |
Bu kontrol bildirim gönderileceği anda yapılır, önceden zamanlanmaz.
Sebebi: günler önce sıraya alınmış bir bildirim, kullanıcının bu arada
abone olduğunu göremez ve para ödeyen birine "premium ol" derdi.
Zorunlu güncelleme ile kill switch farkı
İkisi de eski sürümleri hedefler ama sonuçları farklıdır:
| Kill switch (bu panelde yok) | Zorunlu güncelleme |
| Anahtar |
appVersion + appBuildNumber |
minSupportedVersion + forceUpdate |
| Etkisi |
Özellikler kapanır, kullanıcıya açıklama yok |
Güncelleme ekranı çıkar, mağazaya yönlendirir |
| Eşleşme |
Sürüm birebir eşleşirse |
Sürüm bundan düşükse |
minSupportedVersion'ı mağazadaki en güncel sürümün üstüne
yazma. O zaman herkes güncelleme ekranında kilitlenir ama indirebileceği
bir sürüm yoktur — forceUpdate da açıksa uygulama tamamen
kullanılamaz hale gelir.
Süreli indirim: kampanya kimliği
offerCampaignId kullanıcı sayaçlarının anahtarıdır. Kaç kez
gösterildiği ve en son ne zaman gösterildiği bu kimliğe bağlı tutulur.
- Yeni kampanya başlatıyorsan kimliği değiştir — herkes teklifi
yeniden görmeye başlar.
- Mevcut kampanyanın metnini/süresini düzeltiyorsan kimliğe
dokunma — yoksa teklifi görüp kapatmış olan herkes tekrar görür.
Değişiklik ne zaman cihazlara ulaşır?
Uygulama Remote Config'i 30 saniyede bir tazeleyebilecek şekilde
ayarlı ve açılışta çeker. Pratikte yayınladıktan sonra bir dakika
içinde, çoğu cihazda uygulamanın bir sonraki açılışında etkili olur.