1. Praktikum ANDROID
ANDROID
FOR
BEGINNER MODUL 17
!
[ANDROID ADVERTISING]
!!!!!
SUDARYATNO
yatnosudar@gmail.com | @dodulz | facebook : yatno.sudar
Page 1 of 13
2. Praktikum ANDROID
ANDROID ADVERTISING
Agar bisa memonetizing apps android, cara yang paling gampang adalah memasang iklan. Ada
beberapa layanan iklan yang dapat digunakan. Diantarannya adalah Admob dan Vserv. Pada
modul ini kita akan menggunakan kedua layanan tersebut agar dapat memonetizing aplikasi kita.
!
AdMob
Sebelum melakukan praktek menampilkan iklan dari Admob kali ini, ada beberapa langkah
terlebih dahulu yang harus dilakukan.
Requirements :
• Set Target SDK ke versi 13 atau lebih.
• Set Minimum Required SDK untuk aplikasi kita ke Versi 2.3 atau lebih (
GingerBread).
Setup SDK
Google Mobile Ads merupakan bagian dari GooglePlayServices. Untuk itu kita mesti
menyertakan GooglePlayServices pada project kita.
1. Download dan konfigurasikan Google Play Service SDK ke project kita. Tutorialnya
bisa dilihat disini :
http://developer.android.com/google/play-services/setup.html
2. Tambahkan meta-data berikut dibawah parent application pada
AndroidManifest.xml
3. Tambahkan activity berikut dibawah parent application pada
AndroidManifest.xml
4. Terakhir tambahkan Permission pada AndroidManifest.xml berupa :
Android.permission.INTERNET Berfungsi untuk mengakses internet saat
melakukan request iklan.
Android.permission.NETWORK_STATE Berfungsi untuk mengecek apakah koneksi
internet tersedia atau tidak.
Page 2 of 13
meta-data android:name=com.google.android.gms.version
android:value=@integer/google_play_services_version/
activity android:name=com.google.android.gms.ads.AdActivity
android:configChanges=keyboard|keyboardHidden|orientation|
screenLayout|uiMode|screenSize|smallestScreenSize/
3. Praktikum ANDROID
Tambah uses-permission berikut dibawah parent application
5. Jalankan aplikasi, jika tidak error maka konfigurasi AdMob telah benar dilakukan.
!
Page 3 of 13
uses-permission android:name=android.permission.INTERNET/
uses-permission
android:name=android.permission.ACCESS_NETWORK_STATE/
4. Praktikum ANDROID
Admob
!
Sebelum menempatkan AdMob pada aplikasi kita, kita harus mempunyai AD_UNIT_ID. Sign Up
untuk Akun AdMob (http://www.admob.com), lalu ikut langkah-langkah selanjutnya sampai kita
mendapatkan AD_UNIT_ID.
a. Banner Ads
Pertama-tama simpan AD_UNIT_ID di static variable
Berikut contoh source code untuk menginstansiasi AdView Banner
Untuk memulai Request Admob ketikan source code berikut :
Jalankan aplikasi dan lihat hasilnya.
!
Page 4 of 13
private static final String AD_UNIT_ID = XXXxxxaXXxX;
adView = new AdView(this);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId(AD_UNIT_ID);
// Start loading the ad in the background.
adView.loadAd(adRequest);
5. Praktikum ANDROID
Mungkin untuk beberapa saat AdMob tidak muncul dikarenakan memang untuk aplikasi yang
baru ter-register di AdMob, memerlukan beberapa saat hingga impresi iklan benar-benar terkirim.
Tambahkan juga source berikut untuk penanganan adView pada siklus Activity Aplikasi.
Perhatikan juga untuk error lain misal, space banner AdMob tidak mencukupi untuk muncul di
layout dikarenakan habisnya space layar dsb.
Banner Size
Untuk melihat daftar ukuran banner dari adsMob, lihat disini
https://developers.google.com/mobile-ads-sdk/docs/admob/intermediate#play-sizes
adRefresh
untuk mengatur interval setiap kali iklan pada aplikasi kita melakukan refresh, bisa diatur di akun
AdMob kita.
addTestDevice
AdRequest bisa digunakan untuk membuat pengecualian kepada perangkat yang akan dijadikan
pengetesan, contoh :
Page 5 of 13
@Override
public void onResume() {
super.onResume();
if (adView != null) {
adView.resume();
}
}
@Override
public void onPause() {
if (adView != null) {
adView.pause();
}
super.onPause();
}
/** Called before the activity is destroyed. */
@Override
public void onDestroy() {
// Destroy the AdView.
if (adView != null) {
adView.destroy();
}
super.onDestroy();
}
// Create an ad request. Check logcat output for the hashed device ID to
// get test ads on a physical device.
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice(INSERT_YOUR_HASHED_DEVICE_ID_HERE)
.build();
6. Praktikum ANDROID
Untuk mendapatkan TestDevice pada perangkat kita, lihat output di Logcat.
Targeting
Demografi dan target lokasi juga merupakan opsi yang bisa ditambahkan pada AdRequest untuk
membuat iklan yang ditampilkan lebih spesifik, contoh :
AdsLisetener
Kita bisa menghandle event yang terjadi pada adView itu sendiri dengan menambahkan
adView.setAdListener, berikut beberapa method yang termasuk didalamnya.
b. Interstitial Ads
Page 6 of 13
AdRequest adRequest = new AdRequest.Builder()
.setGender(AdRequest.GENDER_FEMALE)
.setBirthday(new GregorianCalendar(1985, 1, 1).getTime())
.setLocation(location)
.build();
public void onAdLoaded(){}
public void onAdFailedToLoad(int errorCode){}
public void onAdOpened(){}
public void onAdClosed(){}
public void onAdLeftApplication(){}
7. Praktikum ANDROID
Pada dasarnya langkahnya sama dengan banner ads, hanya saja untuk interstitial ads kita bisa
menampilkannya disaat yang kita ingikan, misal saat perpindahan halaman dan iklan tipe ini akan
memenuhi layar saat ditampilkan.
interstitialAd = new InterstitialAd(this);
interstitialAd.setAdUnitId(AD_UNIT_ID);
// Create an ad request. Check logcat output for the hashed device ID to
// get test ads on a physical device.
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice(INSERT_YOUR_HASHED_DEVICE_ID_HERE )
.build();
// Start loading the ad in the background.
interstitialAd.loadAd(adRequest);
Lalu untuk menampilkannya, pertama-tama buatlah Button terlebih dahulu. Lalu tambahkan
source code berikut pada event OnClick button tersebut.
Jalankan aplikasi dan lihat hasilnya.
Page 7 of 13
if (interstitialAd.isLoaded()) {
interstitialAd.show();
}
8. Praktikum ANDROID
c. Smart Banners
Smart Banners merupakan jenis ads baru yang dimana tampilannya akan menyesuaikan dengan
layar perangkat dengan orientasi baik portrait atau landscape. Pada peng-aplikasiannya smart
banners tidaklah jauh berbeda dengan banners, hanya ada sedikit perbedaan :
Untuk daftar-daftar fitur smart banner yang mendukung berdasarkan ukuran layar dapat dilihat di
ling berikut :
https://developers.google.com/mobile-ads-sdk/docs/admob/smart-banners
setelah mengganti setAdSize menjadi smart banner, jalankan aplikasi dan lihat hasilnya.
Page 8 of 13
adView = new AdView(this);
adView.setAdSize(AdSize.SMART_BANNER);
adView.setAdUnitId(AD_UNIT_ID);
9. Praktikum ANDROID
VSERV V
serv.mobi merupakan salah satu sarana advertising mobile selain AdMob. Sebelum
mengimplementasikan iklan ke aplikasi, kita harus mengintegrasikan aplikasi kita dengan SDK
dari vserv.
Requirements :
• Buka halaman http://www.vserv.mobi/get-started/?at=developer untuk mendaftar akun
vserv, klik
• Setelah itu dapatkan ZoneID, fungsinya sama seperti Unit_Id pada AdMob, apabila proses
registrasi sudah sukses, bisa dilihat di https://admin.vserv.mobi/admin/affiliate-zones.
php
• Set Target SDK ke versi 18 (catatan : jangan menargetkan ke SDK versi 19, karena sedikit
bermasalah)
• Versi ADT harus 22 atau lebih (lihat di Help-About ADT)
Setup SDK
1. Download terlebih dahulu SDK untuk Vserv disini
2. Import SDK tadi kedalam workspace kita.
3. Tambahkan GooglePlayService ke project kita. Tutorialnya bisa dilihat disini :
http://developer.android.com/google/play-services/setup.html
4. Tambahkan project yang telah di import tadi menjadi Library, cara yang sama seperti
menambahkan GooglePlayServiceLib.
5. Tambahkan line berikut ke file project.properties
6. Catatan : Hilangkan baris berikut di AndroidManifest.xml jika di project kita
sebelumnya terdapat meta-data untuk Google Ads
7. Jalankan aplikasi, jika tidak error maka konfigurasi Vserv telah benar dilakukan.
Page 9 of 13
manifestmerger.enabled=true
meta-data android:name=com.google.android.gms.version
android:value=@integer/
google_play_services_version/
10. Praktikum ANDROID
Vserv
a. Interstitial Ads
Pertama-tama simpan Zone_ID yang kita dapatkan ke static variabel, misal :
Terdapat 2 buah zone id, yang satu untuk iklan berjenis interstitital, billboard, FS dan yang satu
untuk jenis banner. Untuk menampilkan Interstitial Ads, ketikan source code berikut :
AdPosition.IN berfungsi untuk mengatur dimana Iklan akan ditampilkan, didalam aplikasi (IN),
saat awal (START), atau saat akhir (END). Jalankan aplikasi dan lihat hasilnya :
Page 10 of 13
public static String ZONEID_INTERSTITIAL = 94cc2ecc;
public static String ZONEID_BANNER = 0dc57f76;
VservManager vservAds = vservAds.getInstance(this);
vservAds.setShowAt(AdPosition.IN);
vservAds.displayAd(ZONEID_INTERSTITIAL,
AdType.INTERSTITIAL);
11. Praktikum ANDROID
Interstitial Ads saat Launch (START)
Saat activity dimulai, maka aplikasi secara otomatsi menampilkan iklan tipe interstitial tersebut.
Interstitial Ads saat Exit (EXIT)
Page 11 of 13
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
linLayout = (LinearLayout) findViewById(R.id.linLayout);
VservManager vservAds = vservAds.getInstance(this);
vservAds.setShowAt(AdPosition.START);
vservAds.displayAd(ZONEID_INTERSTITIAL,
AdType.INTERSTITIAL);
@Override
public void finish() {
vservAds.setShowAt(AdPosition.END);
vservAds.displayAd(ZONEID_INTERSTITIAL,
AdType.INTERSTITIAL);
}
12. Praktikum ANDROID
Dengan cara tersebut, maka iklan akan muncul ketika kita menekan Back pada Activity, atau saat
Activity tersebut berakhir siklusnya (contoh Activity.finish()). Lalu jika tidak ada super.finish()
bagaimana bisa keluar dari aplikasi ? Implementasikan source code berikut ke onActivityResult :
b. Banner Ads
Berbeda dengan Interstitial yang menggunakan VservMananger, untuk banner Ads
menggunakan VservController serta view atau wadah yang digunakan untuk menampung
iklan tersebut. Contoh source code berikut untuk mencoba banner ads
Jalankan aplikasi dan lihat hasilnya :
Page 12 of 13
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == VservManager.REQUEST_CODE) {
if (data != null) {
if (data.hasExtra(showAt)
data.getStringExtra(showAt)
.equalsIgnoreCase(end)
) {
VservManager.getInstance(this).release(this);
super.finish();
}
} else {
super.finish();
}
}
}
frameLayout = (FrameLayout) findViewById(R.id.container);
VservManager renderAdManager =
VservManager.getInstance(this);
try {
VservController controller =
renderAdManager.renderAd(ZONEID_BANNER, frameLayout);
} catch (ViewNotEmptyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
13. Praktikum ANDROID
c. Testing Integration
Adding Test Device
Vserv SDK membolehkan kita untuk men-setting device kita menjadi device testing seperti halnya
pada AdMob.
AdvertisingID disini maksudnya adalah nomer dari perangkat yang akan dijadikan Test Device,
untuk mencarinya, buka LogCat dengan Tag vserv.
Using the TestZones
Kita bisa juga menggunakan ZoneID untuk fungsi Testing, namun harap diingat jika mempublish
aplikasi, jangan menggunakan ZoneID ini atau kita tidak akan mendapatkan revenue.
Billboard Test ZoneID: 8063
Banner Test ZoneID: 20846
d. VservManager Options
VservManager juga terdapat opsi untuk membuat lebih spesifik request dari iklan kita.
Page 13 of 13
VservManager.addTestDevice(AdvertisingID1, AdvertisingID2,
AdvertisingID3);