Ö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 yapmasına gerek kalmadan uygulama içi ödüller ve avantajlar elde etmesine olanak tanırsınız.

Bu belgede, ödüllü ürünlere özel işlevlerin nasıl uygulanacağı açıklanmaktadır. Bu sayfanın iş akışı şeması bölümünde süreç açıklanmaktadır.

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

Ödüllü ürünlerin SkuType değeri INAPP'dir. 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üllü ürün sunabilmek için ürünün 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ın Çevrimiçi Gizliliğini Koruma Yasası (COPPA) ve Genel Veri Koruma Yönetmeliği (GDPR) dahil olmak üzere çocuklarla 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 ülkelerindeki geçerli reşit olma yaşı altındaki kullanıcılara yönelik olduğunu bildirmelidir. AdMob Yardım Merkezi'nde, reklam isteklerinizi ne zaman çocuklara yönelik olarak değerlendirilmek üzere ve ne zaman reşit olma yaşının altındaki kullanıcılara yönelik olarak değerlendirilmek üzere 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 değerlendirilip değerlendirilmeyeceğini veya reşit olma yaşının altındaki kullanıcılara yönlendirilip yönlendirilmeyeceğini göz önünde bulundurun. Reklam isteklerinde bu kısıtlamaların uygulanması gerekiyorsa setChildDirected() ve setUnderAgeOfConsent() yöntemlerini çağırıp 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ğini nasıl beyan edeceğiniz 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 almak için video reklam izleme seçeneği göstermeden önce videoyu yüklemeniz gerekir. Bunun için, ödüllü ürünü temsil eden SkuDetails nesnesiyle ilişkilendirerek bir RewardLoadParams nesnesi oluşturun. Ardından, loadRewardedSku() ödeme istemcinizin yöntemini çağırarak RewardLoadParams nesnesini ve RewardResponseListener nesnesini iletin.

RewardResponseListener Dinleyici, video yükleme işlemi tamamlandığında bilgilendirilir. Dinleyici, video kullanılamıyorsa veya sunucu zaman aşımı gibi başka bir hata oluşursa da bilgilendirilir.

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 bant genişliği kullanımı ile uygulamanın yanıt verme hızı arasında kullanım alanınıza 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 hızlı 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ı, videoyu izleme düğmesi tıklanabilir hale gelmeden önce birkaç dakika beklemek zorunda kalabilir.

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üllü bir ürünle ilişkili videoyu başarıyla yüklerse (yani RewardResponseListener, BillingResponse.OK responseCode değerini alırsa) faturalandırma akışını başlatabilirsiniz.

launchBillingFlow() işlevini çağırarak ödül ürün reklamlarını oynatmaya başlarsınız. Bu işlev, diğer tüm uygulama içi ürün türleri için de aynı şekilde kullanılı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üllü ü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.

Test etmenin bir diğer 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 test etme işlemini 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 şeması, 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ığını gösterir:

Ö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ı