Tüm makaleler
Uygulama rehberi8 dk okuma

Apple ve Google, bir kesintiden sonra abonelik yenileme tarihini uzatmanıza izin veriyor, ama sınırları birbirine hiç benzemiyor

Uygulamanız çöktüğünde, iade taleplerini beklemek yerine abonelik yenileme tarihini uzatabilirsiniz. Apple'ın 90 günlük uzatmalarının ve Google Play'in faturalandırma ertelemesinin nasıl çalıştığını, her mağazanın sınırı nereye çektiğini ve her seçeneğin size neye mal olduğunu anlatıyoruz.

Kehribar renkli uyarı ışıkları yanan bir sunucu kabini ve yanında ekranında takvim açık bir dizüstü bilgisayar, bir geliştiricinin kesintiden sonra abonelik yenileme tarihini uzatmaya karar verdiği an

Önemli noktalar

  • Apple'ın App Store Server API'si, geliştiricinin ücretli ve aktif bir otomatik yenilenen aboneliğin yenileme tarihini 1 ila 90 gün uzatmasına izin verir. Amaç bir kesintiyi, iptal edilen bir etkinliği veya kesilen bir canlı yayını telafi etmektir.
  • Apple, 365 gün içinde müşteri başına iki yenileme tarihi uzatmasına izin verir. Bir uzatma yürürlüğe girdikten sonra geri alınamaz ve Apple müşteriye yeni yenileme tarihini e-postayla bildirir.
  • Apple; ücretsiz teklif dönemindeki, faturalandırma yeniden deneme durumundaki, bitiş tarihi geçmiş bir ek süre dönemindeki veya süresi dolmuş bir aboneliği uzatmaz. Aboneliğin arkasında en az bir ücretli dönem olmalıdır.
  • Apple'da yenileme tarihi uzatmasıyla eklenen günler, geliştiricinin abonelik gelir payını %70'ten %85'e çıkaran bir yıllık ücretli hizmet süresine sayılmaz.
  • Google Play'in purchases.subscriptionsv2.defer yöntemi, bir aboneliğin bir sonraki faturalandırma tarihini çağrı başına en az bir gün, en fazla bir yıl ileri atar. Kullanıcı ücret ödemeden tam erişimini korur ve Google bir SUBSCRIPTION_DEFERRED bildirimi gönderir.
  • Yenileme tarihi uzatması para iade etmez. Geliştirici ödemeyi elinde tutar, ama eklenen günlerde işlem gücü, depolama ve API çağrıları için ödeme yapar ve bunları karşılayacak bir yenileme yoktur. İade ise ücreti geri gönderir ve o müşteriye hizmet vermek için zaten harcanan paranın hiçbirini geri getirmez.
  • Bir kesinti uygulama içi satın alımın teslim edilmesini engellediyse ve Apple bir CONSUMPTION_REQUEST gönderirse, dürüst deliveryStatus değeri UNDELIVERED_SERVER_OUTAGE olur. Apple, DELIVERED dışındaki her durum için consumptionPercentage değerinin 0 olmasını şart koşar.

Kesinti, her aboneye akla gelebilecek en sağlam iade gerekçesini verir ve bunu dile getirmelerini engelleyemezsiniz. Yapabileceğiniz şey, kimse istemeden kaybedilen günleri geri vermektir. İki uygulama mağazası da abonelik yenileme tarihini uzatmanıza izin verir, böylece müşteri para yerine ücretsiz süre alır. Apple her uzatmayı 90 günle sınırlar ve yılda iki uzatmaya izin verir. Google, faturalandırmayı çağrı başına bir yıla kadar ertelemenize izin verir. İşlemler, bildirimler ve arkadaki maliyet o kadar farklıdır ki tek bir kesinti planı ikisini birden karşılamaz.

Bir kesinti iade riskinizi nasıl etkiler

İadelere siz değil, mağazalar karar verir. App Store'da müşteri Apple'a başvurur ve kararı Apple verir. Bir CONSUMPTION_REQUEST bildirimi alabilir ve Send Consumption Information üzerinden kullanım verisi göndermek için 12 saatiniz olabilir. Söz hakkınız bundan ibarettir.

Google Play'de alıcı, satın alımdan sonraki 48 saat içinde size sorulmadan iade alabilir. Bundan sonra talepler size gelir. Google'ın kanıtınızı isteyen tek akışı, geliştirici incelemesi için işaretlenmiş bir ters ibrazdır ve buna 24 saat içinde orders.reviewrefund üzerinden yanıt verirsiniz. Bankanın ters ibraz kararı kesindir.

