Tüm makaleler
Uygulama rehberi8 dk okuma

Abonelik iptal nedenleri genellikle iade talebinden önce size ulaşır ve Google Play bu konuda Apple'dan çok daha fazlasını paylaşır

Google Play abonelik iptal nedenlerini iptal anketinden kaydeder, Apple ise yalnızca bir sona erme kodu gönderir. Her mağazanın size ne söylediğini, hangi sinyallerin yaklaşan bir iade veya ters ibrazı (chargeback) haber verdiğini ve her birinin size maliyetini burada bulabilirsiniz.

Sabahın erken ışığında masasında oturan bir geliştirici, çetele işaretleriyle dolu bir defterin yanında telefonundaki abonelik ekranına bakıyor ve abonelik iptal nedenlerini ayıklıyor

Önemli noktalar

  • Google Play, aboneler iptal ederken neden ayrıldıklarını sorar ve yanıt geliştiriciye purchases.subscriptionsv2 içindeki canceledStateContext.userInitiatedCancellation.cancelSurveyResult üzerinden ulaşır.
  • Google Play'in iptal anketinde geliştiricinin okuyabileceği beş yanıt vardır: yeterince kullanmama, teknik sorunlar, maliyetle ilgili nedenler, daha iyi bir uygulama bulma ve diğer. reasonUserInput içindeki serbest metin yalnızca kullanıcı diğer seçeneğini işaretlediğinde doldurulur.
  • Google Play'den gelen SUBSCRIPTION_CANCELED bildirimi yalnızca satın alma jetonunu (purchase token) taşır. İptal nedeni purchases.subscriptionsv2.get ile çekilmelidir ve kullanıcı aboneliği geri yüklerse Google tüm iptal alanlarını temizler.
  • Apple'ın App Store Server API'sinde iptal anketi yoktur. expirationIntent alanı beş koddan birini verir: müşteri iptal etti, faturalama hatası, fiyat artışına veya teklif dönüşümüne onay verilmedi, ürün mevcut değil ya da diğer.
  • Apple'ın AUTO_RENEW_DISABLED alt türlü DID_CHANGE_RENEWAL_STATUS bildirimi, yalnızca müşterinin otomatik yenilemeyi kapattığını değil, müşteri iade talep ettikten sonra App Store'un otomatik yenilemeyi kapattığını da gösterebilir.
  • İptal nedeni geliştiriciye iade kararında hiçbir söz hakkı vermez. Kanıt isteyen yalnızca iki akış vardır: 12 saat içinde yanıtlanan Apple'ın CONSUMPTION_REQUEST'i ve orders.reviewrefund üzerinden 24 saat içinde yanıtlanan Google Play'in ters ibraz incelemesi.
  • Teknik sorunları gerekçe göstererek iptal eden Google Play abonesi parasını geri isteme olasılığı en yüksek kişidir. August 3, 2026 sonrasında verilen siparişlerde kazandığı bir ters ibraz, geliştiriciye satın alma fiyatından Play hizmet ücretinin düşülmüş hâline ek olarak bankanın ücretlerine mal olur.

Sonunda iade alan abonelerin çoğu önce aboneliğini iptal eder. Bu iptal bir neden taşır ve iki mağaza size bu konuda çok farklı miktarda bilgi verir. Google Play kısa bir anket yapar ve yanıtı serbest metin dahil sunucunuza iletir. Apple ise aboneliğin nasıl sona erdiğini söyleyen sayısal bir kod gönderir, müşterinin neden ayrılmak istediğini değil. İkisini de doğru okursanız, iade taleplerini hâlâ bir şey yapabilecekken gelirken görürsünüz.

Google Play abonelik iptal nedenleri hakkında size neler söyler

Bir kullanıcı Play abonelik merkezinde iptal ettiğinde Google ona nedenini sorar. Yanıt, purchases.subscriptionsv2.get ile aldığınız abonelik kaynağında, canceledStateContext altında yer alır. Bu nesne yalnızca abonelik iptal edilmiş veya süresi dolmuş durumdayken vardır ve aboneliği kimin sonlandırdığını söyler: kullanıcı, Google'ın sistemi, siz ya da plan değişikliği gibi bir değiştirme işlemi.

