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

Kullanıcılarınız için uygulama içi ürünler 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ışı şeması bölümünde süreç gösterilmektedir.

Uygulamanızın ödül ürünlerini belirleme

Ödül ürünlerde INAPP SkuType değeri vardır. Kullanıcıların birden fazla reklam izleyip 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. Bunun için ürün türü olarak SkuType.INAPP ile querySkuDetailsAsync() çağırın.

Yaşa uygun reklamlar gösterme

Ç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 uygunluğu kolaylaştırmak için uygulamanız, 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 etmelidir. AdMob Yardım Merkezi'nde, reklam isteklerinizi ne zaman çocuklara yönelik olarak değerlendirilme, reşit olma yaşının altındaki kullanıcılara yönelik olarak değerlendirilme için ne zaman etiketlemeniz gerektiği ve bunu yapmanın etkisi açıklanmaktadır.

Uygulamanızın faturalandırma istemcisini oluştururken, ödüllü reklam isteklerinin çocuklara yönelik olarak değerlendirilmesi veya reşit olma yaşının altındaki kullanıcılara yönlendirilmeleri gerekip gerekmediğini düşünün. Reklam isteklerinde bu kısıtlamaların uygulanması gerekiyorsa setChildDirected() ve setUnderAgeOfConsent() yöntemlerini çağırarak her bir yönteme uygun değerleri iletin.

Aşağıdaki kod snippet'inde, video reklamların çocuklar veya reşit olma yaşının altındaki kullanıcılar için uygun olması gerektiğinin nasıl bildirileceğ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 reklam yükle

Ödüllü bir ürün kazanmak için kullanıcılarınıza video reklam izleme seçeneği göstermeden önce videoyu yüklemeniz gerekir. Bunu yapmak için ödül ürünü temsil eden SkuDetails nesnesiyle ilişkilendirerek bir RewardLoadParams nesnesi oluşturun. Ardından, RewardLoadParams nesnesini ve bir RewardResponseListener nesnesini ileterek faturalandırma istemcinizin loadRewardedSku() yöntemini çağırın.

Videonun yüklenmesi tamamlandığında RewardResponseListener dinleyicisine 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üklerken cihaz performansını korumak için aşağıdaki en iyi uygulamaları aklınızda 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ı ile uygulama yanıt verme hızı arasında kullanım alanınıza en uygun dengeyi seçin:

    • En kısa sürede, ilişkili ödül ürün için getSkuDetails() çağırdıktan sonra videoları yükleyin. Uygulamanız çok duyarlı olmaya devam etse de kullanıcının hiç izlemediği bir videoyu yüklemek için ağ verilerini boşa harcayabilirsiniz.
    • En geç olarak, 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 videonun 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 BillingResponse.OK alırsa) faturalandırma akışını başlatabilirsiniz.

Diğer tüm uygulama içi ürün türlerinde olduğu gibi launchBillingFlow() yöntemini çağırarak ödüllü ürün için reklam oynatmaya başlarsınız. Kullanıcı ödül ürün almak için doğrudan bir satın alma işlemi yapmasa bile, kullanıcının ürünü edinebilmesi ve kullanabilmesi için faturalandırma akışını etkinleştirmeniz gerekir.

Satın alma işlemini gerçekleştirin

Faturalandırma müşterinize bir kullanıcının ödüllü ürün aldığını ve kullandığını bildirmek için faturalandırma müşteriniz dinleyicinizin 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ı nasıl yüklediğini ve kullanıcılara ödüllü ürünler sunduğunu test etmek için varsayılan olarak gerçek reklamlar yerine test reklamları alan lisanslı test reklamları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 bitirdiğinizde, ü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ştirin.

Ödül ürün iş akışı şeması

Aşağıdaki sıra şeması bir video reklam göstermek ve kullanıcıya ödüllü bir ürüne erişim izni vermek için kullanıcının, uygulamanızın ve Google Play Faturalandırma Kitaplığı'nın birlikte nasıl çalıştığını gösterir:

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