Kullanıcılarınıza uygulama içi ürün ve avantajlar sunmanın bir yolu, ödüllü ürünler veya kullanıcıların video reklam izledikten sonra aldıkları öğeler oluşturmaktır. Ödüllü ürünler sunarak kullanıcıların doğrudan satın alma işlemi gerçekleştirmek zorunda kalmadan uygulama içi ödüller ve avantajlar elde etmelerine olanak tanırsınız.
Bu belgede, ödüllü ürünlere özgü işlevlerin nasıl uygulanacağı açıklanmaktadır. Bu sayfanın iş akışı şeması bölümünde süreç gösterilmektedir.
Uygulamanızın ödüllü ürünlerini belirleme
Ödüllü ürünlerin INAPP
SkuType
değeri vardır.
Kullanıcıların birden fazla reklam izleyebilmesi ve birden fazla ödül alabilmesi için ürünlerin tüketilmesi gerekir.
Bir kullanıcıya ödüllü ürün sunabilmek için ürünün SkuDetails
değerini almanız gerekir. Bunun için ürün türü olarak SkuType.INAPP
ile querySkuDetailsAsync()
işlevini çağırın.
Yaşa uygun reklamlar bildirme
Çocukların Çevrimiçi Gizliliğini Koruma Yasası (COPPA) ve Genel Veri Koruma Yönetmeliği (GDPR) dahil olmak üzere çocuklar ve reşit olmayan kullanıcılarla ilgili yasal yükümlülüklere uyulmasını kolaylaştırmak için uygulamanızda, ABD'de hangi reklamların çocuklara yönelik olarak değerlendirilmesi gerektiğini ve hangi reklamların ülkelerindeki geçerli reşit olma yaşının altındaki kullanıcılara yönelik olduğunu belirtmeniz gerekir. AdMob Yardım Merkezi'nde, reklam isteklerinizi ne zaman çocuklara yönelik olarak değerlendirilmesi ve ne zaman reşit olma yaşının altındaki kullanıcılar için değerlendirilmesi için etiketlemeniz gerektiği ve bu etiketlemenin sonuçları açıklanmaktadır.
Uygulamanızın faturalandırma istemcisini oluştururken ödüllü reklam isteklerinin çocuklara yönelik olarak mı yoksa reşit olma yaşının altındaki kullanıcılara yönelik olarak mı değerlendirileceğini göz önünde bulundurun. Reklam isteklerinde bu kısıtlamaların uygulanması gerekiyorsa her yönteme uygun değerleri göndererek setChildDirected()
ve setUnderAgeOfConsent()
yöntemlerini çağırın.
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ğinin nasıl belirtileceği 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ü bir ürün almak için video reklam izleme seçeneği sunmadan önce videoyu yüklemeniz gerekir. Bunu yapmak için, ödüllü ürünü temsil eden SkuDetails
nesnesi ile ilişkilendirerek bir RewardLoadParams
nesnesi oluşturun. Ardından, faturalandırma istemcinizi çağırmak için RewardLoadParams
nesnesini ve RewardResponseListener
nesnesini göndererek loadRewardedSku()
yöntemini çağırın.
Video yüklendiğinde RewardResponseListener
dinleyiciye bildirim gönderilir. Video kullanılamıyorsa veya sunucu zaman aşımı gibi başka bir hata oluşursa dinleyici de bilgilendirilir.
Uygulamanızın ödüllü ürünleriyle ilişkili videoları yüklerken 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ü olup olmadığını 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 duyarlılığı arasında kullanım alanınız için en uygun dengeyi seçin:
- Videoları en erken, ilişkili ödüllü ürün için
getSkuDetails()
işlevini çağırdıktan sonra yükleyin. Uygulamanız çok duyarlı olmaya devam eder ancak kullanıcının hiç izlemediği bir videoyu yükleyerek ağ verilerini boşa harcayabilirsiniz. - Videoyu en geç kullanıcı videonun gösterileceği sayfaya gittiğinde yükleyin. Bu durumda uygulamanız nadiren bant genişliği harcar ancak kullanıcının videoyu izleme düğmesini tıklayabilmesi için birkaç saniye beklemesi gerekebilir.
- Videoları 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ılacak bir video reklamın yükleme 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 fırsatı sunma
Google Play Faturalandırma Kitaplığı, ödüllü bir ürünle ilişkili videoyu başarıyla yüklerse (yani RewardResponseListener
, BillingResponse.OK
responseCode
alırsa) faturalandırma akışını başlatabilirsiniz.
Ödüllü bir ürünün reklamlarını oynatmaya, diğer tüm uygulama içi ürün türleri için yaptığınız gibi launchBillingFlow()
'i çağırarak başlarsınız. Kullanıcı ödüllü bir ürün almak için doğrudan satın alma işlemi yapmasa bile ürünü alıp kullanabilmesi için faturalandırma akışını etkinleştirmeniz gerekir.
Satın alma işlemini kullanma
Faturalandırma istemcinizi, bir kullanıcının ödüllü bir ürünü aldığını ve kullandığını bildirmek için faturalandırma istemcisi dinleyicinizin onPurchasesUpdated()
yönteminde satın alma işlemini yönetin. Ödüllü satın alma işlemlerinin 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ünler nasıl sunduğunu test etmek için varsayılan olarak gerçek reklamlar yerine test reklamları gören lisanslı test kullanıcılarından yararlanın. Bu test kullanıcıları için nasıl hesap oluşturacağınızı öğrenmek istiyorsanız Google Play Faturalandırma uygulamasını kullanıcı testi başlıklı makaleyi inceleyin.
Test için başka bir yöntem de android.test.reward
ürün kimliğini kullanmaktır. Bu ürün Google Play Faturalandırma'da ayrılmış bir addır. Bu nedenle, Play Console'daki uygulama içi ürün 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 testleri tamamladığınızda, üretim uygulamanızı son kullanıcılara dağıtmadan önce android.test.reward
değerini gerçek ödüllü ürünlerinizin ürün kimlikleriyle değiştirdiğinizden emin olun.
Ödüllü ürün iş akışı şeması
Aşağıdaki ardışık düzen şemasında, kullanıcının, uygulamanızın ve Google Play Faturalandırma Kitaplığı'nın bir video reklam göstermek ve kullanıcıya ödüllü bir ürüne erişim izni vermek için birlikte nasıl çalıştığı gösterilmektedir: