iOS paywall hataları: satışlarını engelleyen 7 hata
Yazan: Mehdi Azizi
tarihinde güncellendi, 9 dk.
Yanlış yerde paywall, ücretsiz deneme yok, geri yükleme unutulmuş, Apple'ın zorunlu bilgileri eksik: uygulamanın satmasını engelleyen 7 iOS paywall hatası.
iOS paywall'un neden satmıyor
Uygulaman App Store'da, indirmeler geliyor, ama neredeyse kimse abone olmuyor. Çoğu durumda sorun ne fikrinde ne de kodunda: sorun iOS paywall'unda, yani ücretli teklifi sunan ve kullanıcıdan taahhüt isteyen ekranda. Yanlış zamanda gösterilen, ücretsiz denemesi olmayan, geri yükleme butonu ya da Apple'ın istediği bilgiler eksik olan bir paywall satmaz, ya da incelemede reddedilir.
İlk uygulamalarda en sık gördüğüm 7 hatayı ve her birini nasıl düzelteceğini anlatıyorum. Sihirli bir tarif yok: Apple'a bir sonraki gönderiminden önce uygulayabileceğin, kontrol edilebilir somut ayarlar var.
Kendi abonelikli iOS uygulamalarımı yayınlıyorum: mini oyunlu bir çalar saat olan Solys ve bir trading simülatörü olan TradaZen. İkisi de RevenueCat'e bağlı. İkisinde de aynı durumu yaşadım: çok indirme, çok az başlatılan ücretsiz deneme. Sorun üründe değildi. Paywall ve onboarding kullanıcıyı denemeye yeterince net götürmüyordu. Onları baştan sona yeniden elden geçirmemin nedenlerinden biri bu oldu ve bu liste de oradan çıktı.
Hata 1: paywall'u çok erken ya da çok geç göstermek
En pahalıya patlayan hata bu ve iki yönde de karşına çıkıyor.
Çok erken, kullanıcı uygulamanın ne yaptığını anlamadan paywall'un açılması demek. Uygulamayı açıyor, bir fiyat görüyor, kapatıyor. Henüz hiçbir şey görmediği için ödeme yapması için hiçbir nedeni yok.
Çok geç, paywall'un ayarlarda bir "Premium" butonunun arkasına saklanması ya da ancak birkaç günlük kullanımdan sonra çıkması demek. Kullanıcıların çoğu onu hiç görmeyecek. Teklifini görmeyen bir kullanıcı da abone olamaz.
Doğru an ikisinin arasında: onboarding'in sonunda, kullanıcı uygulamanın değerini fark ettikten hemen sonra. Birkaç soruya cevap vermiş, uygulamanın onun için ne yapacağını görmüş, belki ana özelliği denemiş. Teklif tam burada anlam kazanıyor.
Somut olarak:
- onboarding işe yarar sorular soruyor ve sonucun bir önizlemesini gösteriyor;
- paywall bu akışın ortasında değil, sonunda geliyor;
- kullanıcı ücretsiz sürümün bir sınırına takıldığında paywall'u daha sonra tekrar gösterebilirsin. Daha önce ücretsiz olan bir özelliği ücretli yapacaksan önce guideline 3.2.2 rehberini oku.
Hata 2: ücretsiz deneme sunmamak
Henüz kimsenin tanımadığı bir uygulama için hemen ödeme istemek büyük bir sıçrama. Ücretsiz deneme bu sıçramayı küçültür: kullanıcı risksiz dener, iptal etmezse ödeme ancak deneme süresinin sonunda başlar.
Apple bu mekanizmayı otomatik yenilenen abonelikler için introductory offer (tanıtım teklifi) adıyla sunuyor. Apple'ın abonelik sayfasından aklında tutman gereken iki kural:
- bir müşteri abonelik grubu başına yalnızca bir tanıtım teklifinden yararlanabilir;
- satın alma akışında deneme süresini ve deneme bittikten sonra faturalanacak fiyatı açıkça belirtmen gerekir.
Sık yapılan hata, denemeyi sunup bunu söylememek. Butonunda sadece "Subscribe" yazıyorsa, kullanıcı ücretsiz deneyebileceğini bilmez. Bunu butonun üstüne ya da hemen üzerine açık açık yaz: deneme süresi, sonra fiyat. Uyuyan indirmelerle başlayan denemeler arasındaki farkı yaratan tam olarak bu tür detaylar.
Hata 3: yıllık aboneliği iyi öne çıkarmamak
İlk uygulamaların çoğu aylık ve yıllık plan sunuyor ama ikisini hiyerarşi olmadan, yan yana, aynı iki seçenek gibi gösteriyor. Sonuç: kullanıcı tereddüt ediyor ve tereddüt eden kullanıcı çoğu zaman ekranı kapatıyor.
Oysa yıllık planın hem senin hem kullanıcının işine yarayan avantajları var: onun için daha düşük bir aylık eşdeğer fiyat, senin için daha uzun bir taahhüt. Onu dürüstçe öne çıkarmak için:
- önceden seçili yap ve ona farklı bir görsel sunum ver;
- karşılaştırma anında yapılsın diye yıllık fiyatın yanında aylık eşdeğerini göster;
- aylığa göre gerçek tasarrufu belirt, uydurulmuş bir referans fiyata göre değil, gerçek fiyatlarına göre hesapla.
Ters uca düşmemeye dikkat et: gerçekte faturalanan fiyat en görünür olan olmalı. Apple, tam yenileme fiyatının açık ve görünür şekilde gösterilmesini istiyor. Aylık eşdeğer kocaman, gerçek yıllık fiyat minicik: bu yanıltıcı bir paywall ve guideline 3.1.2 kapsamında ret sebebi.
Hata 4: satın alımları geri yükleme butonunu unutmak
En saçma ve en sık yapılan unutkanlıklardan biri. Bir abone iPhone'unu değiştiriyor, uygulamayı yeniden yüklüyor ve zaten ödeme yaptığı halde kendini paywall'un önünde buluyor. "Restore Purchases" butonu olmadan erişimini geri almanın hiçbir yolu yok.
Bu bir seçenek değil. App Store inceleme kuralları (kural 3.1.1) geri yüklenebilir her uygulama içi satın alım için bir geri yükleme mekanizması istiyor ve Apple'ın abonelik sayfası kayıt ekranının öğeleri arasında "mevcut abonelerin giriş yapması ya da satın alımlarını geri yüklemesi için bir yol" sayıyor.
RevenueCat ile geri yükleme tek bir çağrıdan ibaret. Asıl iş, sonrasında ne olduğunu kontrol etmek:
- abone, uygulamayı yeniden başlatmak zorunda kalmadan erişimini gerçekten geri alıyor;
- satın alımı olmayan bir kullanıcı teknik bir hata değil, net bir mesaj görüyor;
- buton sadece ayarlarda değil, paywall'un kendisinde görünüyor.
Hata 5: Apple'ın istediği bilgileri unutmak
Kullanıcının ne ödeyeceğini açıkça söylemeyen bir paywall reddedilebilir. Apple, aboneliklere ayrılmış sayfasında kayıt ekranında nelerin bulunması gerektiğini ayrıntılı anlatıyor:
- aboneliğin adı ve süresi, ve bu süre boyunca neler sağladığı;
- açıkça gösterilen ve mevcut para birimlerine göre yerelleştirilmiş tam yenileme fiyatı;
- satın alımları geri yüklemenin bir yolu (önceki hataya bak).
Otomatik yenileme hakkında açık bir cümle ekle: abonelik, kullanıcı iptal etmediği sürece yenilenir ve kullanıcı bunu Apple hesabının ayarlarından iptal edebilir.
Aynı sayfa ayrıca uygulamanın ve App Store meta verilerinin kullanım koşullarına ve gizlilik politikasına bağlantılar içermesi gerektiğini belirtiyor. Birçok kişinin ret anında öğrendiği bir nokta bu: bu bağlantıları uygulamaya koymak yetmez, App Store sayfasının açıklamasında da abonelik koşullarının bir özeti ve bu iki bağlantı olmalı. Bunlar olmazsa kural 3.1.2 kapsamında ret alırsın. Abonelikli uygulamalarımda açıklamayı kısa bir blokla bitiriyorum: abonelik koşulları, ardından kullanım koşulları bağlantısı ve gizlilik politikası bağlantısı. Sayfan çevrilmişse bu blok her dilde bulunmalı.
Bağlantılarını yapıştırmadan önce onları bir tarayıcıda aç. Var olmayan bir sayfaya giden bağlantı, hiç olmayan bir bağlantıyla aynıdır.
Sık karşılaşılan diğer ret sebeplerini Apple retleri hakkındaki bu yazıda ayrıntılı anlattım. App Store sayfasının kendisinin de bir sayfası var: App Store sayfanı optimize etmek.
Hata 6: paywall'u sandbox'ta test etmemek
Simülatörde düzgün görünen bir paywall, çalışan bir paywall değildir. App Store Connect'teki ürün yapılandırması, RevenueCat'teki teklifler ve uygulamanın kodu arasında bir detayın bozulabileceği pek çok yer var: yanlış bağlanmış bir ürün, yüklenmeyen bir fiyat, görünmeyen bir deneme.
Apple bunun için bir test ortamı sunuyor: sandbox. App Store Connect'te "Users and Access" bölümünde, Sandbox sekmesinde oluşturduğun test Apple hesaplarıyla çalışıyor. App Store Connect dokümantasyonunda anlatıldığı gibi, bu hesaplar yenilemeler, ödeme hataları ve iadeler dahil satın alımları para çekilmeden test etmeye yarıyor.
Her gönderimden önce, gerçek bir iPhone'da en azından şu akışı baştan sona dene:
- ilk açılış, tam onboarding, paywall'a varış;
- bir test hesabıyla denemeyi başlatma;
- premium erişimin gerçekten açıldığını kontrol etme;
- uygulamayı silme, yeniden yükleme, satın alımı geri yükleme;
- paywall'un desteklediğin en küçük ve en büyük iPhone'da düzgün görünmesi.
Apple'ın reviewer'ı da satın alımı test edecek. Takılırsa, ret gelir.
Hata 7: hiçbir şeyi ölçmemek
Diğer tüm hataları düzeltmeni engelleyen hata bu. Ölçüm olmadan kullanıcıların nerede koptuğunu bilemezsin. Sadece nihai sonucu görürsün: az abone. Sorunun onboarding mi, paywall mı, fiyat mı, deneme mi olduğunu bilemezsin.
Kendi uygulamalarımdaki sorunu görmemi sağlayan da tam olarak buydu: indirmeler vardı, başlatılan denemeler yoktu. Bu iki rakamı yan yana görmeseydim, haftalarca başka bir şeyle uğraşabilirdim.
Her kilit adımda analytics olayları tanımla, örneğin PostHog ile:
- onboarding başlangıcı;
- onboarding sonu;
- paywall gösterimi;
- başlatılan deneme;
- onaylanan satın alım ya da abonelik;
- başarılı geri yükleme.
Bu olaylarla bir huni elde edersin. Kullanıcıların ayrıldığı adımı görür, önce neyi elden geçireceğini bilirsin. RevenueCat de gelir tarafındaki görünümü tamamlar: denemeler, dönüşümler, yenilemeler, iptaller.
Son bir tavsiye: her şeyi aynı anda değiştirme. Fiyatı, denemeyi ve paywall tasarımını aynı gün değiştirirsen, rakamları neyin oynattığını asla bilemezsin.
Bir sonraki gönderiminden önce paywall kontrol listesi
- Paywall, değerin kanıtlanmasından sonra, onboarding'in sonunda geliyor.
- Ücretsiz deneme açıkça gösteriliyor: süre, sonra denemeden sonraki fiyat.
- Yıllık plan dürüstçe öne çıkarılıyor, gerçekte faturalanan fiyat okunabilir kalıyor.
- "Restore Purchases" butonu paywall'da ve çalışıyor.
- Ad, süre, yenileme fiyatı ve otomatik yenileme belirtilmiş.
- Kullanım koşulları ve gizlilik politikası bağlantıları uygulamada ve App Store açıklamasında, her dilde var.
- Tam satın alma akışı gerçek bir iPhone'da sandbox'ta test edildi.
- Analytics olayları onboarding'den satın alıma kadar her adımı kapsıyor.
Modelin kendisi konusunda, yani abonelik mi tek seferlik ödeme mi, hâlâ kararsızsan buna özel bir rehber yazdım: ilk iOS uygulaman için abonelik mi tek seferlik satın alım mı. Ürünler, RevenueCat ve doğrulama dahil tüm teknik kısım için her şey iOS uygulama içi abonelikler sayfasında.
Paywall'unu iOS Kit ile kur
Paywall sadece bir parça. Kendisinden önceki onboarding'e, belirlediğin fiyata, kullanıcıları getiren App Store sayfasına ve uygulamanın ana özelliğine bağlı. O ana özelliği de iyi sınırlandırılmış bir ilk sürümde basit tutmak gerekiyor.
Hazır bir temelden başlamak istersen, onboarding, paywall ve abonelikler iOS Kit'in Starter Code'unda zaten var ve akışının üçüncü adımı bunları kendi uygulamana bağlamaya ayrılmış. Kimse sana bir gelir garanti edemez.
Gönderimden önce Apple Review Kit'in Claude Code skill'leri paywall'unu ve Apple'ın istediği bilgileri gözden geçiriyor. Ana sayfa da bu paywall zaten bağlıyken mobil uygulamanı nasıl yayınlayacağını gösteriyor.
Sık sorulan sorular
Hangi iOS paywall hataları ilk uygulamanın satışlarını engeller?
İlk uygulamalarda yedi hata tekrar ediyor: çok erken ya da çok geç gösterilen paywall, ücretsiz deneme olmaması, iyi öne çıkarılmamış yıllık abonelik. Ardından unutulmuş geri yükleme butonu, Apple'ın istediği bilgilerin eksik olması, hiç sandbox'ta test edilmemiş paywall ve hiç ölçüm yapılmaması geliyor. Her biri, Apple'a bir sonraki gönderiminden önce kontrol edeceğin somut bir ayarla düzelir.
iOS uygulamasında paywall ne zaman gösterilmeli?
Onboarding'in sonunda, kullanıcı uygulamanın değerini fark ettikten hemen sonra. Çok erken olursa, uygulamanın ne yaptığını anlamadan bir fiyat görür. Çok geç olursa, örneğin ayarlarda bir "Premium" butonunun arkasında, kullanıcıların çoğu onu hiç görmez. Kullanıcı ücretsiz sürümün bir sınırına takıldığında onu daha sonra tekrar gösterebilirsin.
Apple'ın kurallarına uymak için iOS paywall'u neleri göstermeli?
Apple kayıt ekranında aboneliğin adını ve süresini, neler sağladığını, açıkça gösterilen tam yenileme fiyatını ve satın alımları geri yüklemenin bir yolunu istiyor. Ayrıca uygulamada ve App Store sayfanın açıklamasında kullanım koşullarına ve gizlilik politikasına bağlantılar gerekiyor. Açıklamada bunlar yoksa ret alırsın. Otomatik yenileme hakkında açık bir cümle de ekle.
iOS uygulamasında ücretsiz deneme sunmalı mıyım?
Evet, özellikle henüz kimsenin tanımadığı bir uygulama için: hemen ödeme istemek büyük bir sıçrama ve deneme risksiz test etmeyi sağlıyor. Apple buna tanıtım teklifi (introductory offer) diyor ve aynı müşteri için abonelik grubu başına bir taneyle sınırlı. Deneme süresini ve ardından faturalanacak fiyatı butonun üstüne ya da hemen üzerine yaz.
Yıllık abonelik kullanıcıyı yanıltmadan nasıl öne çıkarılır?
Yıllık planı önceden seçili yap, ona farklı bir görsel sunum ver ve yıllık fiyatın yanında aylık eşdeğerini göster. Aylığa göre gerçek tasarrufu, uydurulmuş bir referans fiyata göre değil, gerçek fiyatlarına göre hesaplayarak belirt. Gerçek fiyatı saklama: aylık eşdeğer kocaman, yıllık fiyat minicikse bu yanıltıcı bir paywall ve ret sebebi.
iOS paywall'u Apple'a göndermeden önce nasıl test edilir?
Apple'ın sandbox'ıyla: App Store Connect'te oluşturulan ve para çekilmeden satın almaya izin veren test hesaplarıyla. Gerçek bir iPhone'da tam akışı baştan sona dene: onboarding, denemeyi başlatma, premium erişim, ardından uygulamayı silme, yeniden yükleme ve satın alımı geri yükleme. Desteklediğin en küçük ve en büyük iPhone'daki görünümü de kontrol et.