Blog Tutorial Android Bagi Pemula

Saturday, June 6, 2020

Cara Memasang Iklan Interstitial AdMob

Update : Untuk cara terbaru bisa dilihat pada postingan Cara (terbaru) Pasang Iklan Banner, Interstitial, dan Rewarded AdMob.


Interstitial Ad AdMob 

Iklan Interstitial adalah iklan layar penuh yang menutupi seluruh layar ponsel, ber format gambar ataupun video yang ditempatkan pada sebuah tombol ataupun komponen yang bisa di klik lainnya. Saat pengguna meng klik tombol tersebut, disitulah muncul iklan ini. Biasanya iklan ini di munculkan saat berpindah dari satu aktivitas ke aktivitas lain.

Dalam tutorial ini akan di praktekkan penerapan iklan Interstitial dari satu aktivitas ke aktivitas lain. Pada activity_main.xml akan dibuat sebuah komponen tombol yang akan mengarahkan ke aktivitas lain tersebut, sebelum sampai pada aktivitas lain tersebut, disitulah iklan layar penuh ini muncul.

cara memasang iklan interstitial admob
Gambar 1 : Contoh iklan Interstitial

Sebelumnya, tentunya Anda harus sudah memiliki akun AdMob terlebih dahulu, dan sudah mendaftarkan aplikasi Anda di AdMob. Jika Anda belum mempunyai akun AdMob, silahkan ke postingan ini untuk melihat tutorial pembuatannya. Pada postingan tersebut sudah dibuat lengkap langkah-langkahnya hingga mendapatkan App ID iklan dan Ad Unit ID Iklan. Bedanya pada postingan tersebut yang dibuat adalah Ad Unit untuk iklan banner. Sehingga, pada postingan tersebut saat Anda berada pada tahap pembuatan Ad Unit, pada pilihan Ad Unit yang tersedia pilih lah Ad Unit Interstitial, selebihnya sama.

Jika Ap ID dan Ad Unit Id Interstitial sudah Anda dapatkan, maka let's begin!


Memasang Iklan Interstitial

Persiapkan project Anda. Tahap awal adalah menambahkan implementation untuk iklan Google Ad pada file build.gradle (Module: app). Buka file tersebut, masukkan implementation berikut di bawah ini ke dalam dependencies {}. Anda bisa melihat postingan tentang mendaftar AdMob diatas jika memerlukan panduan :

implementation 'com.google.android.gms:play-services-ads-lite:19.1.0'

Jika sudah di masukkan, sync ulang gradle. Kemudian tambahkan meta data berikut di dalam tag <apllication> </application> pada file AndroidManifest.xml :

<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-6978316615984811~4935251119" />

Ganti App ID ca-app-pub-6978316615984811~4935251119 diatas dengan App ID AdMob Anda. Setelah itu, terlebih dahulu buat sebuah activity baru, caranya klik kanan pada menu File di pojok kiri atas, lalu New > Activity > Empty Activity. Pada contoh dalam tutorial ini nama activity nya dibuat NewActivity. Pastikan Generate Layout File sudah di centang dan klik Finish. Klik disini untuk lebih lanjut mengenai cara membuat activity baru.

Disini tidak dibuat apa-apa untuk activity baru tersebut, hanya label nya saja diganti pada AndroidManifest.xml. Jadi, activity tersebut hanyalah sebuah pelampiasan setelah kemunculan iklan Interstitial di tutup. Sekarang, pindah ke activity_main.xml; buat sebuah komponen Button, dan tambahkan atribut onClick pada komponen Button tersebut. Berikut kode lengkap pada activity_main dari com.gwnbs.proyekpertama :

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/perkataan"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:layout_marginBottom="10dp"
        android:gravity="center"
        android:textStyle="bold"
        android:textSize="20sp"
        android:text="@string/kata_bijak" />

    <Button
        android:id="@+id/btnGoTo"
        android:layout_below="@id/perkataan"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:onClick="goToNewActivity"
        android:layout_centerHorizontal="true"
        android:text="Go To Another Activity"/>

</RelativeLayout>

Jika Anda mengikuti contoh tutorial ini, maka atribut onClick pada komponen Button kodingan di atas akan digaris bawah warna merah, itu karena belum dibuat metode onClicknya di MainActivity.java. Bagi Anda yang belum familiar, Anda bisa melihat pada postingan mendaftar AdMob diatas untuk cara membuat metode onClick dari layout. Atau tinggalkan saja, akan dibuat nanti bersamaan dengan kodingan lainnya.

