Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Menambahkan fitur khusus produk bonus

Salah satu metode agar pengguna dapat mengakses produk dan manfaat dalam aplikasi Anda adalah dengan membuat produk bonus, atau item yang diterima pengguna setelah mereka menonton iklan video. Dengan menyediakan produk bonus, Anda memungkinkan pengguna untuk mendapatkan hadiah dan manfaat dalam aplikasi tanpa melakukan pembelian langsung.

Dokumen ini menjelaskan cara menerapkan fungsionalitas khusus untuk produk bonus. Bagian diagram alur kerja di halaman ini menggambarkan prosesnya.

Mengidentifikasi produk bonus aplikasi Anda

Produk bonus memiliki SkuType dari INAPP. Agar pengguna dapat menonton banyak iklan dan mendapatkan banyak bonus, produk-produk tersebut harus digunakan.

Agar dapat menawarkan produk bonus 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 perlu diperlakukan sebagai ditujukan untuk anak-anak di Amerika Serikat atau yang ditujukan kepada pengguna di bawah umur yang memerlukan persetujuan sesuai hukum 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 umur yang memerlukan persetujuan 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-anak atau ditujukan untuk pengguna berusia di bawah umur yang memerlukan persetujuan. 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 bonus, Anda perlu memuat video. Untuk melakukannya, buat objek RewardLoadParams, dengan mengaitkannya dengan objek SkuDetails yang merepresentasikan produk bonus. 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 bonus aplikasi Anda, selalu ingat praktik terbaik berikut:

  • Muat maksimal tiga SKU produk bonus 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 bonus 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.

Cuplikan kode berikut menunjukkan proses pemuatan iklan video yang diputar sebelum pengguna menerima produk bonus:

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 bonus ke pengguna

Jika Library Layanan Penagihan Google Play berhasil memuat video yang terkait dengan produk bonus, yaitu jika RewardResponseListener menerima responseCode dari BillingResponse.OK, Anda dapat meluncurkan alur penagihan.

Mulailah memutar iklan untuk produk bonus dengan memanggil launchBillingFlow(), seperti yang Anda lakukan untuk semua jenis produk dalam aplikasi lainnya. Meskipun pengguna tidak melakukan pembelian langsung untuk menerima produk bonus, 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 bonus, tangani pembelian dalam metode onPurchasesUpdated() pada pemroses klien penagihan Anda. Perhatikan bahwa pembelian produk bonus perlu dipakai.

Menguji produk bonus

Untuk menguji bagaimana aplikasi Anda memuat iklan video dan memberikan produk bonus 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 bonus 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 bonus Anda yang sebenarnya sebelum men-deploy aplikasi produksi kepada pengguna akhir.

Diagram alur kerja produk bonus

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 bonus:

Diagram urutan yang menunjukkan protokol produk bonus
Gambar 1. Langkah-langkah untuk menyelesaikan pembelian produk bonus menggunakan Layanan Penagihan Google Play