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

Kullanıcılarınıza uygulama içi ürün ve avantajlar sunmanın bir yolu, ödüllü ürünler veya kullanıcıların video reklam izledikten sonra aldıkları öğeler oluşturmaktır. Ödüllü ürünler sunarak kullanıcıların doğrudan satın alma işlemi gerçekleştirmek zorunda kalmadan uygulama içi ödüller ve avantajlar elde etmelerine olanak tanırsınız.

Bu belgede, ödüllü ü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 INAPP SkuType değeri vardır. 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üllü ürün sunabilmek için ürünün SkuDetails değerini almanız gerekir. Bunun 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 çocuklar ve reşit olmayan kullanıcılarla ilgili yasal yükümlülüklere uyulmasını kolaylaştırmak için uygulamanızda, ABD'de hangi reklamların çocuklara yönelik olarak değerlendirilmesi gerektiğini ve hangi reklamların ülkelerindeki geçerli reşit olma yaşının altındaki kullanıcılara yönelik olduğunu belirtmeniz gerekir. AdMob Yardım Merkezi'nde, reklam isteklerinizi ne zaman çocuklara yönelik olarak değerlendirilmesi ve ne zaman reşit olma yaşının altındaki kullanıcılar için değerlendirilmesi için etiketlemeniz gerektiği ve bu etiketlemenin sonuçları açıklanmaktadır.

Uygulamanızın faturalandırma istemcisini oluştururken ödüllü reklam isteklerinin çocuklara yönelik olarak mı yoksa reşit olma yaşının altındaki kullanıcılara yönelik olarak mı değerlendirileceğini göz önünde bulundurun. Reklam isteklerinde bu kısıtlamaların uygulanması gerekiyorsa her yönteme uygun değerleri göndererek setChildDirected() ve setUnderAgeOfConsent() yöntemlerini çağırın.

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 belirtileceğ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ü bir ürün almak için video reklam izleme seçeneği sunmadan önce videoyu yüklemeniz gerekir. Bunu yapmak için, ödüllü ürünü temsil eden SkuDetails nesnesi ile ilişkilendirerek bir RewardLoadParams nesnesi oluşturun. Ardından, faturalandırma istemcinizi çağırmak için RewardLoadParams nesnesini ve RewardResponseListener nesnesini göndererek loadRewardedSku() yöntemini çağırın.

Video yüklendiğinde RewardResponseListener dinleyiciye bildirim gönderilir. Video kullanılamıyorsa veya sunucu zaman aşımı gibi başka bir hata oluşursa dinleyici de bilgilendirilir.

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:

  • 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ü olup olmadığını 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 duyarlılığı arasında kullanım alanınız için 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 duyarlı olmaya devam eder ancak kullanıcının hiç izlemediği bir videoyu yükleyerek ağ verilerini boşa harcayabilirsiniz.
    • Videoyu en geç kullanıcı videonun gösterileceği sayfaya gittiğinde yükleyin. Bu durumda uygulamanız nadiren bant genişliği harcar ancak kullanıcının videoyu izleme düğmesini tıklayabilmesi için birkaç saniye beklemesi gerekebilir.

Aşağıdaki kod snippet'i, kullanıcı ödüllü ürünü almadan önce oynatılacak bir video reklamın yükleme 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 fırsatı sunma

Google Play Faturalandırma Kitaplığı, ödüllü bir ürünle ilişkili videoyu başarıyla yüklerse (yani RewardResponseListener, BillingResponse.OK responseCode alırsa) faturalandırma akışını başlatabilirsiniz.

Ödüllü bir ürünün reklamlarını oynatmaya, diğer tüm uygulama içi ürün türleri için yaptığınız gibi launchBillingFlow()'i çağırarak başlarsınız. Kullanıcı ödüllü bir ürün almak için doğrudan satın alma işlemi yapmasa bile ürünü alıp kullanabilmesi için faturalandırma akışını etkinleştirmeniz gerekir.

Satın alma işlemini kullanma

Faturalandırma istemcinizi, bir kullanıcının ödüllü bir ürünü aldığını ve kullandığını bildirmek için faturalandırma istemcisi dinleyicinizin onPurchasesUpdated() yönteminde satın alma işlemini yönetin. Ö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ünler nasıl sunduğunu test etmek için varsayılan olarak gerçek reklamlar yerine test reklamları gören lisanslı test kullanıcılarından yararlanın. Bu test kullanıcıları için nasıl hesap oluşturacağınızı öğrenmek istiyorsanız Google Play Faturalandırma uygulamasını kullanıcı testi başlıklı makaleyi inceleyin.

Test için başka bir yöntem 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, Play Console'daki uygulama içi ürün 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 testleri tamamladığınızda, ü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ştirdiğinizden emin olun.

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

Aşağıdaki ardışık düzen şemasında, 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ığı gösterilmektedir:

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