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

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 süreç gösterilmektedir.

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

Ödüllü ürünlerin SkuType oranı INAPP'dır. 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 ürün türü olarak SkuType.INAPP ile querySkuDetailsAsync() işlevini çağırın.

Yaşa uygun reklamları bildirme

Çocuklar ve reşit olmayan kullanıcılarla ilgili yasal yükümlülüklere (Çocukların Çevrimiçi Gizliliğini Koruma Yasası (COPPA) ve Genel Veri Koruma Yönetmeliği (GDPR) dahil) 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 reşit olma 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 için, 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ğinin nasıl beyan edileceğ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ü ürün alabilmesi 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.

Video yüklenmeyi tamamladığında RewardResponseListener dinleyiciye 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 kullanım alanınıza en uygun olan bant genişliği kullanımı ve uygulama yanıt verme hızı dengesini seçin:

    • En erken, ilişkili ödüllü ürün için getSkuDetails() işlevini çağırdıktan sonra videoları yükleyin. Uygulamanız 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.

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, responseCode alırsa) faturalandırma akışını başlatabilirsiniz.BillingResponse.OK

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 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ü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.

Başka 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 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ışı ş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:

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