Selanjutnya beralih ke MainActivity.java. Pertama-tama membuat variabel untuk class InterstitialAd. Disini variabelnya dibuat iklan, sehingga lengkapnya menjadi seperti dibawah ini, letakkan tepat dibawah public class MainActivity extends AppCompatActivity { :

private InterstitialAd iklan;

Langkah-langkah awal ini sama dengan langkah-langkah pemasangan iklan banner yang sudah di bahas pada postingan sebelumnya. Bedanya pada Interstitial ini ada kodingan tambahan seperti membuat metode untuk iklan jika berhasil di muat dan apa aksi nya jika berhasil dimuat serta apa aksinya jika gagal dimuat, kemudian lagi metode listener untuk aksi ketika iklan di tutup oleh pengguna.

Ok tahap selanjutnya menginisialisasi iklan dengan class MobileAds. Salin kode berikut dan tempelkan ke dalam metode onCreate di bawah setContentView (R.layout.activity_main);

MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {}});

Berikutnya adalah membuat iklan untuk Interstitial tersebut, lalu mengatur Ad Unit ID nya dan me request iklan untuk di muat. Salin dan tempel kode berikut tepat di bawah kodingan terakhir di atas :

iklan = new InterstitialAd(this);
iklan.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
iklan.loadAd(new AdRequest.Builder().build());

Ganti Ad Unit ID ca-app-pub-3940256099942544/1033173712 dengan Ad Unit ID Interstitial milik Anda. Langkah berikutnya adalah membuat listener saat iklan ditutup, dan 2 listener tambahan saat iklan berhasil di muat dan saat iklan gagal di muat. Kedua listener terakhir ini sifatnya optional, Anda boleh untuk tidak memasukkannya. Berikut kodenya, salin dan tempel di bawah kodingan terakhir :

iklan.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
Intent i = new Intent(MainActivity.this,
               NewActivity.class);
startActivity(i);
}
@Override
public void onAdLoaded() {
Toast t = Toast.makeText(MainActivity.this,
"Iklan Interstitial berhasil di muat.", Toast.LENGTH_SHORT);
t.setGravity(Gravity.CENTER,0,0);
t.show();
}
@Override
public void onAdFailedToLoad(int errorCode) {
Toast t2 = Toast.makeText(MainActivity.this,
"Iklan Interstitial gagal di muat.", Toast.LENGTH_SHORT);
 t2.setGravity(Gravity.CENTER,0,0);
t2.show();
} });

Pada listener pertama onAdClosed kode diatas, saat iklan di tutup, maka akan di arahkan ke aktivitas baru yang di buat tadi. Untuk listener  onAdLoaded dan onAdFailedToLoad akan menampilkan pesan toast di aktivitas utama saat iklan berhasil di muat atau gagal di muat. Selanjutnya adalah membuat metode baru untuk aksi saat iklannya berhasil di muat, dan aksi saat iklannya gagal di muat.  Disini metodenya dibuat dengan nama tampilkanIklan(). Metode ini di buat di luar onCreate. Salin dan tempel kode di bawah setelah metode onCreate :

private void tampilkanIklan() {
if (iklan != null && iklan.isLoaded()) {
iklan.show();
} else {
           Intent i = new Intent(MainActivity.this,
           NewActivity.class);
           startActivity(i);
}}

Kalau di cermati, mungkin sedikit-sedikit bisa di mengerti maksud kode diatas (bagi yang belum familiar). Jika iklan berhasil di muat, maka tunjukan iklan tersebut. Atau jika iklan gagal di muat, arahkan ke aktivitas baru. Kira-kira seperti itu maksud kode di atas. Jadi, saat iklan berhasil di muat atau gagal di muat; setelah tombol pada activity_main tadi di klik, pengguna akan tetap di arahkan ke aktivitas baru.

Langkah terakhir ini adalah membuat metode onClick untuk button nya tadi yang di skip pada saat di tahap membuat button di layout activity_main.xml. Salin dan tempel di luar metode onCreate dan di bawah kodingan terakhir diatas :

public void goToNewActivity(View view) {
tampilkanIklan();
}

Kode di atas di dalamnya di isi dengan metode yang kita buat sebelumnya yaitu tampilkanIklan();. Jadi maksud dari metode onClick goToNewActivity di atas, saat tombol di klik; maka kuncinya terletak pada metode tampilkanIklan(); berhasil atau tidak memuat iklan. Berhasil atau tidaknya sudah di tentukan, yaitu seperti penjelasan diatas. Berikut kode komplit pada MainActivity.java dari package com.gwnbs.proyekpertama :





package com.gwnbs.proyekpertama;
import android.content.Intent;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.InterstitialAd;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;

public class MainActivity extends AppCompatActivity {

    private InterstitialAd iklan;

    @Override    
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override            
            public void onInitializationComplete(InitializationStatus initializationStatus) {}
        });

        iklan = new InterstitialAd(this);
        iklan.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
        iklan.loadAd(new AdRequest.Builder().build());

        iklan.setAdListener(new AdListener() {
            @Override            
            public void onAdLoaded() {
                Toast t = Toast.makeText(MainActivity.this,
                        "Iklan Interstitial berhasil di muat.", Toast.LENGTH_SHORT);
                t.setGravity(Gravity.CENTER,0,0);
                t.show();
            }
            @Override            
            public void onAdFailedToLoad(int errorCode) {
                Toast t2 = Toast.makeText(MainActivity.this,
                        "Iklan Interstitial gagal di muat.", Toast.LENGTH_SHORT);
                t2.setGravity(Gravity.CENTER,0,0);
                t2.show();
            }
            @Override            
            public void onAdClosed() {
                Intent i = new Intent(MainActivity.this,
                        NewActivity.class);
                startActivity(i);
            }
        });
    }

    private void tampilkanIklan() {
        if (iklan != null && iklan.isLoaded()) {
            iklan.show();
        } else {
            Intent i = new Intent(MainActivity.this,
                    NewActivity.class);
            startActivity(i);
        }
    }

    public void goToNewActivity(View view) {
        tampilkanIklan();
    }
}

Sekarang coba jalankan aplikasi. Jika iklan tidak muncul, bukan berarti ada yang salah pada penerapan. Karena iklan AdMob sendiri tidak gampang untuk muncul jika audiens aplikasi Anda belum banyak. Untuk mengetahui apakah instalasi sudah benar atau belum adalah dengan menggunakan test ads. Jika test memunculkan iklan, berarti penerapan sudah benar. Jika test ads iklannya tidak muncul, barulah ada yang salah pada penerapan. Untuk menggunakan test ads sangat simpel, Anda hanya perlu mengganti Ad Unit ID Interstitial Anda yang ada pada MainActivity.java dengan Ad Unit milik Google ini : ca-app-pub-3940256099942544/1033173712.

Menyematkan Interstitial Pada Tombol Back Ponsel

Bagian ini jika Anda ingin memunculkan iklan Interstitial saat pengguna mengklik tombol back ponsel mereka. Sehingga, pada saat mengklik tombol menuju aktivitas baru iklan akan muncul, dan saat mengklik tombol back untuk kembali ke aktivitas utama iklan juga muncul.

Salin semua kodingan yang dibuat di MainActivity.java kecuali metode onClick goToNewActivity lalu tempelkan pada file NewActivity.java. Setelah di tempel, pertama-tama merevisi sebagian isi dari metode onAdClosed, onAdLoaded dan onAdFailedToLoad menjadi seperti berikut :

iklan.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
      finish();
}
@Override
public void onAdLoaded() {
Toast t = Toast.makeText(NewActivity.this,
"Iklan Interstitial berhasil di muat.", Toast.LENGTH_SHORT);
t.setGravity(Gravity.CENTER,0,0);
t.show();
}
@Override
public void onAdFailedToLoad(int errorCode) {
Toast t2 = Toast.makeText(NewActivity.this,
"Iklan Interstitial gagal di muat.", Toast.LENGTH_SHORT);
t2.setGravity(Gravity.CENTER,0,0);
t2.show();
}});

Pada onAdClosed, isi keseluruhan di ganti. Namun pada onAdLoaded dan onAdFailedToLoad hanya pada kata MainActivity yang di ubah menjadi NewActivity. Lalu pada metode tampilkanIklan(); di bagian else, ganti menjadi finish();

private void tampilkanIklan() {
if (iklan != null && iklan.isLoaded()) {
iklan.show();
} else {
           finish();
}}

Terakhir, tambahkan metode baru untuk tombol back ponsel pengguna, letakkan di bawah metode tampilkanIklan(); sebagai pengganti dari metode goToNewActivity(); pada MainActivity.java. Berikut ini :

public void onBackPressed() {
        tampilkanIklan();
    }

Menguji Iklan Interstitial

Perlu diketahui bawha jika aplikasi Anda belum siap untuk di rilis ke publik, sebaiknya jangan gunakan Ad Unit Id Anda dalam pengembangan aplikasi. Hal ini sudah di bahas sebelumnya pada postingan Cara Install Iklan Banner di bagian akhir postingan. Anda bisa merujuk pada artikel tersebut jika penasaran. Saya pribadi mengalaminnya; mendapat warning dari  AdMob, walaupun sebenarnya iklan jarang muncul, dan saya tidak pernah klik iklan yang muncul. Berikut screenshot emailnya :

cara pasang iklan di android studio
Gambar 2 : Warning dari AdMob

Akhirnya sampai disini tutorial pun sudah selesai. Berikut dibawah ini video singkat yang menunjukkan bahwa penerapan sudah benar. Sekian dan terima kasih. Apabila ada yang ingin di tanyakan, silahkan di posting melalui kolom komentar.


Share:

0 comments:

Post a Comment

Hubungi Saya

Name

Email *

Message *

Terlaris 30 Hari Terakhir