İptali kullanıcı yaptıysa userInitiatedCancellation nesnesi iki alan içerir. cancelTime ne zaman iptal ettiklerini söyler. cancelSurveyResult anket yanıtını tutar.

Anket nedeniGoogle'ın açıklamasıGenellikle neye işaret eder
CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGEAboneliğin yeterince kullanılmamasıDüşük kullanım, yani hesaba harcanan maliyet az
CANCEL_SURVEY_REASON_TECHNICAL_ISSUESUygulamayı kullanırken teknik sorunlarEn güçlü iade ve ters ibraz sinyali
CANCEL_SURVEY_REASON_COST_RELATEDMaliyetle ilgili sorunlarFiyat hassasiyeti, bazen beklenmedik bir yenileme
CANCEL_SURVEY_REASON_FOUND_BETTER_APPKullanıcı daha iyi bir uygulama bulduBir rakip kazandı, nadiren anlaşmazlık çıkar
CANCEL_SURVEY_REASON_OTHERSDiğer nedenlerreasonUserInput'u okuyun, kullanıcının kendi sözleri
CANCEL_SURVEY_REASON_UNSPECIFIEDBelirtilmemiş iptal anketi nedeniÜzerinde çalışılacak bir yanıt yok

Sağdaki sütun Google'ın değil, bizim yorumumuz. İlk iki sütun doğrudan API referansından alınmıştır.

Bildirim nedeni taşımaz

İptal edilen bir abonelik, type 3 olan SUBSCRIPTION_CANCELED gerçek zamanlı geliştirici bildirimini tetikler. Google, bu bildirimlerin yalnızca satın alma durumunun değiştiğini söylediğini açıkça belirtir. Yük size bir satın alma jetonu dışında işe yarar bir şey vermez, bu yüzden işleyicinizin anket yanıtını okumak için purchases.subscriptionsv2.get çağırması gerekir.

Play Console görünümü

Toplamları görmek için koda ihtiyacınız yok. Play Console'un abonelik raporlarında kaybı gönüllü, gönülsüz ve diğer olarak ayıran bir Cancellations kartı ve yanıt vermeyi seçen kullanıcılar için bir Cancellation survey responses kartı bulunur. Diğer seçeneğini işaretleyen kullanıcıların serbest metin yanıtları, Other responses kartından CSV olarak indirilebilir. Bu indirme, View financial data iznini gerektirir. Bu, siparişlerinizi okuyan bir araca vereceğiniz izinle aynıdır.

Apple size neler söyler ve neleri dışarıda bırakır

Apple, geliştiricilere geri bildirim veren bir iptal anketi yürütmez. En yakın alan, imzalı yenileme bilgisindeki expirationIntent'tir ve müşterinin ne düşündüğünü değil, aboneliğin nasıl sona erdiğini anlatır.

expirationIntentApple'a göre anlamıKarşılık gelen EXPIRED alt türü
1Müşteri aboneliğini iptal ettiVOLUNTARY
2Geçersiz ödeme bilgisi gibi bir faturalama hatasıBILLING_RETRY
3Onay gerektiren bir fiyat artışına veya teklif dönüşümüne onay verilmediPRICE_INCREASE
4Ürün yenileme sırasında satın alınabilir değildiPRODUCT_NOT_FOR_SALE
5Başka bir nedenAlt tür yok

Müşterinin verdiği bir kararı anlatan tek kod 1'dir ve bu kod da motivasyon hakkında hiçbir şey söylemez. Uygulama sürekli çöktüğü için ayrılan bir müşteriyle projesini bitirdiği için ayrılan bir müşteri birebir aynı görünür.

AUTO_RENEW_DISABLED içinde saklı sinyal

Apple'ın daha yakından bakmaya değer bir bildirimi var. AUTO_RENEW_DISABLED alt türlü DID_CHANGE_RENEWAL_STATUS genellikle müşterinin otomatik yenilemeyi kapattığı anlamına gelir. Apple'ın belgeleri ikinci bir durum ekler: App Store da müşteri iade talep ettikten sonra otomatik yenilemeyi kapatır.

Yani iOS'ta yenilemenin kapanması, bir iade talebinin ilk izi olabilir. Satın alma bir tüketilebilir ürün veya otomatik yenilenen bir abonelikse ardından bir CONSUMPTION_REQUEST gelebilir ve o andan itibaren tüketim verilerini göndermek için 12 saatiniz olur. Uygulamanızda görünür bir işlem olmadan gelen bir yenileme kapatma olayını, o hesabın kullanım verilerini hazırlamak için bir ön uyarı olarak değerlendirmekte fayda var.

Apple ve Google yan yana

Google PlayApple App Store
Kullanıcıya nedenini sorarEvet, bir iptal anketiGeliştiricinin görebildiği anket yok
Nedenin bulunduğu yerpurchases.subscriptionsv2 içinde canceledStateContextYenileme bilgisinde expirationIntent
Serbest metinreasonUserInput, yalnızca diğer içinYok
İptal edenKullanıcı, sistem, geliştirici veya değiştirmeKoddan ve alt türden çıkarılır
BildirimSUBSCRIPTION_CANCELED, ardından get çağrısıDID_CHANGE_RENEWAL_STATUS, EXPIRED
Kullanıcı yeniden abone olursa kaybolurEvet, geri yüklemede temizlenirYenileme bilgisi güncel durumu yansıtır
PanelCancellation survey responses kartıNedenler için yok
Ahşap bir masada telefon ve kahve fincanının yanında küçük yığınlara ayrılmış basılı anket kartları, tıpkı bir geliştiricinin abonelik iptal nedenlerini gruplaması gibi

İptalin iadeye dönüştüğü yer

İptal bir sonraki ödemeyi durdurur. Sonuncusunu geri vermez. Paranın geri dönüp dönmeyeceği, müşterinin sonra hangi iade akışına ulaştığına bağlıdır ve bu akışların çoğu siz olmadan işler.

  • Google Play'de alıcı, satın almadan sonraki 48 saat içinde kendi başına iade alabilir ve kararı Google verir.
  • Google'ın veya Apple'ın destek ekibi üzerinden yapılan iadelere mağaza karar verir.
  • Apple'ın CONSUMPTION_REQUEST'i 12 saatlik bir süreyle tüketim verilerinizi ister.
  • Google Play'in ters ibraz incelemesi orders.reviewrefund üzerinden 24 saatlik bir süreyle kanıt ister. Bankanın ters ibraz kararı kesindir.

İptal nedeni bu kuralların hiçbirini değiştirmez. Değiştirdiği şey, hangi müşterinin mutsuz olduğunu ne kadar erken öğrendiğiniz ve kanıt isteyen iki akıştan biri geldiğinde kanıtınızın hazır olup olmadığıdır.

Her nedenin size maliyeti

Anket yanıtı, bir hesaba hizmet vermenin şimdiye kadar ne kadara mal olduğunu da kabaca gösterir. Bu, bir iadeden sonra elinizde kalan yüktür.

Teknik sorunlar

En pahalı neden budur. Müşteri ürünü sorunlarla karşılaşacak kadar kullanmıştır, yani oturumlarının arkasındaki işlem gücünü, isteklerinin yaptığı model API çağrılarını, oluşturdukları her şeyin depolamasını ve içeriğini kullandıkları içerik üreticisine borçlu olunan ödemeleri zaten ödemişsinizdir. Ardından iade alırlarsa fiyat geri gider, bu maliyetler sizde kalır. Google Play'de bankalarına giderlerse, August 3, 2026 sonrasında verilen bir sipariş size satın alma fiyatından Play hizmet ücretinin düşülmüş hâline ek olarak bankanın ücretlerine mal olur.

Maliyetle ilgili

Fiyat şikâyeti, arkasında beklenmedik bir yenileme saklamıyorsa göründüğünden daha az maliyetlidir. Bu klasik bir ters ibraz hikâyesidir, bu yüzden iptalin bir yenileme ödemesinin hemen ardından gelip gelmediğini ve yenileme hatırlatıcılarınızın gönderilip gönderilmediğini kontrol edin.

Yeterince kullanmama

Düşük kullanım, düşük hizmet maliyeti demektir. Bu yüzden buradaki bir iade çoğunlukla kazanmak için fazla harcamadığınız parayı geri verir. Ayrıca Apple isterse dürüst tüketim verilerinin müşterinin neyi kullanıp neyi kullanmadığını tam olarak gösterdiği neden de budur.

Daha iyi bir uygulama buldu

Bu müşteriler nadiren itiraz eder. Bir rakibe geçmişlerdir. Bu neden ürün kararları için faydalıdır, iade savunması için ise neredeyse hiç işe yaramaz.

İptal nedenlerini okumak için bir rutin

  • Her Google Play SUBSCRIPTION_CANCELED bildiriminde purchases.subscriptionsv2.get çağırın ve canceledStateContext'i satın alma jetonu ve cancelTime ile birlikte kaydedin.
  • Neden diğer olduğunda reasonUserInput'u olduğu gibi kaydedin. İki mağazanın size verdiği tek serbest metin budur.
  • AUTO_RENEW_DISABLED içeren her Apple DID_CHANGE_RENEWAL_STATUS bildiriminde olayı kaydedin ve bir CONSUMPTION_REQUEST gelme ihtimaline karşı o hesabın kullanım verilerini çekin.
  • Her Apple EXPIRED bildiriminde alt türü ve expirationIntent'i kaydedin, böylece gönüllü kayıp ile faturalama hataları birbirine karışmaz.
  • Teknik sorunları gerekçe gösteren Google Play iptallerinde o hesabın hata kayıtlarını inceleyin ve müşteri bankasına gitmeden önce ona ulaşın.
  • Hesap bazında kullanım kayıtları tutun, böylece bir CONSUMPTION_REQUEST 12 saat içinde, bir ters ibraz incelemesi de 24 saat içinde yanıt bulur.

Sık sorulan sorular

Bir Google Play abonesinin neden iptal ettiğini nasıl görebilirim?
purchases.subscriptionsv2.get çağırın ve canceledStateContext.userInitiatedCancellation.cancelSurveyResult'u okuyun. reason alanı anket yanıtını, reasonUserInput ise kullanıcı diğer seçeneğini işaretlediğinde serbest metni tutar. Play Console da toplamları Cancellation survey responses kartında gösterir.
Apple, geliştiricilere müşterinin aboneliği neden iptal ettiğini söyler mi?
Hayır. Apple'ın geliştiricinin görebildiği bir iptal anketi yoktur. expirationIntent alanı aboneliğin nasıl sona erdiğini müşteri iptal etti, faturalama hatası, fiyat artışına onay verilmedi, ürün mevcut değil veya diğer kodlarıyla söyler, ama müşterinin motivasyonunu söylemez.
SUBSCRIPTION_CANCELED bildirimi iptal nedenini içerir mi?
Hayır. Google Play'in gerçek zamanlı geliştirici bildirimleri yalnızca satın alma durumunun değiştiğini söyler. Nedeni okumak için aboneliği purchases.subscriptionsv2.get ile çekin ve hemen saklayın, çünkü kullanıcı aboneliği geri yüklerse Google iptal alanlarını temizler.
Apple'ın AUTO_RENEW_DISABLED bildirimi bir iade talebi anlamına gelebilir mi?
Evet. Apple'ın belgelerine göre AUTO_RENEW_DISABLED alt türü hem müşterinin otomatik yenilemeyi kapatmasını hem de müşteri iade talep ettikten sonra App Store'un bunu kapatmasını kapsar.
Bir abone iptal ettiğinde erişimini kaldırabilir miyim?
Google Play'de hâlâ hak sahibiyken hayır. Google, iptal eden bir abonenin faturalama döneminin sonuna kadar erişimini koruduğunu ve erişimi erken kaldırmanın Google Play abonelik politikasını ihlal ettiğini söyler. Erişimin ne zaman biteceğine karar vermek için expiryTime'ı kullanın.

Kaynaklar ve ek okumalar

RefundHalt

App Store ve Google Play için geri ödeme otomatik pilotu

Okumaya devam edin

Bir sonraki geri ödeme talebi şimdiden yolda.

İtiraz edemediğiniz bir geri ödemeyle ilgili başka bir destek e-postasını okumak için gereken sürede RefundHalt'ı kurun.