Update : Untuk cara terbaru silahkan bisa dilihat pada postingan Cara (terbaru) Pasang Iklan Banner, Interstitial, dan Rewarded AdMob.
Kali ini blog gwnbs akan membahas cara instalasi atau memunculkan iklan video reward AdMob di aplikasi Android. Cukup lama tidak update blog dikarenakan tidak ada kesibukan sama sekali. Seperti biasanya kita tidak akan bertele-tele. Hal pertama yang harus dilakukan adalah sama seperti cara pemasangan jenis iklan lainnya yaitu memasukkan library Google Ads di bawah ini ke file build.gradle (Module: app) :
implementation 'com.google.android.gms:play-services-ads-lite:19.3.0'
Setelah itu lakukan sync gradle. Iklan video reward adalah sebuah jenis iklan berbentuk video, biasanya berdurasi tidak lebih dari 30 detik. Setelah pengguna selesai menonton video, maka akan mendapatkan sebuah reward yang nilainya ditentukan oleh developer atau penyedia aplikasi. Iklan ini sangat populer, sering diaplikasikan pada permainan.
Contoh simpel berikut pada activity_main akan ada sebuah komponen Button dan sebuah komponen TextView. Disini kita akan membuat tombol tersebut memiliki 2 fungsi, pertama untuk menyetel teks pada TextView yaitu angka 1 sampai 5, fungsi kedua adalah memunculkan dialog setelah klik ke-5. Dialog akan memberi informasi bawha jumlah klik tombol sudah habis yaitu 5 kali klik dan jika ingin mengembalikan nilai klik dari awal lagi maka harus menonton iklan reward terlebih dahulu.
activity_main.xml :
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <Button android:id="@+id/tombolPlay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="PLAY" android:textSize="25sp" android:fontFamily="serif" android:layout_marginTop="200dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/teksAngka" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="30dp" android:text="0" android:textSize="25sp" android:fontFamily="serif" android:textColor="#000000" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@id/tombolPlay" /> </androidx.constraintlayout.widget.ConstraintLayout>
package com.gwnbs.iklanreward; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.MobileAds; import com.google.android.gms.ads.reward.RewardedVideoAd; import com.google.android.gms.ads.reward.RewardedVideoAdListener; public class MainActivity extends AppCompatActivity { private RewardedVideoAd reward; private int klik; private boolean boleh = true; private TextView teksAngka; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button tombolPlay = findViewById(R.id.tombolPlay); teksAngka = findViewById(R.id.teksAngka); tombolPlay.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { klik = klik + 1; if (boleh) { if (klik == 1) { teksAngka.setText(String.valueOf(klik)); } if (klik == 2) { teksAngka.setText(String.valueOf(klik)); } if (klik == 3) { teksAngka.setText(String.valueOf(klik)); } if (klik == 4) { teksAngka.setText(String.valueOf(klik)); } if (klik == 5) { teksAngka.setText(String.valueOf(klik)); boleh = false; } } else { dialogKlikHabis(); } } }); reward = MobileAds.getRewardedVideoAdInstance(this); reward.setRewardedVideoAdListener(new RewardedVideoAdListener() { @Override public void onRewardedVideoAdLoaded() { Toast.makeText(getApplicationContext(), "Iklan reward tersedia", Toast.LENGTH_SHORT).show(); } @Override public void onRewardedVideoAdOpened() { Toast.makeText(getApplicationContext(), "Iklan dibuka", Toast.LENGTH_SHORT).show(); } @Override public void onRewardedVideoStarted() { Toast.makeText(getApplicationContext(), "Iklan video dimulai", Toast.LENGTH_SHORT).show(); } @Override public void onRewardedVideoAdClosed() { Toast.makeText(getApplicationContext(), "Iklan ditutup", Toast.LENGTH_SHORT).show(); } @Override public void onRewarded(com.google.android.gms.ads.reward.RewardItem rewardItem) { boleh = true; klik = 0; teksAngka.setText("0"); } @Override public void onRewardedVideoAdLeftApplication() { System.out.println("Menuju sumber iklan"); } @Override public void onRewardedVideoAdFailedToLoad(int i) { Toast.makeText(getApplicationContext(), "Iklan gagal dimuat", Toast.LENGTH_SHORT).show(); } @Override public void onRewardedVideoCompleted() { reward.loadAd("ca-app-pub-3940256099942544/5224354917", new AdRequest.Builder().build()); } }); reward.loadAd("ca-app-pub-3940256099942544/5224354917", new AdRequest.Builder().build()); } private void dialogKlikHabis () { AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this); alert.setTitle("Klik Habis"); alert.setMessage("Klik nya habis. Apakah kamu mau menonton video untuk mendapatkan 5 klik lagi?"); alert.setPositiveButton("Tonton", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (reward.isLoaded()) { reward.show(); } else { Toast.makeText(getApplicationContext(), "Opps! Iklan tidak ada", Toast.LENGTH_SHORT).show(); } } }); alert.setNegativeButton("Tidak", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); alert.show(); } @Override public void onDestroy () { reward.destroy(this); super.onDestroy(); } }
0 comments:
Post a Comment