Yani hiçbir mağaza size bir iadeyi engelleme yolu sunmaz. Sizin kontrolünüzde olan, hizmet geri geldiğinde abonenin hâlâ kendini mağdur hissedip hissetmediğidir. Hızlıca verilen ve açıkça duyurulan ek abonelik süresi, iki mağazanın da tam bu durum için geliştirdiği araçtır.

App Store'da abonelik yenileme tarihi nasıl uzatılır

App Store Server API'de bunun için iki uç nokta vardır. Extend a Subscription Renewal Date, originalTransactionId ile belirttiğiniz tek bir abonelik üzerinde çalışır. Extend Subscription Renewal Dates for All Active Subscribers, tek bir productId'nin uygun tüm aboneleri üzerinde çalışır ve kesinti yalnızca bazı bölgeleri etkilediyse storefrontCountryCodes ile sınırlandırılabilir.

Her istek üç şey taşır: 1 ile 90 arasında bir sayı olan extendByDays, bir extendReasonCode ve sizin ürettiğiniz bir requestIdentifier. Neden kodu 3, bir hizmet sorunu veya kesinti anlamına gelir. Kod 1 müşteri memnuniyeti, kod 2 diğer nedenler, kod 0 ise belirtilmemiş demektir.

Apple hangi abonelikleri uzatır

Yalnızca daha önce en az bir ücretli dönemi olan aktif otomatik yenilenen abonelikler uygundur. Apple şunları atlar:

  • Ücretsiz deneme gibi ücretsiz teklif dönemindeki abonelikler.
  • Faturalandırma yeniden deneme durumundaki etkin olmayan abonelikler.
  • Bitiş tarihi geçmişte kalan bir faturalandırma ek süre dönemindeki abonelikler.
  • Son 365 gün içinde zaten iki yenileme tarihi uzatması almış abonelikler.
  • Süresi dolmuş abonelikler.

Aile Paylaşımı da otomatik olarak dahil olur. Apple, Aile Paylaşımı'nı destekleyen satın alınmış bir aboneliği uzattığında aile üyelerinin abonelikleri de uzatılır. Bir aile üyesinin aboneliğini doğrudan hedefleyemezsiniz.

Toplu istek yavaştır, bu yüzden bildirimleri izleyin

Apple'a göre tüm aktif aboneleri uzatma isteği, abone sayınıza bağlı olarak saatler, hatta günler sürebilir. 200 yanıtı yalnızca Apple'ın isteği işlediği anlamına gelir. Sonucu App Store Server Notifications V2 size bildirir:

BildirimAlt türAnlamı
RENEWAL_EXTENDEDyokBir aboneliğin yenileme tarihi uzatıldı
RENEWAL_EXTENSIONFAILUREBir aboneliğin uzatması başarısız oldu
RENEWAL_EXTENSIONSUMMARYToplu isteğin tamamı bitti

Her FAILURE için payload'daki imzalı işlemden originalTransactionId değerini alın ve tek abonelik uç noktasıyla yeniden deneyin. Sorgulamayı tercih ederseniz Get Status of Subscription Renewal Date Extensions, isteğin tamamlanıp tamamlanmadığını ve kaç uzatmanın başarılı ya da başarısız olduğunu bildirir.

Google Play'in faturalandırma ertelemesi nasıl çalışır

Google'daki karşılığı, her satın alma jetonu için bir kez çağrılan purchases.subscriptionsv2.defer yöntemidir. İstek gövdesi üç alanlı bir deferralContext içerir. etag değeri purchases.subscriptionsv2.get yönteminden gelir ve aboneliğin en güncel etag değeriyle eşleşmezse çağrı başarısız olur. deferDuration, tarihin ne kadar ileri atılacağını belirtir. validateOnly ise true olduğunda isteği aboneliğe dokunmadan bir deneme çalıştırması olarak yürütür.

Google'ın faturalandırma kılavuzu aralığı API çağrısı başına bir gün ile bir yıl olarak belirler. Daha ileri gitmek için yeni bitiş tarihi gelmeden önce yeniden çağırın. Otomatik yenilenen bir abonelikte erteleme bir sonraki yenileme tarihini ileri atar. Ön ödemeli bir planda bitiş zamanını ileri atar. Eklentileri olan bir abonelikte her öğe aynı süre kadar ertelenir. Yanıt, her öğenin yeni expiryTime değerini listeler.

Erteleme süresince kullanıcı abone olarak kalır, tam erişime sahiptir ve ek süre için ücret ödemez. Google, SUBSCRIPTION_DEFERRED adlı bir gerçek zamanlı geliştirici bildirimi gönderir. Eski purchases.subscriptions.defer kullanımdan kaldırıldığı için yeni kod v2 yöntemini kullanmalıdır.

Google müşterinize haber vermez, bunu sizin yapmanız gerekir

