Kullanıcılarınız için uygulama içi ürünlerden ve avantajlardan yararlanmanın bir yöntemi, ödüllü ürünler, yani kullanıcıların bir video reklamı izledikten sonra alacakları öğeler oluşturmaktır. Ödüllü ürünler sunarak kullanıcıların doğrudan satın alma işlemi yapmak zorunda kalmadan uygulama içi ödüller ve avantajlar elde etmesini sağlarsınız.
Bu belgede, ödül ürünlere özgü işlevlerin nasıl uygulanacağı açıklanmaktadır. Bu sayfanın iş akışı diyagramı bölümünde süreç gösterilmektedir.
Uygulamanızın ödül ürünlerini belirleme
Ödül ürünler INAPP
SkuType
değerine sahiptir.
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ül ürün sunabilmeniz için önce ürün için SkuDetails
edinmeniz gerekir. Bunu yapmak için ürün türü olarak SkuType.INAPP
ile querySkuDetailsAsync()
çağrısı yapın.
Yaşa uygun reklamlar belirtme
Çocukların Çevrimiçi Gizliliğini Koruma Yasası (COPPA) ve Genel Veri Koruma Yönetmeliği (GDPR) dahil olmak üzere çocuklarla ve yaşı tutmayan kullanıcılarla ilgili yasal yükümlülüklere uygunluğu kolaylaştırmak için uygulamanızın, ABD'de hangi reklamların çocuklara yönelik olarak değerlendirilmesi gerektiğini ve hangi reklamların ülkelerinde geçerli olan reşit olma yaşının altındaki kullanıcılara yönelik olduğunu beyan etmesi gerekir. AdMob Yardım Merkezi'nde, reklam isteklerinizi ne zaman çocuklara yönelik olarak değerlendirilmesi için etiketlemeniz gerektiği, bunları ne zaman reşit olma yaşının altındaki kullanıcılara yönelik olarak değerlendirilme için etiketlemeniz gerektiği ve bunu yapmanın 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ın uygulanması gerekiyorsa setChildDirected()
ve setUnderAgeOfConsent()
yöntemlerini çağırarak her yönteme uygun değerleri iletin.
Aşağıdaki kod snippet'i, video reklamların çocuklar veya reşit olma yaşının altındaki kullanıcılar için uygun olması gerektiğinin nasıl beyan edileceğini gösterir:
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ükle
Ödüllü bir ürün kazanması için kullanıcıya video reklam izleme seçeneği göstermeden önce videoyu yüklemeniz gerekir. Bunu yapmak için bir RewardLoadParams
nesnesi oluşturarak bu nesneyi ödül ürünü temsil eden SkuDetails
nesnesiyle ilişkilendirin. Ardından, RewardLoadParams
nesnesini ve bir RewardResponseListener
nesnesini ileterek faturalandırma istemcinizin loadRewardedSku()
yöntemini çağırın.
Videonun yüklenmesi bittiğinde RewardResponseListener
dinleyicisine bildirim gönderilir. Video kullanılamıyorsa veya sunucu zaman aşımı gibi başka bir hata oluşursa dinleyiciye bildirim de gönderilir.
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:
- Aynı anda en fazla üç ödül ü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ı ve uygulama duyarlılığı arasında kullanım alanınıza en uygun dengeyi seçin:
- İlgili ödül ürün için en kısa sürede videoları,
getSkuDetails()
çağrısından sonra yükleyin. Uygulamanız çok duyarlı olmaya devam etse de kullanıcıların hiç izlemediği videoları yüklemek için ağ verilerinizi boşa harcamış olabilirsiniz. - En geç, kullanıcı videonun görüntüleneceği sayfaya gittiğinde videoyu yükleyin. Uygulamanız bu durumda bant genişliğini nadiren boşa harcar, ancak videoyu izleme düğmesinin tıklanabilir hale gelmesi için kullanıcının birkaç dakika beklemesi gerekebilir.
- İlgili ödül ürün için en kısa sürede videoları,
Aşağıdaki kod snippet'i, kullanıcı ödüllü ürünü almadan önce oynatılan bir video reklamı yükleme işlemini göstermektedir:
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 yapma
Google Play Faturalandırma Kitaplığı, ödüllü ürünle ilişkilendirilmiş videoyu başarıyla yüklerse (yani RewardResponseListener
, responseCode
tutarında BillingResponse.OK
alırsa) faturalandırma akışını başlatabilirsiniz.
Diğer tüm uygulama içi ürün türlerinde yaptığınız gibi launchBillingFlow()
yöntemini çağırarak ödüllü ürün için reklam oynatmaya başlarsınız. Kullanıcı ödüllü bir ürün almak için doğrudan satın alma işlemi yapmasa da, kullanıcının ürünü edinip kullanabilmesi için faturalandırma akışını etkinleştirmeniz gerekir.
Satın alma işlemini gerçekleştirin
Faturalandırma müşterinize kullanıcının ödüllü bir ürün aldığını ve tükettiğini bildirmek için faturalandırma istemcisi işleyicinizin onPurchasesUpdated()
yönteminde satın alma işlemini gerçekleştirin. Ödüllü satın alma işlemlerinin tüketilmesi gerektiğini unutmayın.
Ödül ürünlerinizi test edin
Uygulamanızın video reklamları yükleme ve kullanıcılara ödüllü ürünler sunma şeklini test etmek için gerçek reklamlar yerine varsayılan olarak test reklamları alan lisanslı test kullanıcılarından yararlanın. Bu test kullanıcıları için nasıl hesap oluşturacağınızı öğrenmek üzere Google Play Faturalandırma uygulamasında kullanıcı testi yapma bölümüne bakın.
Diğer bir test yöntemi 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, ürünü Play Console'da 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 sahte hesap olarak işaretlenebilir.
Ancak testi tamamladıktan sonra, üretim uygulamanızı son kullanıcılara dağıtmadan önce android.test.reward
değerini gerçek ödül ürünlerinizin ürün kimlikleriyle değiştirin.
Ödül ürün iş akışı şeması
Aşağıdaki dizi diyagramında kullanıcı, uygulamanız ve Google Play Faturalandırma Kitaplığı'nın video reklam göstermek ve kullanıcıya ödüllü ürüne erişim izni vermek için nasıl birlikte çalıştığı gösterilmektedir: