iOS size yerel istemle anlık bildirim izni istemek için tam olarak bir şans verir. Kullanıcı “İzin Verme”ye dokunursa, bu karar neredeyse hiç kimsenin geri dönmek için gitmediği Ayarlar uygulamasında gizlenir. Bu tek gerçek, tüm iOS anlık bildirim izni stratejinizi şekillendirmeli — ve en iyi kaydolma oranlarına sahip uygulamaların Apple'ın istemini asla soğuk göstermemesinin nedeni budur.
Bu kılavuz, iOS izninin aslında nasıl çalıştığını, tek şansınızı koruyan hazırlık kalıbını ve tüm akışı birkaç satır SDK koduyla nasıl uygulayacağınızı kapsar.
iOS anlık bildirim izni aslında nasıl çalışır
Her uygulama üç izin durumundan birinde bulunur: kullanıcıya henüz sorulmadı, kullanıcı izin verdi veya kullanıcı reddetti. Apple'ın oluşturduğu ve kelimelerini değiştiremeyeceğiniz yerel sistem istemi, kullanıcıyı kalıcı olarak ilk durumdan çıkarır. İkinci bir yerel istem yoktur. Reddedildiğinde, tek geri dönüş yolu Ayarlar uygulamasıdır ve Ayarlar'dan kurtarma oranları, bir reddi neredeyse kesin olarak kabul etmeniz için yeterince düşüktür.
Bunu, bildirim izninin tarihsel olarak varsayılan olarak açık olduğu Android ile karşılaştırın. Bu, iOS kaydolma oranlarının yaklaşık %51, Android'in ise yaklaşık %81 olmasının temel nedenidir; bunu uygulama anlık bildirim pazarlama kılavuzunda ele aldık. iOS'ta kaydolma kazanılır. Avantajı: bilinçli olarak evet diyen bir abone, varsayılan açık bir aboneden daha değerlidir, daha fazla etkileşim kurar ve daha az ayrılır. Göreviniz, soru sorulmadan önce desteyi yığmaktır.
Zamanlama neden kopyayı yener
En yaygın iOS izin hatası yapısal, sözlü değil: yerel istemi, kullanıcının uygulamanın ne yaptığını veya bildirimlerin onlara neden yardımcı olacağını henüz bilmediği ilk başlatmada tetiklemek. O anda “bu uygulamanın beni rahatsız etmesine izin vermeli miyim?” sorusunun dürüst cevabı hayır — kullanıcı her iki durumda da sıfır kanıta sahip ve hayır güvenli varsayılan.
Çözüm, değer anında sormaktır — oturumun, bildirimin faydasının somut ve açık olduğu bir noktası:
- Bir E-ticaret alışverişçisi bir ürünü istek listesine kaydeder → “fiyat düşüşü olduğunda bilmek ister misiniz?”
- Bir alışverişçi bir satın alma işlemini tamamlar → “bu sipariş için gönderim güncellemelerini bilmek ister misiniz?”
- Bir okuyucu ikinci bir makaleyi bitirir → “bu konuda yayın yaptığımızda haberimiz olsun ister misiniz?”
- Bir kullanıcı ilk kurulumu tamamlar ve ilk başarısına ulaşır → “bir şeyler olduğunda size haber vermemizi ister misiniz?”
Aynı istem, Apple'dan aynı kelimeler — dramatik şekilde farklı bir cevap, çünkü soru nihayet bağlam kazandı.
Hazırlık kalıbı: gerçek istemden önce yumuşak istem
Hazırlık, Apple'ın istemini tetiklemeden önce kendi uygulama içi ekranınızı — tamamen kontrol ettiğiniz bir ön izin iletişim kutusunu — göstermek anlamına gelir. Kalıbın çalışmasını sağlayan bir kuralı vardır: yerel istemi yalnızca kullanıcı sizinkine evet dedikten sonra tetikleyin.
Kullanıcı nazik isteğinizi kabul ederse, zaten karar vermiş demektir; yerel istem bir formalitedir ve çok yüksek oranlarda dönüşür. Nazik isteğinizi reddederse, hiçbir şey kaybetmediniz — yerel istem hiçbir zaman gösterilmedi, tek deneme hala yayında ve nazik isteği haftalar sonra daha uygun bir anda yeniden çalıştırabilirsiniz. Nazik istek sonsuz tekrarlanabilir; Apple'ın istemi tekrarlanamaz.
İyi bir nazik istek, belirli değeri belirtir (“kaydettiğiniz öğelerdeki fiyat düşüşü uyarıları”), bildirimin nasıl görüneceğini gösterir ve suçluluk hissettirmeyen gerçek bir reddetme seçeneği sunar. Yüksek dönüşüm sağlayan web anlık bildirim kayıt istemlerine ilişkin aynı ilkeler geçerlidir — özgüllük dönüşüm sağlar, belirsizlik sağlamaz.
Akışı PushEngage SDK ile uygulama
iOS SDK 1.0, bu akışın ihtiyaç duyduğu iki çağrıyı sağlar: biri mevcut durumu kontrol etmek için, diğeri yerel istemi seçtiğiniz anda tetiklemek için.
// 1. Check state before deciding what UI to show
let status = PushEngage.getNotificationPermissionStatus()
switch status {
case "notYetRequested":
showSoftAskScreen() // your own UI — the native prompt is untouched
case "denied":
showSettingsNudgeIfEarned() // deep link to Settings, only at a high-value moment
case "granted":
break // already subscribed — get out of the way
default:
break
}
// 2. Only after the user accepts YOUR screen:
PushEngage.requestNotificationPermission { granted, error in
if granted {
// subscribed — thank them with value, not a welcome blast
}
}
Kodun neyi zorladığına dikkat edin: yerel istem, yalnızca nazik isteğinizin kabul işleyicisinin içinden ve başka hiçbir yerden tetiklenir. Başlatma zamanı sürprizi yok, boşa harcanan deneme yok.
Hayır diyen kullanıcıları kurtarma
Reddedilen durumdaki kullanıcılar için yerel istem gitmiş olsa da oyun bitmiş sayılmaz. Kurtarma hamlesi bir Ayarlar derin bağlantısıdır — UIApplication.openNotificationSettingsURLString, kullanıcıyı doğrudan uygulamanızın bildirim anahtarına götürür. Bunu, kullanıcının bildirimlerin sağlayacağı bir şeyi aktif olarak istediği anlar için saklayın (“stoka geri döndüğünde bilgilendirilmek istiyorum” → “bu uygulama için bildirimler kapalı — Ayarlar’dan açın?”). Rastgele bir anda yapılan bir Ayarlar dürtüsü rahatsız edici olarak algılanır; bir şeyi hemen isteme anında yapılan aynı dürtü yardım olarak algılanır.
Bunu olduğu büyüme metriği gibi ölçün
Kayıt oranı, çalıştıracağınız her anlık bildirim kampanyasının çarpanıdır, bu da onu düzgün bir şekilde ölçmeye değer kılar: nazik istek kabulünü ve yerel istem dönüşümünü ayrı ayrı izleyin, istemi tetikleyen an’a göre segmentlere ayırın ve herhangi birini ulaşılabilir olarak saymadan önce — hem aboneliği hem de izni doğrulayan getSubscriptionNotificationStatus ile abonelik durumunu kontrol edin. On puanlık kayıt iyileştirmesi, uygulamanın ömrü boyunca her kampanyada, her hafta bileşik olarak artar.
İzin kapıdır. Bir kullanıcı oradan geçtiğinde, diğer her şey — tetiklenen kampanyalar, segmentasyon, damla yolculukları — başka bir uygulama kodu satırı olmadan PushEngage kontrol panelinden çalışır. iOS kurulum kılavuzu, SDK kurulumundan ilk kampanyanıza kadar bir öğleden sonra içinde sizi hazırlar.