Abonelikler hakkında

Bu konuda, aşağıdakiler gibi abonelik yaşam döngüsü olaylarının nasıl ele alınacağı yenilemeler ve süre sonları. Ek abonelik özellikleri de açıklanmaktadır Promosyonlar sunma ve kullanıcılarınızın kendi kampanyalarını yönetmelerine izin verme gibi aboneliklerdir.

Uygulamanız için abonelik ürünleri yapılandırmadıysanız Ürünlerinizi oluşturun ve yapılandırın.

Aboneliklere genel bakış

Abonelik, kullanıcıların belirli bir süre boyunca erişebileceği avantajları belirtir. belirli bir zaman dilimi]. Örneğin, bir abonelik, bir kullanıcıya bir müzik akış hizmetine erişmek için erişiminizi kullanabilirsiniz.

Aynı uygulama içinde birden fazla aboneliğiniz olabilir. farklı fayda gruplarını veya tek bir öğenin farklı katmanları bir avantaj dizisidir (ör. "Gümüş" ve "Altın" katmanlar).

Temel planlar ve teklifler aracılığıyla birden fazla yapılandırma oluşturabilirsiniz. . Örneğin, Arkadaş Bitkiler projesinin Uygulamanıza daha önce hiç abone olmamış kullanıcılar için tanıtım teklifi. Aynı şekilde, Abone olan kullanıcılar için yükseltme teklifi oluşturabilirsiniz.

Abonelik ürünleri, temel planlar ve teklifler hakkında ayrıntılı bilgi için şuradaki dokümanlara bakın: Play Console Yardım Merkezi.

Ön ödemeli plan entegrasyonu

Ön ödemeli planlar, geçerlilik süresi dolduktan sonra otomatik olarak yenilenmez. Uzatmak için abonelikten yararlanma hakkına sahip değilse kullanıcının aynı abonelik için ön ödemeli plan.

Para ekleme işlemleri için faturalandırma akışını ilk başta yaptığınız gibi başlatın. değeri için teklif verirsiniz. Satın alma işleminin para ekleme olduğunu belirtmeniz gerekmez.

Ön ödemeli plan para ekleme işlemleri için her zaman CHARGE_FULL_PRICE kullanılır değiştirebilirsiniz ve bu modu açık bir şekilde ayarlamanız gerekmez. Tam fatura dönemi için kullanıcıdan hemen ücret alınır. ve yararlanma hakları, para eklemede belirtilen süre boyunca uzatılır.

Para ekleme işleminden sonra, Purchase sonuç nesnesi, en son para ekleme işlemini yansıtacak şekilde güncellenir:

  • Sipariş kimliği
  • Satın alma zamanı
  • İmza
  • Satın alma jetonu
  • Kabul edildi

Aşağıdaki Purchase alanları şurada bulunanlarla her zaman aynı verileri içerir: orijinal satın alma işlemi:

  • Paket adı
  • Satın alma durumu
  • Ürünler
  • Otomatik yenileme

Ön ödemeli satın alma onayı

Otomatik yenilenen aboneliklerde olduğu gibi ön ödemeli planları kabul etmeniz gerekir geri ödeme yöntemini kullanabilirsiniz. Hem ilk satın alma hem de para ekleme işlemleri, teşekkür ederim. Daha fazla bilgi için bkz. Satın alma işlemlerini işleme.

Ön ödemeli plan sürelerinin kısa olma ihtimali nedeniyle mümkün olan en kısa sürede onaylamanız gerekir.

Bir hafta veya daha uzun süreli ön ödemeli planların onaylanması gerekir üç gün içinde tamamlanması gerekir.

Süresi bir haftadan kısa olan ön ödemeli planların onaylanması gerekir ödeme yaparsınız. Örneğin, geliştiricilerin üç günlük ön ödemeli planı onaylamalıdır.

Taksitli abonelik entegrasyonu

Taksitli abonelik, kullanıcıların ödeme yapmak yerine belirli bir süre içinde birden fazla taksitle peşin ödeyeceksiniz.

Taksitli aboneliklerle ilgili diğer noktalar:

  • Kullanılabildiği ülkeler: Taksitli abonelikler özelliği yalnızca kullanılabilir (en son kullanım durumu için Console'a bakın).
  • Fiyatı ayarlama: Taksitli bir abonelik için fiyat belirlerken fiyat, aylık ödeme tutarını temsil eder. Bu, ayarlanan taahhüt dönemiyle birleştirildiğinde toplam tutar abonelik için gösterilen verileri kullanabilirsiniz.
  • Taahhüt süresi: İlk aboneliğin toplam süresi taahhüdünü kabul etmeniz gerekir. Bu süre boyunca aylık ödeme yapmanız gerekir. Örneğin, temel planın 15 aylık taahhüt süresi varsa kullanıcı aylık 15 ay bu süre boyunca gerçekleşen ödemeler.
  • Yenilemeler: Taksitli abonelikler bağlamında, "yenileme" ifade eder bir taahhüt döneminin sonu olabilir. daha sonraki taahhütlerde bulunur. İlk kaydın ardından, ilk yenileme İlk taahhüt döneminin tamamı tamamlandığında gerçekleştirilir. Sonraki yenilemeler, takip eden her taahhüt dönemi karşılandıktan sonra gerçekleşir. İlgili içeriği oluşturmak için kullanılan Taksitli abonelikler için yenileme türü "aylık otomatik yenilenir" şeklinde olabilir. veya "aynı süre boyunca otomatik olarak yenilenir". "Aylık otomatik yenilenir" için sonraki taahhütlerde (planınızın) her aylık abonelik ücreti bir yenilemedir.
  • Fatura dönemi: Taksitli abonelikler bağlamında bu dönem belirtildiği üzere, tek tek ödemelerin yapıldığı yinelenen aralığa göre teklif stratejisini seçin.
  • Plan değişikliği ve fiyat değişikliği davranışları: Fiyat değişiklikleri ve taahhüt katıdır. Bu, bir kullanıcı bir veya geliştirici fiyatı değiştirmek isterse, değişiklik Taahhüt döneminin bitmesi. Plan değişikliklerine yönelik taahhütler net değildir. Bu, plan değişikliğinin yeni bir planın son gününe kadar beklenmesi gerekmeyeceği anlamına gelir. taahhüt süresi söz konusuysa, derhal veya bir sonraki ödemede yürürlüğe girer. belirlenen değişim moduna göre tarihe göre değişir.
  • Aynı abonelik planı değişikliği: Taksitli temel plandan plan değişikliği aynı abonelik ürününe ait taksitli olmayan bir temel plana izin verilir.
  • Gerçek zamanlı geliştirici bildirimleri (RTDN'ler): A SUBSCRIPTION_CANCELLATION_SCHEDULED RTDN hemen şu tarihte gönderilir: Taahhüt dönemi boyunca ödemeler kaldığında kullanıcı tarafından başlatılan iptal İptal işlemi beklemededir ve yalnızca taahhüt süresidir. Ardından, kullanıcı tarafından geri yüklenmezse SUBSCRIPTION_CANCELED ve SUBSCRIPTION_EXPIRED RTDN, taahhüt süresinin sonunda gönderilir.

  • Ödemeler / Gelir elde etme: Geliştirici ödemeleri, kullanıcılar ödeme yaptıkça gerçekleştirilir. diğer tüm aboneliklerle aynı şartlara tabi olacak şekilde aylık ödemelerini talep eder. Kullanıcı taksit için kaydolduğunda geliştiricilere ön ödeme yapılmaz abonelik.

  • Kaçırılan ödeme tahsilatları: Kullanıcının taksitle ilgili ödeme yapamaması Google ya da Geliştirici, abonelik ödemelerini almaya çalışmayacaktır. kullanıcının bu tür eksik veya bekleyen ödemeleri varsa, Geçerli Ek Dönem içinde düzenli aralıklarla ödeme yapmayı tekrar deneyin veya Ödemelerin normal şekilde yeniden deneme yöntemlerine uygun olarak, Hesabı Askıya Alma süresi. Google, ödenmemiş tutarlar için Geliştirici'ye karşı sorumlu olmayacaktır. taksitli ödemeler.

  • Play Faturalandırma Kitaplığı'nın kullanılabilirliği: installmentDetails alanı yalnızca PBL 7 veya sonraki sürümlerde kullanılabilir. PBL 5 ve sonraki sürümlerde taksit abonelik queryProductDetails() kullanılarak döndürülür ancak abonelik Taahhüt edilen ödeme sayısı gibi ayrıntılı taksit bilgilerini içermez. olabilir.

Kullanıcıların bir aboneliği yönetmesine izin vermek için derin bağlantılar kullanın

Uygulamanız, ayarlar veya tercihler ekranında abonelik yönetimi olanağı bulmalıdır. Bu bilgileri, uygulamanızın doğal bir görünüm ve tarz sağlar.

Uygulamanızdan Google Play aboneliklerine derin bir bağlantı ekleyebilirsiniz süresi dolmamış aboneliklere yönelik bir e-posta alırsınız. Abonelik kaynağının subscriptionState alanı. Buna göre, Play Store'a derin bağlantı oluşturmanın birkaç yolu vardır. Mağaza abonelik merkezi.

Kullanıcıları tüm ilgi alanlarını ve abonelik satın alabilirsiniz:

https://play.google.com/store/account/subscriptions
Play Store abonelikleri ekranında, bir kullanıcının Google Play tarafından faturalandırılan tüm aboneliklerinin durumu gösterilir.
Şekil 1. Play Store abonelikleri ekranında, bir kullanıcının Google Play tarafından faturalandırılan tüm aboneliklerinin durumu gösterilir.


Diğer ayrıntıları görmek için bir aboneliğe dokunun.
Şekil 2. Ek bilgileri görmek için bir aboneliğe dokunun seçin.

Bu derin bağlantı, kullanıcının iptal edilmiş bir aboneliği geri yüklemesi için faydalı olabilir Google Play Store abonelik merkezinden satın alabilirsiniz.

Süresi dolmamış bir aboneliğin yönetim sayfasına doğrudan bağlantı oluşturmak için paket adı ve satın alınan abonelikle ilişkili productId. Alıcı: mevcut bir abonelik için productId programatik olarak belirleyebilir, sorgu uygulamanızın arka ucuna gidin veya liste için BillingClient.queryPurchasesAsync() çağırın bir dizi abonelik seçeneğinden yararlanabilirsiniz. Her abonelikte abonelik durumu bilgilerinin bir parçası olarak ilgili productId. Bir SubscriptionPurchaseLineItem nesne ile abonelik satın alımında productId kullanıcının söz konusu satır öğesinde satın aldığı abonelik.

Kullanıcıları belirli bir abonelik yönetimine yönlendirmek için aşağıdaki URL'yi kullanın "alt-ürün-kimliğiniz" kısmını değiştirin, ve "your-app-package" şununla: Sırasıyla productId ve uygulama paketi adı:

https://play.google.com/store/account/subscriptions?sku=your-sub-product-id&package=your-app-package

Böylece kullanıcı, ödeme yöntemlerini yönetebilir ve özelliklere erişebilir dahil çeşitli konuları ele aldık.

Kullanıcıların aboneliklerini yükseltmesine, düşürmesine veya değiştirmesine izin verme

Mevcut abonelere abonelik ayarlarını değiştirmeleri için çeşitli seçenekler sunabilirsiniz abonelik planı satın alınabiliyor:

  • "Temel" gibi birden fazla abonelik katmanı satıyorsanız ve "premium" kullanıcıların farklı bir katman satın alarak katman değiştirmelerini sağlayabilirsiniz. abonelik planı veya fırsatı anlamına gelir.
  • Kullanıcıların geçerli fatura dönemlerini değiştirmesine (ör. geçiş yapma) izin verebilirsiniz yıllık plana nasıl geçireceğiz.
  • Ayrıca, kullanıcıların otomatik yenilenen ve ön ödemeli planlar arasında geçiş yapmasına izin verebilirsiniz.

Şu kullanıcılara abonelik teklifleri sunarak bu değişikliklerden herhangi birini teşvik edebilirsiniz: Uygun kullanıcılara indirim sunmalıdır. Örneğin, Yeşil Ofis’in Aylık abonelikten yeni aboneliğe geçerken ilk yılda% 50 indirim ve bu teklifi aylık abone olarak sınırlandırın. daha önce alışveriş yapmış olmanız gerekir. Teklif uygunluğu hakkında daha fazla bilgi ölçütleri Yardım Merkezi'nde bulabilirsiniz.

Şekil 3'te üç farklı plan içeren örnek bir uygulama gösterilmektedir:

Bu uygulamanın üç abonelik katmanı var.
Şekil 3. Bu uygulamanın üç abonelik katmanı vardır.

Uygulamanızda şekil 3'e benzer bir ekran görüntülenerek kullanıcılara değiştirme seçeneği sunulabilir daha fazla bilgi edindiniz. Her durumda, kullanıcılar o anda ne yaptıklarını ve bunu değiştirmek için ne gibi seçeneklere sahip oldukları.

Kullanıcılar aboneliklerini yükseltmeye, düşürmeye veya değiştirmeye karar verdiklerinde her bir anahtar kelimenin eşit olarak bölünmüş değerinin nasıl Ücretli mevcut fatura döneminin uygulandığı ve yararlanma hakkı değişikliği gerçekleştiğinde.

Değiştirme modları

Aşağıdaki tabloda mevcut değişim modları ve örnek kullanımlar listelenmiştir. ve ödendi olarak kabul edilen ödemelerin sayısını gösterir.

Değiştirme modu

Açıklama

Örnek kullanım

Taahhüt edilen ödemeler ödendi olarak kaydedilir (Taksitli abonelik değişimi için)

WITH_TIME_PRORATION

Abonelik hemen yükseltilir veya düşürülür. Kalan süre, fiyat farkına göre ayarlanır ve bir sonraki fatura tarihi ileri doğru çekilerek yeni abonelik kredisi verilir. Bu, varsayılan davranıştır.

Hemen ek ödeme yapmadan daha pahalı bir katmana geçin.

0

CHARGE_PRORATED_PRICE

Abonelik hemen yükseltilir ve faturalandırma dönemi aynı kalır. Ardından, kalan dönemdeki fiyat farkı kullanıcıdan tahsil edilir.

Not: Bu seçenek yalnızca abonelik yükseltmesi, burada birim zaman başına fiyatın artar.

Faturalandırma tarihini değiştirmeden daha pahalı bir katmana geçebilirsiniz.

1

CHARGE_FULL_PRICE

Abonelik hemen yükseltilir veya düşürülür ve kullanıcı yeni yararlanma hakkı için hemen tam ücret alınır. Kalan değer veya aynı abonelik için bir sonraki abonelik veya farklı bir yararlanma hakkına geçişte geçen süreye göre eşit olarak bölünmüş şekilde bölünebilir.

Not: Yeni aboneliğin ücretsiz deneme süresi varsa veya tanıtım teklifi kapsamında kullanıcıdan 0 TL veya tanıtım amaçlı satışın fiyatı teklifi (hangisi geçerliyse) yeni sürüme veya alt sürüme geçirme sırasında.

Daha kısa fatura dönemi yerine daha uzun bir fatura dönemi belirleyin.

1 (Not: Yeni aboneliğin ücretsiz deneme süresi varsa 0 değerini alır.)

WITHOUT_PRORATION

Abonelik hemen yükseltilir veya düşürülür ve abonelik yenilendiğinde yeni fiyat üzerinden ücretlendirilir. Faturalandırma dönemi değişmeyecektir.

Aboneliğinizi daha yüksek bir abonelik katmanına yükseltin ve kalan ücretsiz süreyi koruyun.

0

DEFERRED

Abonelik yalnızca abonelik yenilendiğinde yükseltilir veya düşürülür. Ancak yeni satın alma işlemi, yeni yararlanma hakkının başlangıç tarihi ve gelecekteki bir tarihle hemen yayınlanır. Böylece geliştirici, kullanıcıların isterse ek değişiklikler yapmasına izin verebilir. Örneğin, kullanıcılar orijinal plana geri dönebilir veya yeni bir ertelenmiş plan değişikliği başlatabilir. Not: Taksitli aboneliklerde plan değişikliği bir sonraki ödeme tarihinin başında gerçekleşir.

Daha ucuz bir katmana geçin.

1

Google Ads'in farklı upsell ve geri kazanma uygulamaları hakkında teklifleri yükseltmek veya düşürmek için teklifler ve promosyonlar kılavuzunu okuyun.

Satın alma işlemi için değişim modunu ayarlama

Farklı abonelik türleri için farklı değiştirme modları kullanabilirsiniz. geçişleri özelleştirebilirsiniz. Bu bölümde şu konular açıklanmaktadır: Bir abonelikteki değişiklik için değiştirme modu ayarlama ve sınırlamalar .

Aynı abonelikte yeniden abone olma veya plan değiştirme

Google Play Console'da varsayılan bir değiştirme modu belirtebilirsiniz. Bu ayarı, satın alma işlemi gerçekleştiren mevcut abonelerden ne zaman ödeme alınacağını seçmenizi sağlar abonelik için farklı bir temel plan veya teklif sunabilir ya da iptal eder. Kullanılabilen seçenekler Hemen şarj et'tir. Bu seçenekler şuna eşdeğerdir: CHARGE_FULL_PRICE ve Bir sonraki fatura tarihinde ödeme; eşdeğeri WITHOUT_PRORATION. Bu modlar yalnızca aşağıdaki durumlarda Aynı abonelikteki temel planlara geçiş yapma.

Örneğin, aynı plan için geri kazanma teklifi uyguluyorsanız Kullanıcı iptal ederse, ancak abonelik sona ermeden önce yeni satın alma işlemini gerçekleştirebilirsiniz. herhangi bir değer belirtmeden normal bir satın alma işlemi olarak SubscriptionUpdateParams Sistem, kullandığınız varsayılan değiştirme modunu kullanır. abonelikte yapılandırılır ve plan geçişini otomatik olarak gerçekleştirir devam edebilir.

Abonelikler arasında planlar arasında geçiş yapın veya varsayılan değiştirme modunu geçersiz kılın

Kullanıcı abonelik ürünlerini değiştiriyorsa (farklı bir ürün satın alarak) veya herhangi bir öğe için varsayılan değiştirme modunu Bu nedenle, satın alma akışının bir parçası olarak çalışma zamanında kullanılan kullanım oranını belirtirsiniz. parametreleridir.

Çalışma zamanında satın alma işleminizin bir parçası olarak SubscriptionUpdateParams değerini doğru şekilde sağlamak için şu kısıtlamalara dikkat edin:

  • Üst sürüme geçerken, eski sürüme geçerken veya aynı abonelik işlemini yeni bir abonelikle başlatırken Ön ödemeli plan veya otomatik yenilenen plan veya taksitli plan arasından izin verilen değişim modu CHARGE_FULL_PRICE. Başka bir değiştirme modundaysa satın alma işlemi başarısız olur ve kullanıcıya bir hata gösterilir.
  • Aynı abonelikteki planları otomatik yenilenen bir plana geçirdiğinizde Ön ödemeli plan veya otomatik yenilenen plan arasından, geçerli bölüştürme modları CHARGE_FULL_PRICE ve WITHOUT_PRORATION. Başka bir satın alma işlemi başarısız olur ve kullanıcıya bir hata gösterilir.
  • Taksitli yöntemle aynı abonelik ürününde plan değiştirme taksitli olmayan bir temel plana izin verilmez.

Değiştirme örnekleri ve davranışları

Her bir bölüştürme modunun nasıl çalıştığını anlamak için aşağıdaki senaryoyu inceleyin:

Selin, Country Gardener uygulamasından online içerik aboneliği satın alıyor. O İçeriğin Tier 1 sürümüne aylık aboneliği varsa O da yalnızca metin. Bu aboneliğin fiyatı ona aylık 2 ABD dolarıdır ve abonelik yenilenir ayın ilk gününde

Sambil, 15 Nisan'da 2. Katman'ın yıllık sürümüne geçmeyi tercih etti. ve video güncellemelerini içeren yıllık 36 ABD doları olan abonelik.

Geliştirici, aboneliği yeni sürüme geçirirken kullanıma oranlı ödeme modu seçer. İlgili içeriği oluşturmak için kullanılan Aşağıdaki listede her bir kullanıma oranlı ödeme modunun Sambil'in aboneliğini nasıl etkilediği açıklanmaktadır:

WITH_TIME_PRORATION

Sambil'in 1. Katman aboneliği hemen sona eriyor. Çünkü kullanıcı başına aylık (1-30 Nisan) ancak abonelik döneminin ortasında yükseltilmiş. Yeni aboneliğine aylık abonelik (1 ABD doları) uygulanır. Ancak, yıllık 36 dolar olduğunu ve 1 dolarlık kredi bakiyesinin yalnızca 10 dolarlık gün (16-25 Nisan); 26 Nisan'da ise yeni bir abonelik için 36 TL ve 36 ABD doları daha.

Geçerli olduğu anda uygulamanızın PurchasesUpdatedListener numarasını ve bir sonraki satın alma işleminin bir parçası olarak yeni satın alma işlemini daha queryPurchasesAsync() sesli arama. Arka ucunuz hemen bir SUBSCRIPTION_PURCHASED Gerçek Zamanlı Geliştirici Bildirimi.

CHARGE_PRORATED_PRICE

Zaman birimi başına 2. Katman abonelik fiyatı nedeniyle bu mod kullanılabilir. (36 ABD doları/yıl = ayda 3 ABD doları), tek seferde 1. Katman abonelik fiyatından fazladır bir tutar (2 $/ay). Sambil'in 1. Katman aboneliği hemen sona eriyor. Çünkü ilk yarısını ödedi ancak bunun yalnızca yarısını kullandı. Yeni aboneliğine ($1) uygulanır. Ancak bu yeni abonelik kalan 15 günün maliyeti 1, 50 TL; Bu yüzden kendisinden yeni aboneliği için 0,50 dolarlık bir fark. Sambil, 1 Mayıs'ta 36 TL üzerinden ücretlendiriliyor. karşılığında 36 ABD doları daha kazanacak.

Geçerli olduğu anda uygulamanızın PurchasesUpdatedListener numarasını ve satın alma işleminin bir parçası olarak yeni satın alma işlemini queryPurchasesAsync() araması. Arka ucunuz hemen bir SUBSCRIPTION_PURCHASED Gerçek Zamanlı Geliştirici Bildirimi.

WITHOUT_PRORATION

Sambil'in Katman 1 aboneliği, herhangi bir ek abonelik içermeyen Katman 2'ye hemen ek ücret alır ve 1 Mayıs'ta yeni abonelik katmanı için 36 ABD doları 36 ABD doları daha.

Geçerli olduğu anda uygulamanızın PurchasesUpdatedListener numarasını ve satın alma işleminin bir parçası olarak yeni satın alma işlemini queryPurchasesAsync() araması. Arka ucunuz hemen bir SUBSCRIPTION_PURCHASED Gerçek Zamanlı Geliştirici Bildirimi.

DEFERRED

Sambil'in Katman 1 aboneliği, 30 Nisan'da sona erene kadar devam edecek. Mayıs'ta İlkinde 2. Katman aboneliği yürürlüğe girer ve Sambil'in abonelik için 36 ABD doları yeni bir üyelik katmanı oluşturdu.

Geçerli olduğu anda uygulamanızın PurchasesUpdatedListener numarasını ve satın alma işleminin bir parçası olarak yeni satın alma işlemini queryPurchasesAsync() araması. Arka ucunuz hemen bir SUBSCRIPTION_PURCHASED Gerçek Zamanlı Geliştirici Bildirimi. Şunları yapmalısınız: Diğer yeni satın alma işlemlerinizde olduğu gibi satın alma işlemini uygulayın. mesela. Özellikle, yeni satın alma işlemini onayladığınızdan emin olun. Not yeni aboneliğin startTime için belirlenen fiyat yani değişimin etkin olduğu andan itibaren aboneliğin süresi doluyor. Bu noktada, bir SUBSCRIPTION_RENEWED alırsınız. Yeni abonelik planı için RTDN. Şu konu hakkında daha fazla bilgi edinin: Şu sürede ReplacementMode.DEFERRED davranışı: Ertelenen değişim işlemlerini ele alma.

CHARGE_FULL_PRICE

Sambil'in 1. Katman aboneliği hemen sona eriyor. 2. Katman aboneliği bugün başlıyor ve 36 TL tutarında ücretlendiriliyor. Çünkü bir ayın tamamı için ödeme yaptı ama yarısını kullanmaya devam edecek. Aylık aboneliğin (1$) yarısı, abonelik. Yeni aboneliğin fiyatı yıllık 36 dolar olduğu için abonelik dönemine (yaklaşık 10 gün) bir yıl eklenir. Bu nedenle, Sambilin alınacak bir sonraki ödeme bugünden itibaren 1 yıl 10 gün sonra 36 TL olacaktır. Daha sonra, her yıl 36 $ücret tahsil ediyor.

Kullanabileceğiniz dağıtım modunu seçerken, değişiklik önerilerini incelemesini sağlar.

Abonelik değişikliklerini uygulama içinde tetikleyin

Uygulamanız, aşağıdaki adımları uygulayarak yükseltme veya düşürme seçeneği sunabilir: satın alma süreci başlatma. Ancak yeni veya eski sürüme geçerken mevcut abonelik, gelecek (yeni sürüme geçirilmiş veya (düşürülmüş) aboneliği ve kullanılacak değiştirme modu, şu örneği inceleyin:

Kotlin

val offerToken = productDetails
        .getSubscriptionOfferDetails(selectedOfferIndex)
        .getOfferToken()

val billingParams = BillingFlowParams.newBuilder().setProductDetailsParamsList(
       listOf(
           BillingFlowParams.ProductDetailsParams.newBuilder()
               .setProductDetails(productDetails)
               .setOfferToken(offerToken)
               .build()
       )
       ).setSubscriptionUpdateParams(
           BillingFlowParams.SubscriptionUpdateParams.newBuilder()
               .setOldPurchaseToken("old_purchase_token")
               .setSubscriptionReplacementMode(
                 BillingFlowParams.ReplacementMode.CHARGE_FULL_PRICE
               )
               .build()
       ).build()

billingClient.launchBillingFlow(
    activity,
    billingParams
   )
// ...

Java

String offerToken = productDetails
    .getSubscriptionOfferDetails(selectedOfferIndex)
    .getOfferToken();

BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder()
    .setProductDetailsParamsList(
        ImmuableList.of(
            ProductDetailsParams.newBuilder()
                // fetched via queryProductDetailsAsync
                .setProductDetails(productDetails)
                // offerToken can be found in
                // ProductDetails=>SubscriptionOfferDetails
                .setOfferToken(offerToken)
                .build()))
    .setSubscriptionUpdateParams(
        SubscriptionUpdateParams.newBuilder()
            // purchaseToken can be found in Purchase#getPurchaseToken
            .setOldPurchaseToken("old_purchase_token")
            .setSubscriptionReplacementMode(ReplacementMode.CHARGE_FULL_PRICE)
            .build())
    .build();

BillingResult billingResult = billingClient.launchBillingFlow(activity, billingFlowParams);
// ...

Değiştirme önerileri

Aşağıdaki tabloda, satın alma işlemi yaparken her senaryo için öneriyorum:

Senaryo Önerilen değiştirme modu Sonuç
Daha pahalı bir katmana geçme CHARGE_PRORATED_PRICE Kullanıcı, aynı faturalandırmayı koruyarak anında erişim elde eder geçerlidir.
Daha ucuz bir katmana geçme DEFERRED Kullanıcı daha pahalı olan katman için zaten ödeme yaptığından bir sonraki fatura tarihine kadar erişebilirsiniz.
Ücretsiz deneme süresindeyken deneme sürümünü kaybetmeden yükseltme WITHOUT_PRORATION Kullanıcı ücretsiz deneme erişimine sahip olmaya devam eder ancak geri kalan süre boyunca kullanılabilir.
Ücretsiz deneme süresindeyken üst sürüme geçme - ücretsiz deneme erişimini sona erdirme CHARGE_PRORATED_PRICE Kullanıcı yeni katmana hemen erişim elde eder ancak artık erişemez. ücretsiz deneme olanağı sunuluyor.

Abonelik değişikliği satın alma işlemlerini yönetme

Plan değişiklikleri, tüm şartlar ve amaçlara yönelik yeni satın alma işlemleridir ve faturalandırma akışı tamamlandıktan sonra bu şekilde işlenip onaylandıktan sonra bahsettik. Yeni satın alma işlemini uygun şekilde işlemenin yanı sıra, değiştirilmesi gereken satın alma işlemini iptal etmeniz gerekir.

Uygulama içi davranış, yeni satın alma işlemleriyle aynıdır. Uygulamanız PurchasesUpdatedListener hesabınızdaki yeni satın alma işleminin sonucu ve queryPurchasesAsync bölgesinde yeni satın alma işlemi mevcut.

Google Play Geliştirici API’silinkedPurchaseToken Satın alma işlemi, mevcut bir içeriğin yerini aldığında abonelik kaynağı bir. Aşağıdaki işlemler için linkedPurchaseToken içinde sağlanan jetonu geçersiz kılmayı unutmayın. Hizmetlerinize erişmek için eski jetonun kullanılmadığından emin olun. Görüntüleyin Yeni sürüme geçişle ilgili bilgi için yükseltme, düşürme ve yeniden kaydolma işlemleri satın alma işlemlerini yapabilirsiniz.

Yeni satın alma jetonunu aldığınızda yeni bir satın alma jetonunu doğrulama Şunları kabul ettiğinizden emin olun: Google Play'den BillingClient.acknowledgePurchase() ile yapılan satın alma işlemleri Faturalandırma Kitaplığı veya şu kaynaktan Purchases.subscriptions:acknowledge: Google Play Geliştirici API'si.

Ertelenen değişim işlemini ele alma

Ertelenen değişim modu, kullanıcının en az 24 saat sürer.

Yeni bir satın alma işlemi için SwapmentMode.DEFERRED işlevini kullandığınızda queryPurchasesAsync(), satın alma işleminden sonra yeni bir satın alma jetonu döndürür. ertelenen değişime kadar eski ürünle ilişkili kalan akış bir sonraki yenileme tarihinde gerçekleşir. Sonraki yenileme tarihinden sonra geri döndü.

Geçmişte bu kullanıcı deneyimini, desteği sonlandırılan ProrationMode.DEFERRED ancak ProrationMode.DEFERRED için Play ile ilgili destek sonlandırıldı Faturalandırma Kitaplığı 6. Davranışın nerede gerçekleştiğini anlamak için aşağıdaki tabloya bakın farklılık gösterir:

Süre

ProrationMode.DEFERRED (desteği sonlandırılmış)

DeğiştirmeModu.DEFERRED

Satın alma akışı başarılı olduktan hemen sonra (uygulama)

PurchasesUpdatedListener, satın alma işleminden sonra çağrılır ve yükseltmenin mi yoksa düşürmenin mi başarılı olduğu belirtilir.

Eski plandan yararlanma hakkı, bir sonraki yenileme tarihine kadar devam eder. Uygulamanın doğru yararlanma hakkı sağladığından emin olmak için queryPurchasesAsync(), değiştirme işlemi tamamlanana kadar orijinal satın alma jetonu ve orijinal yararlanma hakkına sahip bir Satın Alma nesnesini döndürür.

Yeni satın alma jetonu gösterilmediği için şu anda işlenemiyor.

PurchasesUpdatedListener, satın alma işleminden sonra çağrılır ve yükseltmenin mi yoksa düşürmenin mi başarılı olduğu belirtilir.

queryPurchasesAsync(), satın alma işlemini yeni satın alma jetonu ve bununla ilişkili orijinal yararlanma hakkını hemen iade eder.

Yeni satın alma jetonu gösterildiğinden, değişimin ne zaman gerçekleşeceği dikkate alınarak bu noktada işlenmesi gerekir.

Satın alma akışı başarılı olduktan hemen sonra (arka uç)

SUBSCRIPTION_PURCHASED RTDN, satın alma akışından sonra gönderilmez. Arka uç yeni satın alma işleminden henüz haberdar edilmedi.

Eski product_id içeren SUBSCRIPTION_PURCHASED RTDN, yeni satın alma jetonu için satın alma akışından hemen sonra gönderilir.

Yeni satın alma jetonuyla purchases.subscriptionsv2.get yönteminin çağrılması, "startTime" öğesine sahip bir satın alma işlemini döndürür. iki satır öğesiyle satın alma zamanını belirtir:

  • Biri eski yararlanma hakkını temsil eder ve bir "expiryTime" değerine sahiptir daha avantajlı bir konumda olursunuz. Eski yararlanma hakkı yenilenmez ve yeni yararlanma hakkına sahip ürünü içeren bir DefferItemSwapment alan adına sahiptir. Bu, eski yararlanma hakkının süresi dolduktan sonra beklemede olan bir değişiklik olacağını gösterir.
  • Yeni satın alınan yararlanma hakkını temsil eden bir bölüm. "expiryTime" için ayarlanmış bir değere sahip değil.

Eski satın alma jetonu için SUBSCRIPTION_EXPIRED gönderildi. purchases.subscriptionsv2.get yöntemi eski satın alma jetonuyla çağrıldığında, jetonun süresi dolmuş olarak görünür (eski planın yararlanma hakkı, kalan süre için yeni satın alma işlemine aktarılır).

Değişim işleminde - satın alma akışından sonraki ilk yenileme (uygulama)

queryPurchasesAsync(), yeni satın alma jetonu ve yararlanma hakkına sahip yeni bir Satın Alma nesnesi döndürür.

Yeni satın alma jetonu şu anda kullanıma sunulduğu için işlenmesi gerekir.

queryPurchasesAsync(), satın alma işlemini yeni satın alma jetonu ve bununla ilişkili yeni yararlanma hakkı ile hemen iade eder.

Yeni satın alma işlemi, satın alma akışı başarılı olduğunda zaten işlenmiş olmalıdır. Bu nedenle, uygulamanın, doğru yararlanma hakkının verildiğinden emin olmak dışında özel bir işlem yapmaması gerekir.

Değişim işleminde - satın alma sürecinden sonraki ilk yenileme (arka uç)

Yeni satın alma işlemi artık ilk SUBSCRIPTION_RENEWED RTDN gönderildiğinde işleme alınabilir ve onaylanabilir.

Abonelik kaynağındaki linkedPurchaseToken, abonelik arka ucunuzda hangi kullanıcının (varsa) yeni yararlanma hakkıyla güncellenmesi gerektiğini belirlemek için kullanılabilir.

Yeni satın alma jetonu için SUBSCRIPTION_PURCHASED RTDN gönderildiğinde ve "startTime" olarak kaydedildiğinde yeni satın alma işlenmiş ve onaylanmıştır.

Değiştir

Yeni satın alma jetonuyla purchases.subscriptionsv2.get yöntemi çağrıldığında, iki satır öğesi içeren bir satın alma işlemi döndürülür:

  • old (eski) yararlanma hakkını temsil eden bir değer, "expiryTime" geçmişte kalmış ve DeestimatedItemSwap için ayarlanmış bir değer bulunmuyor.
  • Birincisi, yeni yararlanma hakkını temsil eder. Bir "expiryTime" gelecektedir ve auto_renewing_enabled işareti etkin haldedir.

Değiştirilmiş mod.DEFERRED, artık ProrationMode.DEFERRED (yararlanma hakkı ile ilgili olarak aynı davranışı sunduğu için) ancak satın alma sürecini müşteriyle daha tutarlı bir şekilde yönetmenizi sağlayacak davranışlarını görebilirsiniz.

Müşteri yönetimi

Gerçek zamanlı geliştirici bildirimlerini kullanarak, karar verdiğinden emin olun. Kullanıcı aboneliğinden önce iptal ettiğinde süresi dolduysa, kendilerine push bildirimleri veya uygulama içi mesajlar göndererek yeniden abone olmalarını sağlayabilirsiniz.

Aboneliklerini iptal eden kullanıcıları geri kazanmayı deneyebilirsiniz veya Play Store üzerinden yapabilirsiniz. Aşağıdaki tabloda çeşitli abonelik senaryolarıyla ilgili geri kazanma işlemleri ve uygulama gereksinimleri.

Abonelik süresi dolmadan önce Abonelik sona erdikten sonra
Uygulama içi Play Store'da Uygulama içi Play Store'da
Geri kazanma özelliği Uygulama içi abonelik Geri yükle Uygulama içi abonelik Yeniden abone olun
Kullanıcı ödeme akışını tamamlar Evet Hayır Evet Evet
Kullanıcı aboneliği aynı SKU ile ilişkili kalmaya devam ediyor Kullanıcı aynı veya farklı bir SKU'ya kaydolabilir Evet Kullanıcı aynı veya farklı bir SKU'ya kaydolabilir Evet
Yeni satın alma jetonu oluşturur Evet Hayır Evet Evet
Varsayılan olarak etkindir Hayır Evet, tüm geliştiriciler için destek gerekiyor Hayır

Faturalandırma Kitaplığı 2.0+ bulunmayan uygulamalar: Hayır

Faturalandırma Kitaplığı 2.0+ sürümüne sahip uygulamalar: Evet. Geliştiriciler, Play Console'da bu özelliği devre dışı bırakabilir.

Kullanıcıdan ödeme ne zaman alınır?

Aynı SKU'yu kullanıyorsanız: Geçerli fatura döneminin sonu.

Farklı SKU kullanıyorsanız: bölüştürme moduna bağlıdır.

Geçerli fatura döneminin sonu Hemen Hemen
Uygulama gerekiyor Sağlama uygulamanızda yeniden kaydolma kullanıcı arayüzü

Abonelik durumundaki değişikliği algılama

Play Store ile derin bağlantı

Uygulamanızda yeniden kaydolma kullanıcı arayüzü sağlama Uygulama dışı satın alma işlemlerini yönetme

Abonelik süresi dolmadan önce - uygulama içi

İptal edilmiş ancak henüz süresi dolmamış aboneliklerde şunları yapabilirsiniz: abonelerin aboneliklerini geri yüklemelerine olanak tanımak için yeni aboneler için geçerlidir. Kullanıcı arayüzünüzü kullanıcının mevcut bir aboneliğinin olduğunu gösterir. Örneğin, eğitime kullanıcının geçerli son kullanma tarihini ve yinelenen fiyatı Yeniden etkinleştir düğmesi.

Çoğu zaman, kullanıcıya onunla aynı fiyatı ve SKU'yu sunmak istersiniz. , şu şekilde zaten abone olmuş:

  • Aynı SKU ile yeni bir abonelik satın alma işlemi başlatın.
  • Yeni abonelik, eski aboneliğin yerini alır ve aynı son kullanma tarihinde yenilenir tarihi. Eski abonelik hemen süresi doldu olarak işaretlenir.
  • Örneğin, Aşil'in Örnek Müzik Uygulaması'na bir aboneliği vardır ve aboneliğin süresi 1 Ağustos'ta sona erecek. 10 Temmuz'da şu kanala yeniden abone oluyor: Her ay aynı fiyattan sunulan bir aylık abonelik. Yeni abonelik kalan krediyle eşit olarak dağıtılır, hemen etkinleştirilir ve 1 Ağustos'ta yenilenir.

Farklı bir fiyat sunmak istiyorsanız (örneğin, yeni bir ücretsiz deneme veya geri kazanma indirimi. Bunun yerine kullanıcıya farklı bir SKU sunabilirsiniz:

  • Farklı bir SKU ile yükseltme veya düşürme işlemi başlatın WITHOUT_PRORATION değişim modunu kullanın.
  • Yeni abonelik, eski aboneliğin yerini alır ve aynı son kullanma tarihinde yenilenir tarihi. Kullanıcıdan yeni SKU'nun fiyatı alınır. Bu ücret şunları içerir: ilk son kullanma tarihinde geçerli olan tanıtım fiyatlarına tabidir. Eski abonelik kodu karartılmış bir hesap kimliği kullanılarak oluşturulmuşsa aynı kimlik iletilmelidir. Sürüm yükseltme ve düşürme işlemleri için BillingFlowParams.
  • Örneğin, Aşil'in Örnek Müzik Uygulaması'na bir aboneliği vardır ve aboneliğin süresi 1 Ağustos'ta sona erecek. 10 Temmuz'da şu kanala yeniden abone oluyor: Tanıtım fiyatlı yıllık abonelik. Yeni abonelik hemen etkinleştirilir ve kullanıcıdan şu tarihte tanıtım fiyatı alınır: 1 Ağustos.
  • Geri kazanma SKU'nuza ücretsiz deneme veya tanıtım fiyatı eklemeye karar verirseniz Kullanıcının uygun olduğundan emin olmak için Google Play Console'daki Uygulama başına bir ücretsiz denemeye izin ver kutusunu işaretleyin. Kullanıcı, uygulama başına bir ücretsiz deneme süresiyle kısıtlanır.

Satın alma jetonunu aldığınızda satın alma işlemini sizin gibi yeni bir abonelik için gerek vardır. Ayrıca, Google Play Geliştirici API'si abonelik kaynağında bir linkedPurchaseToken döndürür. Şunları yaptığınızdan emin olun: sağlanan jetonu geçersiz kıl linkedPurchaseToken kontrol etmek için eski jetonun hizmetlerinize erişebilirler.

Abonelik süresi dolmadan önce: Play Store'da

Abonelik iptal edilmiş ancak hâlâ etkin durumdayken kullanıcılar abonelik simgesini tıklayarak Google Play abonelik merkezinde Yeniden abone olma (eski adıyla Geri yükleme). Abonelik aynı kalır ve satın alma jetonu.

Google Play Store uygulamasındaki abonelikler bölümünde bir
            Yeniden abone ol düğmesiyle aboneliğin iptal edilmesi
Şekil 8. Hesap > Abonelikler bölümü Google Play Store uygulamasında gösterilen, satın alınmış bir aboneliği Yeniden abone ol düğmesi.

Abonelikleri geri yükleme hakkında daha fazla bilgi edinmek için Geri yükleme işlemleri'ne bakın.

Abonelik süresi sona erdikten sonra - uygulama içi

Süresi dolan abonelerin uygulamanızda yeniden abone olmalarına izin vermek için yeni aboneler için geçerlidir. Not: takip etmek için:

  • Kullanıcılara indirim sunmak isterseniz aboneliğiniz için özel fiyatlandırmadır. Buna geri kazanma SKU'su da denir. Teklifi uygulamanızda sağlayabilir veya kullanıcıyı bilgilendirebilirsiniz. (ör. e-postada) uygulama dışında da teklifte bulunabiliriz.
  • Geri kazanma aboneliği başlatmak için şu hesabınızda satın alma akışını başlatın: Google Play Faturalandırma Kitaplığı'nı kullanan Android uygulaması. Bu aynı bu işlemi yalnızca yeni bir abonelikteki gibidir, ancak SKU'yu tüm öğeleri kullanabilirsiniz.
  • Geri kazanma kazancınıza ücretsiz deneme veya tanıtım fiyatı eklemeye karar verirseniz SKU'yu kullanıyorsanız Google Play Console'daki Uygulama başına bir ücretsiz denemeye izin ver kutusunu işaretleyin. Kullanıcı, uygulama başına bir ücretsiz deneme süresiyle kısıtlanır.
  • Kullanıcı aynı SKU'ya yeniden abone olursa artık uygun olmaz ücretsiz denemeler veya tanıtım fiyatından yararlanın. Kullanıcı arayüzünüzün bunu yansıttığından emin olun.

Satın alma jetonunu aldığınızda satın alma işlemini sizin gibi yeni bir abonelik için gerek vardır. linkedPurchaseToken almayacaksınız inceleyebilirsiniz.

Abonelik süresi sona erdikten sonra - Play Store'da

Politika etkinleştirilirse kullanıcılar, sonrasında aynı SKU'ya bir yıla kadar yeniden abone olabilir. Google Play aboneliklerinde Yeniden abone ol'u tıklayarak süre sonu yardım etmek istiyorum. Bu işlemle yeni bir abonelik ve satın alma jetonu oluşturulur.

Google Play Store uygulamasındaki abonelikler bölümünde bir
            Abonelik iptal edildi ve süresi doldu; yeniden abone ol ve aboneliği kaldır
            düğmeler
Şekil 9. Hesap > Abonelikler Google Play Store uygulamasında iptal edilmiş ve süresi dolmuş bir Yeniden abone ol ve Kaldır seçeneklerini kullanarak abonelikten yararlanabilirsiniz. düğmelerini kullanın.

Yeniden abone olmak, uygulama dışı bir satın alma işlemi olarak kabul edilir. Bu nedenle, en iyi uygulamaları izleyerek uygulamanızın dışından yapılan satın alma işlemlerini işleme.

Aboneliğinizi tanıtma

Seçilen kullanıcılara daha uzun ücretsiz deneme süresi sunmak için promosyon kodları oluşturabilirsiniz mevcut bir aboneliğe Daha fazla bilgi edinmek için bkz. Promosyon kodları.

Google Play, ücretsiz denemelerde kullanıcının geçerli bir ödeme yöntemine sahip olduğunu doğrular kontrol edin. Bazı kullanıcılar bu doğrulamayı görebilir ödeme yöntemi olarak bloke etme veya ödeme alma. Bu provizyon veya ödeme ve daha sonra geri alınır ya da geri ödenir.

Deneme süresi sona erdikten sonra, kullanıcının ödeme yönteminden şunun için ödeme alınır: tam abonelik tutarını ödemeniz gerekebilir.

Bir kullanıcı ücretsiz deneme süresi boyunca herhangi bir zamanda aboneliğini iptal ederse, Abonelik, deneme süresinin sonuna kadar etkin durumda kalır ve henüz ücretsiz deneme süresi sona erdiğinde ücretlendirilir.

İptal etme, geri ödeme yapma veya iptal etme

URL parametrelerinin Google tarafından nasıl ele alınmasını istediğinizi belirtmek için Google Play Geliştirici API'si - iptal, refund, veya iptal et abonelik. Bu işlev, Google Play Console.

  • İptal: Kullanıcılar Google Play'de abonelikleri iptal edebilirler. Ayrıca transkriptinizi Kullanıcılara uygulamanızda veya web sitenizde iptal etme seçeneği sunmak Sizin uygulamasının bu iptalleri şurada açıklandığı şekilde işlemesi gerekir: İptaller.
  • Geri ödeme: Geri ödeme yaptığınızda kullanıcı aboneliği kullanmaya devam edebilir. Geri ödemeler, örneğin, teknik bir hata oluştuğunda kullanılabilir. kullanıcının ürününüze erişmesini engelledi ancak hata çözüme ulaştırıldı. En son ödemeden daha fazla tutarda geri ödeme yapmanız veya kısmi geri ödeme yapmak istiyorsanız Google Play Console'u kullanmanız gerekir.
  • İptal et: İptal ettiğinizde kullanıcı abonelik. Bu, örneğin teknik bir sorunla ilgili, kullanıcının ürününüze erişmesini engelleyen bir hata ve kullanıcının ürünü kullanmaya devam etmek istemiyor. Uygulamanız bunları işlemeli aşağıda açıklandığı şekilde iptaller İptaller.

Aşağıdaki tabloda iptal, geri ödeme ve iptal eder.

Yenilemeyi durdurur Para geri ödeme Erişimi iptal et
İptal Evet Hayır Hayır
Geri ödeme Hayır Evet Hayır
İptal et Evet Evet Evet

Abonelerin faturalandırmayı erteleme

Otomatik yenilenen abonelerin bir sonraki fatura tarihinden önce şu seçeneği kullanabilirsiniz: Purchases.subscriptions:defer Google Play Geliştirici API'sinden alın. Erteleme döneminde kullanıcı tam erişimle içeriğinize abone olur ancak sizden ödeme alınmaz. İlgili içeriği oluşturmak için kullanılan Abonelik yenileme tarihi, yeni tarihi yansıtacak şekilde güncellenir.

Ön ödemeli planlarda son kullanma tarihini ertelemek için erteleme API'sini kullanabilirsiniz gerekir.

Ertelenen faturalandırma ile şunları yapabilirsiniz:

  • Kullanıcılara özel bir teklif olarak ücretsiz erişim sunun; örneğin, film satın alma konusunda daha fazla bilgi edinin.
  • İyi niyetinizi göstermek amacıyla müşterilere ücretsiz erişim vermek.

Faturalandırma bir gün kadar kısa bir süre ve bir yıl kadar ertelenebilir sayısını artırır. Faturalandırmayı daha da ertelemek için API'yi yeniden çağırabilirsiniz yeni fatura tarihi gelmeden önce gönderin.

Örneğin, Darcy'nin her ay çevrimiçi içerik için aylık bir aboneliği vardır. Fishing Quarterly uygulaması. Normalde her ayın ilk gününde 1,25 İngiliz sterlini fatura ay. Mart ayında uygulama yayıncısı için online bir ankete katıldı. Yayıncı bir sonraki ödemeyi erteleyerek Merve'yi altı hafta ücretsiz olarak ödüllendirir 15 Mayıs'a kadar, yani daha önce planlanan fatura tarihinden altı hafta sonra anlamına gelir. Darcy, Nisan veya Mayıs başı için ücretlendirilmez. içeriğe erişimi vardır. 15 Mayıs'ta kendisinden normal şartlarda 1, 25 İngiliz sterlini tutarında ödeme alınır aylık abonelik ücreti. Bir sonraki yenileme tarihi 15 Haziran.

Ertelerken, kullanıcıyı e-postayla veya uygulama içinden bilgilendirmek isteyebilirsiniz göndererek fatura tarihinin değiştiğini bildirin.

Reddedilen ödeme işlemlerini ele alma

Abonelik yenilemeyle ilgili ödeme sorunları olursa Google İptal etmeden önce belirli aralıklarla aboneliği yenilemeyi denemelidir. Kurtarma süresi, ek süre tanınabilir ve bu süre içinde hesap askıya alınabilir. geçerlidir. Google bu süre boyunca kullanıcıya e-posta ve bildirimler gönderir. ödeme yöntemini güncellemelerini isteyebilir.

Ödeme reddedildiğinde abonelik için ek süre verilir. süre yapılandırıldı. Ek süre boyunca kullanıcının hâlâ erişime sahip olduğundan emin olmanız gerekir. abonelikten yararlanma hakkına sahip olursunuz.

Ek süre sona erdiğinde abonelik, yeni bir hesap bekletme süresi. Etkinlik sırasında kullanıcının abonelikten yararlanma hakları.

Otomatik yenilenen temel planların ek sürelerinin uzunluğunu belirleyebilir ve Google Play Console'da askıya alınmış hesaplar. Şundan daha kısa uzunluklar belirtmek: varsayılan değerler, ödemeden kurtarılan abonelik sayısını azaltabilir reddedilir.

Ödemenin reddedilmesi sırasında abonelikten çıkma olasılığını en üst düzeye çıkarmak için: Kullanıcınızı ödeme sorunu konusunda bilgilendirip sorunu düzeltmesini isteyebilirsiniz.

Bu işlemi, ek süre içinde açıklandığı şekilde kendiniz de yapabilirsiniz. süre ve hesabı askıya alma veya Google'ın kullanıcılara göstermek için kullandığı uygulama içi mesajlaşma API'sini kullanıcılara bir mesaj gönderin.

Uygulama içi mesajlaşma

Uygulama içi mesajlaşmayı InAppMessageCategoryId.TRANSACTIONAL Google Play, kullanıcılara ek süre boyunca mesaj gönderip hesaplarını bir kez askıya alır ödemelerini düzeltme fırsatı sunuyor.

Kullanıcıya ödemesini düzeltmesi gerektiğini bildiren Snackbar
Şekil 20. Snackbar, kullanıcıya ödemesini düzeltmesi gerektiğini bildiriyor.

Kullanıcı uygulamayı her açtığı zaman bu API'nin, mesajının gösterilip gösterilmeyeceğini belirler.

Kullanıcı, aboneliğini başarıyla kurtarırsa şu yanıt kodunu alırsınız: SUBSCRIPTION_STATUS_UPDATED bir satın alma jetonuyla birlikte ekleyebilirsiniz. Ardından, Google Play Developer API'ye gidip uygulamanızda abonelik durumunu yenileyin.

Uygulama içi mesajlaşmayı entegre edin

Kullanıcıya uygulama içi mesajlaşmayı göstermek için şunu kullanın: BillingClient.showInAppMessages().

Uygulama içi mesajlaşma akışını tetiklemeye ilişkin bir örneği burada görebilirsiniz:

Kotlin

val inAppMessageParams = InAppMessageParams.newBuilder()
        .addInAppMessageCategoryToShow(InAppMessageCategoryId.TRANSACTIONAL)
        .build()

billingClient.showInAppMessages(activity,
        inAppMessageParams,
        object : InAppMessageResponseListener() {
            override fun onInAppMessageResponse(inAppMessageResult: InAppMessageResult) {
                if (inAppMessageResult.responseCode == InAppMessageResponseCode.NO_ACTION_NEEDED) {
                    // The flow has finished and there is no action needed from developers.
                } else if (inAppMessageResult.responseCode
                        == InAppMessageResponseCode.SUBSCRIPTION_STATUS_UPDATED) {
                    // The subscription status changed. For example, a subscription
                    // has been recovered from a suspend state. Developers should
                    // expect the purchase token to be returned with this response
                    // code and use the purchase token with the Google Play
                    // Developer API.
                }
            }
        })

Java

InAppMessageParams inAppMessageParams = InAppMessageParams.newBuilder()
        .addInAppMessageCategoryToShow(InAppMessageCategoryId.TRANSACTIONAL)
        .build();

billingClient.showInAppMessages(activity,
        inAppMessageParams,
        new InAppMessageResponseListener() {
            @Override
            public void onInAppMessageResponse(InAppMessageResult inAppMessageResult) {
                if (inAppMessageResult.responseCode
                        == InAppMessageResponseCode.NO_ACTION_NEEDED) {
                    // The flow has finished and there is no action needed from developers.
                } else if (inAppMessageResult.responseCode
                        == InAppMessageResponseCode.SUBSCRIPTION_STATUS_UPDATED) {
                    // The subscription status changed. For example, a subscription
                    // has been recovered from a suspend state. Developers should
                    // expect the purchase token to be returned with this response
                    // code and use the purchase token with the Google Play
                    // Developer API.
                }
            }
        });

Bekleyen abonelik işlemlerini yönetme

Bekleyen işlemler; ilk satın alma, para ekleme, yükseltme veya eski sürüme geçemez. Abonelik satın alma işlemi Geçişten önce SUBSCRIPTION_STATE_PENDING durumu SUBSCRIPTION_STATE_ACTIVE. İşlemin süresi dolarsa veya SUBSCRIPTION_STATE_PENDING_PURCHASE_EXPIRED adresine gider. Şunu yapmalısınız: ve kullanıcının yararlanma hakkını yalnızca, tamamlandı.

Bekleyen işlemleri olan ilk satın alma işlemi için abonelik durumu değişikliği: basittir. Aşağıdaki durumlarda uygulamanız PENDING durumlu bir Purchase alır: Kullanıcı beklemedeki bir işlem başlatır. İşlem tamamlandığında Uygulama, Purchase değerini tekrar alır ve durum PURCHASED olarak güncellenir. CEVAP SUBSCRIPTION_PURCHASED türünde SubscriptionNotification mesaj gönderildi RTDN istemcinize gönderebilirsiniz. Satın alma işlemini doğrulamak için normal süreci takip edin, Kullanıcı içeriğe erişebilir ve satın alma işlemini onaylayabilir. İşlem süresi doluyor veya iptal edildi, türünde bir SubscriptionNotification mesaj SUBSCRIPTION_PENDING_PURCHASE_CANCELED, RTDN istemcinize gönderildi. Böyle bir durumda söz konusu durumlarda, kullanıcı içeriğe hiçbir zaman erişememelidir.

Bekleyen işlemlerle para ekleme, yükseltme veya düşürme işlemleri durum değişiklikleri içeriyor hem eski hem de yeni abonelikler için geçerlidir. Kullanıcı, beklemede olan bir para ekleme, yükseltme veya düşürme işlemi için Purchase alır. PendingPurchaseUpdate nesnesini içeren eski aboneliği iptal et. Şu anda Kullanıcı hâlâ eski aboneliğe sahip ve yeni aboneliği kazanmadıysa aboneliği satın aldınız. getProducts() ve getPurchaseToken() adlı kişiye şu saatte sesli arama yapılıyor: PendingPurchaseUpdate nesnesi, şunun ürün kimliklerini ve satın alma jetonunu döndürür: yeni abonelik var. İşlem tamamlandığında uygulamanız Yeni abonelik için üst düzey satın alma jetonu ayarlanmış Purchase ve durum PURCHASED olarak ayarlandı. Türü olarak bir SubscriptionNotification mesajı SUBSCRIPTION_PURCHASED, RTDN istemcinize gönderildi. Ancak şu anda eski satın alma jetonunu yeni satın alma jetonuyla değiştirmeli ve Kullanıcının içeriğe erişimidir. İşlemin süresi dolarsa veya iptal edilirse Türü şu olan SubscriptionNotification mesaj: SUBSCRIPTION_PENDING_PURCHASE_CANCELED, RTDN istemcinize gönderildi. Böyle bir durumda Bu durumda, kullanıcı eski aboneliğin içeriğine hâlâ erişebiliyor olmalıdır.