Kullanıcılarınız için uygulama içi ürünlerin ve avantajların kilidini açmanın bir yöntemi de ödüllü ürünler oluşturmaktır. Bu ürünler, kullanıcıların bir video reklam izledikten sonra aldığı öğelerdir. Ödüllü ürünler sunarak kullanıcıların doğrudan satın alma işlemi yapmadan uygulama içi ödüller ve avantajlar elde etmesine olanak tanırsınız.
Bu belgede, ödül ürünlere özgü işlevlerin nasıl uygulanacağı açıklanmaktadır. Bu sayfanın iş akışı şeması bölümünde bu süreç gösterilmektedir.
Uygulamanızın ödüllü ürünlerini belirleme
Ödüllü ürünlerin SkuType oranı INAPP.
Kullanıcıların birden fazla reklam izleyip birden fazla ödül kazanabilmesi için ürünlerin kullanılması gerekir.
Bir kullanıcıya ödül ürün sunabilmeniz için ürünle ilgili SkuDetails almanız gerekir. Bunu yapmak için querySkuDetailsAsync() işlevini SkuType.INAPP ürün türüyle birlikte çağırın.
Yaşa uygun reklamlar bildirme
Çocuklar ve reşit olmayan kullanıcılarla ilgili yasal yükümlülüklere (ör. Çocukların Çevrimiçi Gizliliğini Koruma Yasası (COPPA) ve Genel Veri Koruma Yönetmeliği (GDPR)) uyumu kolaylaştırmak için uygulamanız, ABD'de hangi reklamların çocuklara yönelik olarak değerlendirilmesi gerektiğini ve hangi reklamların kendi ülkelerindeki geçerli rıza yaşına ulaşmamış kullanıcılara yönelik olduğunu bildirmelidir. AdMob Yardım Merkezi'nde, reklam isteklerinizi ne zaman çocuklara yönelik olarak değerlendirilme ve ne zaman reşit olma yaşının altındaki kullanıcılara yönelik olarak değerlendirilme için etiketlemeniz gerektiği ve bunun etkileri açıklanmaktadır.
Uygulamanızın faturalandırma istemcisini oluştururken ödüllü reklam isteklerinin çocuklara yönelik olarak mı değerlendirilmesi gerektiğini yoksa reşit olma yaşının altındaki kullanıcılara mı yönlendirilmesi gerektiğini göz önünde bulundurun. Reklam isteklerinde bu kısıtlamalar uygulanması gerekiyorsa setChildDirected() ve setUnderAgeOfConsent() yöntemlerini çağırarak her yönteme uygun değerleri iletin.
Aşağıdaki kod snippet'inde, video reklamların çocuklara veya reşit olma yaşının altındaki kullanıcılara uygun olması gerektiğini nasıl beyan edeceğiniz gösterilmektedir:
Kotlin
val billingClient = BillingClient.newBuilder(context) .setListener(this) .setChildDirected(ChildDirected.CHILD_DIRECTED) .setUnderAgeOfConsent(UnderAgeOfConsent.UNDER_AGE_OF_CONSENT) .build()
Java
BillingClient billingClient = BillingClient.newBuilder(context) .setListener(this) .setChildDirected(ChildDirected.CHILD_DIRECTED) .setUnderAgeOfConsent(UnderAgeOfConsent.UNDER_AGE_OF_CONSENT) .build();
Video reklamları yükleme
Kullanıcınıza ödüllü ürün almak için video reklam izleme seçeneği sunmadan önce videoyu yüklemeniz gerekir. Bunu yapmak için, ödül ürününü temsil eden SkuDetails nesnesiyle ilişkilendirerek bir RewardLoadParams nesnesi oluşturun. Ardından, RewardLoadParams nesnesini ve RewardResponseListener nesnesini ileterek faturalandırma istemcinizin loadRewardedSku() yöntemini çağırın.
RewardResponseListener dinleyicisine video yükleme işlemi tamamlandığında bildirim gönderilir. Video kullanılamıyorsa veya sunucu zaman aşımı gibi başka bir hata oluşursa dinleyiciye de bildirim gönderilir.
Uygulamanızın ödüllü ürünleriyle ilişkili videolar yüklenirken cihaz performansını korumak için aşağıdaki en iyi uygulamaları göz önünde bulundurun:
- Tek seferde en fazla üç ödüllü ürün SKU'su yükleyin.
- Kullanıcı uygulamanıza her girdiğinde videoları yüklemeyi deneyin. Bu adım, videoların hâlâ yüklü ve kullanılabilir olup olmadığını kontrol etmenize yardımcı olur.
Videoların ne zaman yükleneceğine karar verirken bant genişliği kullanımı ile uygulamanın yanıt verme hızı arasında kullanım alanınıza en uygun dengeyi seçin:
- En erken, ilişkili ödüllü ürün için
getSkuDetails()işlevini çağırdıktan sonra videoları yükleyin. Uygulamanız çok hızlı yanıt vermeye devam eder ancak kullanıcının hiç izlemeyeceği bir videoyu yükleyerek ağ verilerini boşa harcayabilirsiniz. - En geç, kullanıcı videonun gösterileceği sayfaya gittiğinde videoyu yükleyin. Bu durumda uygulamanız nadiren bant genişliğini boşa harcar ancak kullanıcının videoyu izleme düğmesinin tıklanabilir hale gelmesi için birkaç dakika beklemesi gerekebilir.
- En erken, ilişkili ödüllü ürün için
Aşağıdaki kod snippet'i, kullanıcı ödüllü ürünü almadan önce oynatılan bir video reklamın yüklenme sürecini gösterir:
Kotlin
if (skuDetails.isRewarded()) { val params = RewardLoadParams.Builder() .setSkuDetails(skuDetails) .build() mBillingClient.loadRewardedSku(params.build(), object : RewardResponseListener { override fun onRewardResponse(@BillingResponse responseCode : Int) { if (responseCode == BillingResponse.OK) { // Enable the reward product, or make // any necessary updates to the UI. } } }) }
Java
if (skuDetails.isRewarded()) { RewardLoadParams.Builder params = RewardLoadParams.newBuilder(); params.setSkuDetails(skuDetails); mBillingClient.loadRewardedSku(params.build(), new RewardResponseListener() { @Override public void onRewardResponse(int responseCode) { if (responseCode == BillingResponse.OK) { // Enable the reward product, or make // any necessary updates to the UI. } } }); }
Kullanıcılara ödüllü satın alma işlemleri sunma
Google Play Faturalandırma Kitaplığı, ödül ürünle ilişkili videoyu başarıyla yüklerse (yani RewardResponseListener, BillingResponse.OK değerinde bir responseCode alırsa) faturalandırma akışını başlatabilirsiniz.
launchBillingFlow() işlevini çağırarak ödüllü ürün reklamlarını oynatmaya başlarsınız. Bu işlev, diğer tüm uygulama içi ürün türlerinde kullandığınız işlevle aynıdır. Kullanıcı, ödül ürünü almak için doğrudan satın alma işlemi yapmasa da ürünü alıp kullanabilmesi için faturalandırma akışını etkinleştirmeniz gerekir.
Satın alma işlemini tüketme
Fatura müşterinize, bir kullanıcının ödüllü ürün aldığını ve kullandığını bildirmek için fatura müşterinizin dinleyicisinin onPurchasesUpdated() yönteminde satın alma işlemini gerçekleştirin. Ödüllü satın alımların kullanılması gerektiğini unutmayın.
Ödül ürünlerinizi test etme
Uygulamanızın video reklamları nasıl yüklediğini ve kullanıcılara ödüllü ürünleri nasıl sunduğunu test etmek için lisanslı test kullanıcılarından yararlanın. Bu kullanıcılar varsayılan olarak gerçek reklamlar yerine test reklamları alır. Bu test kullanıcıları için hesap oluşturmayı öğrenmek istiyorsanız Google Play Faturalandırma uygulamasında kullanıcı testi yapma başlıklı makaleyi inceleyin.
Test etmenin bir diğer yöntemi de android.test.reward ürün kimliğini kullanmaktır. Bu ürün, Google Play Faturalandırma'da ayrılmış bir ad olduğundan Play Console'daki uygulama içi ürünler listenize eklemeniz gerekmez.
Dikkat: Uygulamanızın ödüllü ürünlerini test ederken gerçek ürünleri kullanmayın. Aksi takdirde hesabınız spam veya sahtekarlık amaçlı hesap olarak işaretlenebilir.
Ancak testi tamamladığınızda üretim uygulamanızı son kullanıcılara dağıtmadan önce android.test.reward yerine gerçek ödüllü ürünlerinizin ürün kimliklerini kullandığınızdan emin olun.
Ödüllü ürün iş akışının şeması
Aşağıdaki sıra diyagramında, kullanıcının, uygulamanızın ve Google Play Faturalandırma Kitaplığı'nın birlikte çalışarak nasıl video reklam gösterdiği ve kullanıcıya ödül ürüne erişim izni verdiği gösterilmektedir: