Blog Tutorial Android Bagi Pemula

Thursday, September 3, 2020

Cara Memasang Iklan Video Reward AdMob

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>


Kemudian kita akan mulai melakukan koding java pada konteks MainActivity.java. Hal pertama yang dilakukan adalah membuat global variable untuk objek RewardedVideoAd, int, boolean, dan TextView. Untuk objek Button sendiri dapat dilakukan langsung di dalam onCreate.

Boolean disini kita gunakan untuk memberikan 2 fungsi klik kepada komponen Button. Nilai boolean hanya ada 2 yaitu true dan false, nilai default akan kita setel ke "true". Lalu untuk int sendiri kita gunakan untuk menghitung jumlah klik. int adalah bilangan, dan disini kita hanya akan menggunakan nya sampai bilangan ke-5 saja.

Nilai int 1 sampai dengan 5 harus berada di dalam metode "boolean true", lalu setelah nilai int ke-5 atau klik kelima, didalamnya boolean kita setel menjadi "false" supaya dapat menjalankan fungsi kedua dari tombol yaitu memunculkan dialog seperti yang sudah dijelaskan di atas.

Di dalam PositveButton pada Alert dialog lah kode untuk memunculkan iklan kita sematkan. Sedangkan NegativeButton tentunya akan membatalkan dialog dan tidak akan merubah apa-apa terhadap nilai klik. Kemudian kita perlu menerapkan listener kepada objek RewardedAdVideo. 

Terdapat 8 metode implementasi untuk listener objek ini yaitu  onRewardVideoAdLoaded, onRewardVideoAdOpened, onRewardVideoStarted, onRewardVideoAdClosed, onReward (RewardItem rewardItem), onRewardVideoAdLeftApplication, onRewardVideoAdFailedToLoad, dan terakhir onRewardVideoCompleted.

Dari semua metode implementasi listener diatas, yang harus diperhatikan adalah onReward (RewardItem rewardItem), karena didalam metode inilah kita dapat memberikan hadiah / reward kepada pengguna, pada contoh ini rewardnya ialah memberi lagi 5 klik baru dengan cara mereset nilai dari int kembali menjadi 0, kemudian menyetel boolean kembali ke "true".

MainActivity.java
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();
}
}


Saya rasa cukup sekian, mudah-mudahan penjelasan diatas cukup jelas. Silahkan tinggalkan komentar jika ada yang kurang jelas atau ada hal lain yang ingin disampaikan. Terima kasih.
Share:

0 comments:

Post a Comment

Hubungi Saya

Name

Email *

Message *

Terlaris 30 Hari Terakhir