Ödül ürünlere özgü özellikler ekleyin

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.

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:

Ödül ürünler protokolünü gösteren sıra şeması
Şekil 1. Google Play Faturalandırma'yı kullanarak ödüllü ürün satın alma işlemini tamamlama adımları