Apple, her başarılı uzatmadan sonra müşteriye e-posta gönderir. Google'ın faturalandırma kılavuzu ise kullanıcıya gönderilen hiçbir mesajdan bahsetmez. Asıl amaç iade taleplerinin önüne geçmekse, abonenin ek sürenin varlığından haberdar olması gerekir. Bunu uygulama içinde ve e-postayla kendiniz bildirin, kaç gün verdiğinizi ve nedenini söyleyin.

Apple ve Google yan yana

Apple App StoreGoogle Play
APIExtend a Subscription Renewal Date ve bir toplu uç noktapurchases.subscriptionsv2.defer
İstek başına süre1 ila 90 gün1 gün ila 1 yıl
Sıklık365 gün içinde müşteri başına iki kezBelirtilmiş bir sınır yok; yeni bitiş tarihinden önce yeniden çağırın
Toplu seçenekproductId başına bir çağrı, isteğe bağlı olarak mağaza ülkesine göreSatın alma jetonu başına bir çağrı
Ücretsiz denemeUygun değilGoogle'ın kılavuzunda ele alınmıyor
BildirimRENEWAL_EXTENDED, RENEWAL_EXTENSIONSUBSCRIPTION_DEFERRED
Müşteriye bildirimApple e-posta gönderirSize kalmış
Geri alınabilirHayırGoogle'ın kılavuzunda ele alınmıyor

Uzatmanın maliyeti iadeyle karşılaştırıldığında

İade ve uzatma parayı farklı yerlerden alır. İade, müşterinin o dönem için ödediğini geri gönderir. O müşteriye hizmet vermek için zaten harcadığınız her şey harcanmış olarak kalır: her oturumun işlem gücü, model API çağrıları, depolama ve içeriğini kullandıkları bir içerik üreticisine yapılan her ödeme.

Uzatma ödemeyi elde tutar. Maliyeti, karşılığını ödeyecek bir yenileme olmadan verdiğiniz hizmettir. Eklenen her gün, aktif bir abone aynı faturaları biriktirmeye devam eder. Az kullanan biri için bu neredeyse sıfırdır. Bir yapay zekâ özelliğini yoğun kullanan biri için 30 ek gün, karşısında hiç gelir olmayan 30 günlük model çağrısı anlamına gelebilir. Uzatmayı yapmak istediğiniz özre göre değil, kesintiye göre boyutlandırın.

Neden vazgeçiyorsunuzİadeYenileme tarihi uzatması
Abonelik ödemesiMüşteriye iade edilirSizde kalır
Müşteriye hizmet için zaten yapılan harcamalarKaybedilirKaybedilir
Eklenen günlerdeki işlem gücü, depolama ve API çağrılarıYok, erişim sona ererSiz ödersiniz, henüz yenileme yok
Sonrasında abonelikİade erişimi kaldırırsa sona ererAktif, yeni tarihte yenilenir

Apple'daki komisyon maliyeti

Apple, bir abonenin ücretli hizmetinin ilk yılında her yenilemenin %70'ini, sonrasında %85'ini öder. Apple'ın abonelik sayfasına göre yenileme uzatma günleri ücretli hizmet günlerinden hariç tutulur. Dolayısıyla 30 günlük bir uzatma, o abonenin %85'e geçişini 30 gün ileri atar. App Store Small Business Program'daysanız zaten %85 alıyorsunuz ve bu maliyet sizin için geçerli değil.

Google Play'deki ters ibraz maliyeti

3 Ağustos 2026'dan sonra verilen siparişlerde, kart sahibinin kazandığı bir ters ibraz, bir Google Play geliştiricisine Play'in hizmet ücreti düşülmüş satın alma bedeline ek olarak bankanın ücretlerine mal olur. Kesinti, tam da sinirli bir müşteriyi bankasına gönderen türden bir olaydır. Müşteriye ondan önce ulaşan bir erteleme, geri çeviremeyeceğiniz bir itirazdan daha ucuzdur.

İleri alınmış bir tarihi gösteren duvar takvimi, yanında bir telefon ve bulut barındırma faturası, bir geliştiricinin kesintiden sonra aboneliği uzatmadan önce tarttığı maliyetler

Uzatmanın doğru araç olmadığı durumlar

Satın alım bir abonelik değildi

Yenileme tarihi uzatmaları yalnızca aboneliklere uygulanır. Bir kesinti tüketilebilir bir ürünü veya tek seferlik bir kilit açmayı bozduysa, öğeyi yeniden teslim edin. Apple bunun için bir CONSUMPTION_REQUEST gönderirse ne olduğunu bildirin. Apple'ın deliveryStatus alanında bunun için UNDELIVERED_SERVER_OUTAGE değeri vardır ve Apple, DELIVERED dışındaki her durumun 0 olarak ayarlanmış consumptionPercentage ile gelmesi gerektiğini söyler.

Müşteri iki Apple uzatmasını da kullanmış

Apple'ın sınırı, 365 günde müşteri başına iki uzatmadır. Bir yılda yaşanan iki kesinti ikisini de tüketir ve üçüncüsünde mağaza üzerinden sunacak hiçbir şeyiniz kalmaz. Toplu isteğin FAILURE bildirimlerinin sizi şaşırtmaması için her originalTransactionId'nin kaç uzatma kullandığını takip edin.

Müşteri ücretsiz denemede

Apple, ücretsiz teklif dönemindeki bir aboneliği uzatmaz. Deneme kullanıcısı ücretli değil, ücretsiz günler kaybetti, bu yüzden iade riski düşüktür. Gönlünü almak isterseniz, uygulama içi bir mesaj herhangi bir API çağrısından daha ucuza gelir.

Bir sonraki kesinti için kontrol listesi

  • Kesintinin ne zaman başlayıp bittiğini ve hangi ürünleri ve bölgeleri etkilediğini kaydedin.
  • Kaybedilen süreyi karşılayan bir gün sayısı seçin. Apple'da neden kodu 3'ü kullanın ve 1 ile 90 aralığında kalın.
  • Apple'da productId başına bir toplu istek gönderin, yalnızca bazı bölgeler etkilendiyse storefrontCountryCodes ile sınırlandırın.
  • RENEWAL_EXTENSION FAILURE bildirimlerini dinleyin ve her birini tek abonelik uç noktasıyla yeniden deneyin.
  • Google Play'de aktif satın alma jetonlarını tek tek dolaşın, her birinin etag değerini okuyun, önce validateOnly ile çalıştırın, sonra gerçekten erteleyin.
  • Google Play abonelerine ek süreyi kendiniz bildirin, çünkü Google bildirmeyecek.
  • Yetki bitiş tarihlerini kendi tarih hesaplamanıza göre değil, RENEWAL_EXTENDED ve SUBSCRIPTION_DEFERRED bildirimlerine göre güncelleyin.
  • Hesap başına kullanım kayıtları tutun, böylece yine de bir iade talebi veya ters ibraz gelirse kanıtınız Apple için 12 saat, Google için 24 saat içinde hazır olur.

Sık sorulan sorular

Bir App Store aboneliğinin yenileme tarihini kaç kez uzatabilirim?
365 gün içinde müşteri başına iki kez. Her uzatma 1 ila 90 gün olabilir ve son 365 günde zaten iki uzatma almış bir abonelik yeni bir uzatma için uygun değildir.
Aboneliğini uzattığımda Apple müşteriye haber veriyor mu?
Evet. Başarılı bir yenileme tarihi uzatmasından sonra Apple, müşteriye güncellenmiş yenileme tarihini içeren bir e-posta gönderir. Google Play'in faturalandırma kılavuzu böyle bir mesajdan bahsetmez, bu yüzden Android'de abonelere kendiniz haber vermelisiniz.
Bir Google Play aboneliğini ne kadar süre erteleyebilirim?
Google'ın faturalandırma kılavuzuna göre purchases.subscriptionsv2.defer çağrısı başına bir gün ile bir yıl arası. Daha fazla ertelemek için yeni bitiş tarihi gelmeden API'yi yeniden çağırın. Kullanıcı tam erişimini korur ve ertelenen süre için ücret ödemez.
Apple'da bir yenileme tarihi uzatmasını geri alabilir miyim?
Hayır. Apple, bir abonelik yenileme uzatması yürürlüğe girdikten sonra bunu geri almanın hiçbir yolu olmadığını söylüyor. İsteği göndermeden önce ürünü, gün sayısını ve mağaza ülkelerini kontrol edin.
Yenileme tarihi uzatması Apple'daki %85 gelir payımı etkiler mi?
Evet. Apple, yenileme uzatma günlerini ücretli hizmet günlerinden hariç tutar, bu yüzden bir uzatma, abonenin %70'ten %85'e geçtiği anı eklediğiniz gün sayısı kadar geciktirir. App Store Small Business Program'daki geliştiriciler zaten %85 alır.
Ücretsiz denemedeki bir aboneliği uzatabilir miyim?
App Store'da hayır. Apple; ücretsiz teklif dönemindeki abonelikleri, faturalandırma yeniden deneme durumundakileri, ek süresi dolmuş olanları ve süresi dolmuş abonelikleri hariç tutar. Yalnızca en az bir ücretli dönemi olan aktif abonelikler uygundur.

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.