Salah satu metode agar pengguna dapat mengakses produk dan manfaat dalam aplikasi Anda adalah dengan membuat produk reward, atau item yang diterima pengguna setelah mereka menonton iklan video. Dengan menyediakan produk reward, Anda memungkinkan pengguna untuk mendapatkan hadiah dan manfaat dalam aplikasi tanpa melakukan pembelian langsung.
Dokumen ini menjelaskan cara menerapkan fungsionalitas khusus untuk produk reward. Bagian diagram alur kerja di halaman ini menggambarkan prosesnya.
Mengidentifikasi produk reward aplikasi Anda
Produk reward memiliki
SkuType
dari
INAPP
.
Agar pengguna dapat menonton banyak iklan dan mendapatkan banyak reward, produk-produk tersebut harus digunakan.
Agar dapat menawarkan produk reward pada pengguna, Anda harus mendapatkan SkuDetails
untuk produk tersebut. Untuk melakukannya, panggil querySkuDetailsAsync()
dengan SkuType.INAPP
sebagai tipe produk.
Mendeklarasikan iklan yang sesuai usia
Untuk membantu memfasilitasi kepatuhan terhadap kewajiban hukum yang terkait dengan anak-anak dan pengguna di bawah umur, termasuk Children's Online Privacy Protection Act (COPPA) dan General Data Protection Regulation (GDPR), aplikasi Anda harus mendeklarasikan iklan mana yang dapat diperlakukan sebagai ditujukan untuk anak di Amerika Serikat atau ditujukan untuk pengguna di bawah persyaratan usia dewasa yang berlaku di negara mereka. Pusat Bantuan AdMob menjelaskan kapan Anda perlu memberi tag perlakuan untuk anak-anak dan tag perlakuan untuk anak di bawah usia dewasa pada permintaan iklan Anda, serta dampak dari melakukannya.
Saat membuat klien penagihan untuk aplikasi Anda, pertimbangkan apakah permintaan iklan reward tersebut harus diperlakukan sebagai ditujukan untuk anak atau ditujukan untuk pengguna berusia di bawah usia dewasa. Jika permintaan iklan tersebut harus menerapkan pembatasan ini, panggil metode setChildDirected()
dan setUnderAgeOfConsent()
, dengan meneruskan nilai yang sesuai ke tiap metode.
Cuplikan kode berikut menunjukkan cara mendeklarasikan bahwa iklan video harus sesuai untuk anak-anak atau untuk pengguna di bawah umur yang memerlukan persetujuan:
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();
Memuat iklan video
Sebelum menampilkan opsi menonton iklan video kepada pengguna agar mereka bisa menerima produk reward, Anda perlu memuat video. Untuk melakukannya, buat objek RewardLoadParams
, dengan mengaitkannya dengan objek SkuDetails
yang merepresentasikan produk reward. Lalu, panggil metode loadRewardedSku()
klien penagihan, dengan meneruskan objek RewardLoadParams
dan objek RewardResponseListener
.
Pemroses RewardResponseListener
akan diberi tahu setelah video selesai dimuat. Pemroses juga akan diberi tahu jika video tidak tersedia, atau jika terjadi error lain, seperti waktu tunggu server habis.
Untuk mempertahankan performa perangkat saat memuat video yang terkait dengan produk reward aplikasi Anda, selalu ingat praktik terbaik berikut:
- Muat maksimal tiga SKU produk reward pada satu waktu.
- Coba muat video setiap kali pengguna memasuki aplikasi Anda. Langkah ini membantu Anda memeriksa apakah video masih dimuat dan tersedia.
Saat memutuskan kapan waktunya memuat video, pilih keseimbangan antara penggunaan bandwidth dan responsivitas aplikasi yang paling sesuai untuk kasus penggunaan Anda:
- Pada waktu paling awal, muat video setelah Anda memanggil
getSkuDetails()
untuk produk reward yang terkait. Aplikasi Anda akan tetap sangat responsif, tetapi Anda dapat memboroskan data jaringan dengan memuat video yang tidak pernah ditonton pengguna. - Pada waktu paling akhir, muat video saat pengguna membuka halaman tempat video ditampilkan. Pada kasus ini, aplikasi Anda tidak akan memboroskan bandwidth, tetapi pengguna mungkin harus menunggu beberapa saat sebelum tombol untuk menonton video dapat diklik.
- Pada waktu paling awal, muat video setelah Anda memanggil
Cuplikan kode berikut menunjukkan proses pemuatan iklan video yang diputar sebelum pengguna menerima produk reward:
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. } } }); }
Memberikan pembelian reward ke pengguna
Jika Library Layanan Penagihan Google Play berhasil memuat video yang terkait dengan produk reward, yaitu jika RewardResponseListener
menerima responseCode
dari BillingResponse.OK
, Anda dapat meluncurkan alur penagihan.
Mulailah memutar iklan untuk produk reward dengan memanggil launchBillingFlow()
, seperti yang Anda lakukan untuk semua jenis produk dalam aplikasi lainnya. Meskipun pengguna tidak melakukan pembelian langsung untuk menerima produk reward, Anda tetap perlu mengaktifkan alur penagihan agar pengguna dapat memperoleh dan menggunakan produk tersebut.
Memakai pembelian
Untuk memberi tahu klien penagihan bahwa pengguna telah menerima dan memakai produk reward, tangani pembelian dalam metode onPurchasesUpdated()
pada pemroses klien penagihan Anda. Perhatikan bahwa pembelian produk reward perlu dipakai.
Menguji produk reward
Untuk menguji bagaimana aplikasi Anda memuat iklan video dan memberikan produk reward kepada pengguna, gunakan penguji berlisensi, yang secara default mendapatkan iklan uji sebagai pengganti iklan sebenarnya. Guna mempelajari cara menyiapkan akun untuk penguji tersebut, lihat Melakukan pengujian pengguna aplikasi Layanan Penagihan Google Play.
Metode pengujian lain adalah Anda harus menggunakan ID produk android.test.reward
. Produk khusus ini adalah nama yang dicadangkan di Layanan Penagihan Google Play, jadi Anda tidak perlu menambahkannya ke daftar produk dalam aplikasi di Konsol Play.
Perhatian: Saat menguji produk reward aplikasi Anda, jangan gunakan produk sebenarnya; jika tidak, akun Anda dapat ditandai sebagai spam atau akun penipuan.
Setelah pengujian selesai, pastikan Anda mengganti android.test.reward
dengan ID produk untuk produk reward Anda yang sebenarnya sebelum men-deploy aplikasi produksi kepada pengguna akhir.
Diagram alur kerja produk reward
Diagram urutan berikut menunjukkan bagaimana pengguna, aplikasi Anda, dan Library Layanan Penagihan Google Play bekerja sama untuk menampilkan iklan video dan memberi pengguna akses ke produk reward: