Latest News

Membuat Tampilan Iklan Google Adsense Responsif (CSS Media Queries)

google adsense responsive buka-rahasia.blogspot.com
Masih bicara problem responsive nih, ceritanya. Karena sekarang sudah jamannya responsif, maka Google balasannya secara resmi mengeluarkan satu fitur gres lagi sebagai salah satu opsi/pilihan arahan yang mampu di set di dashboard Google Adsense. Beberapa waktu lalu, Google meluncurkan asynchronous code untuk memperbaiki performa website yang menampilkan iklan Adsense, iklan tampil lebih cepat dan muncul setelah semua elemen web termuat oleh browser. Responsivitas unit iklan juga memastikan iklan yang tampil dapat dilihat dengan baik oleh pengguna media lain (non desktop user) sehingga potensi klik dan optimalisasi pendapatan Adsense tidak berkurang. 

Sebelum unit iklan responsive dirilis, arahan iklan masih dalam bentuk synchronous (kode unit iklan lama), sehingga saya harus mengakali tampilan responsifnya dengan javascript. Ada beberapa slot iklan yang digunakan sekaligus dalam satu area iklan biar nantinya mampu dipanggil sesuai dengan lebar screen. Misalnya di header saya membuat 3 slot sekaligus, 728x90, 468x60, dan 320x50, yang nanti masing-masing akan dimuat sesuai dengan lebar device. Pastinya ini ribet, alasannya kita mesti membuat banyak slot, apalagi kalau punya 3 area di satu halaman, maka mampu dipastikan berbagai jumlah slot yang harus dibuat. Belum lagi eksekusi menggunakan javascript yang tentu akan memakan waktu lebih panjang.


Beberapa waktu kemudian, kehadiran asynchronous code membuat pekerjaan lebih ringan, alasannya kita tidak perlu membuat banyak slot, cukup satu slot saja dan sisanya mampu diatur dengan CSS media queries. Contoh:

<style type="text/css">
.adsbygoogle {display:inline-block;width:468px;height:60px;}
@media screen and (max-width: 467px)  { .adsbygoogle {display:inline-block;width:300px;height:250px;} }
@media screen and (max-width: 299px)  { .adsbygoogle {display:inline-block;width:200px;height:200px;} }
</style>
<script async src="http://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
     data-ad-client="ca-pub-xxxxxxxxxxxxxx"
     data-ad-slot="xxxxxxxxxx"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

Kode di atas ialah hasil modifikasi menggunakan CSS media queries yang menggunakan class adsbygoogle. Berikut arahan aslinya.

<script async src="http://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle" style="display:inline-block;width:468px;height:60px;"
     data-ad-client="ca-pub-xxxxxxxxxxxxxx"
     data-ad-slot="xxxxxxxxxx"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

Style di dalam tag ins kemudian diangkat dan dipisahkan ke dalam tag style sendiri, dengan menggunakan class adsbygoogle. Dan hasilnya ibarat pada pola pertama. Proses pembacaan CSS media screen/queries nya ibarat ini: 
Tampilan default iklan yang akan dimunculkan ialah 468x60, namun kalau lebar screen kurang dari sama dengan 467px maka tampilkan iklan dalam ukuran 300x250, namun kalau lebar screen kurang dari sama dengan 299px, maka tampilkan iklan dalam ukuran 200x200.

Rilis Unit Iklan Adsense Responsif (Beta)

Sebelum unit iklan responsif dirilis, saya masih merasa was-was, alasannya cara yang terakhir ini belum benar-benar dirilis secara resmi sebagai cara yang diperbolehkan, meskipun dalam help center, Google mengijinkan penggunaan CSS media queries, namun bukan pada asynchronous.

Nah, kabar baiknya, kemarin (baru saja, jam 10an malem, 31 Juli 2013) Google Adsense memberikan bahwa kini ada satu fitur lagi (masih dalam versi beta) yang disebut sebagai "responsive ad unit".

Berikut langkah membuat Ad Unit responsive dan modifikasi CSS-nya sebelum mampu digunakan pada website/blog responsive anda:

1. Buat slot baru, dan, lihat pada pilihan dropdown di bab "ad size". Pilih "responsive ad unit". Tidak ada ukuran yang perlu diset pada tahap ini. Kode yang perlu dicopy pun harus dimodifikasi lagi alasannya itu hanyalah contoh. 

2. Copy arahan yang dihasilkan dan paste pada notepad atau editor teks sederhana lainnya.
Berikut pola kodenya:

<style>
.classsesuainamaslot { width: 320px; height: 50px; }
@media(min-width: 500px) { .classsesuainamaslot  { width: 468px; height: 60px; } }
@media(min-width: 800px) { .classsesuainamaslot  { width: 728px; height: 90px; } }
</style>
<script async src="http://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- namaslot -->
<ins class="adsbygoogle classsesuainamaslot"
     style="display:inline-block"
     data-ad-client="ca-pub-xxxxxxxxxxxxxx"
     data-ad-slot="xxxxxxxxxx"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>



3. Lakukan modifikasi pada bab tag style, alasannya disitulah kunci responsivitasnya.

Default pola di atas (biru) menggunakan default unit iklan terkecil 320x50 (mobile unit). Kemudian diikuti dengan media min-with (lebar minimal). Makara asumsinya gini, kalau lebar screen minimal 500px, maka tampilkan ukuran 468x90px, kalau lebar screen minimal ialah 800px, maka tampilkan unit iklan 728x90. Anda mampu menampilkan beberapa baris sekaligus kalau ingin membuatnya lebih spesifik, menentukan syarat minimal atau maksimal screen, dan mengubah ukuran default pada bab paling atas. Contoh:

<style>
.classsesuainamaslot { width: 200px; height: 200px; }
@media(min-width: 350px) { .classsesuainamaslot { width: 300px; height: 250px; } }
@media(min-width: 400px) { .classsesuainamaslot { width: 336px; height: 280px; } }
@media(min-width: 500px) { .classsesuainamaslot { width: 468px; height: 60px; } }
@media(min-width: 800px) { .classsesuainamaslot { width: 728px; height: 90px; } }
@media(min-width: 900px) { .classsesuainamaslot { width: 900px; height: 90px; } }
</style>

CSS media query di atas menggunakan konsep minimal width, sehingga unit iklan default ialah yang terkecil. Jika ingin menggunakan unit iklan default terbesar menuju ukuran yang lebih kecil, misalnya default 728x90 kemudian menuju unit lebih kecil 468x90 dan seterusnya, maka media query yang harus digunakan ialah max-width.

4. Jika anda masih tidak puas dan bingung, atau ingin menggunakan aturan ukuran media screen yang lebih fix, gunakan pola pertama dimana saya terapkan pada arahan asynchronous di awal artikel (@media screen and (max-width)).
Contoh:

<style type="text/css">
.classsesuainamaslot{display:inline-block;width:728px;height:90px;}
@media screen and (max-width: 727px)  { .classsesuainamaslot {display:inline-block;width:468px;height:250px;} }
@media screen and (max-width: 467px)  { .classsesuainamaslot {display:inline-block;width:336px;height:280px;} }
@media screen and (max-width: 335px)  { .classsesuainamaslot {display:inline-block;width:300px;height:250px;} }
dan seterusnya tergantung impian anda...
</style>

5. Setelah selesai melaksanakan editing, masukkan arahan iklan ke dalam space dimana anda memasang iklan dan lihat hasilnya.

Beberapa poin yang perlu diperhatikan pada penggunaan iklan Google Adsense versi responsive:

  1. Pastikan ukuran yang digunakan pada masing-masing media query benar-benar fix.
  2. Pastikan ukuran yang digunakan sesuai dengan ad unit Google Adsense yang tersedia (728x90, 468x90, 970x90, 336x280, 320x50, 300x250, dan seterusnya). Ukuran yang tidak sesuai dengan ad unit yang tersedia tidak akan tampil.
  3. Karena merupakan media query, maka adaptasi unit iklan yang ditampilkan mengikuti lebar screen pada dikala load pertama kali. Makara ketika melaksanakan test, pastikan anda telah mengatur lebar browser terlebih dahulu gres load halaman. Anda tidak mampu melihat resposivitasnya hanya dengan mengubah-ubah lebar browser tanpa proses load terlebih dahulu.
  4. Jangan lupa mengatur ukuran unit iklan default apabila sewaktu-waktu media query tidak mampu dieksekusi.
  5. Terakhir, tentu saja ini hanya baik digunakan pada template.theme responsive. Pada template/theme non responsif masih mampu sih, tapi pastikan iklan float/berada di samping kiri. :)
  6. Demo menyusul :)
Catatan penting:
Karena menggunakan arahan asynchronous dan hanya perlu satu kali eksekusi javascript setiap load halaman dan iklan, maka script ini sebaiknya hanya disisipkan sekali:
<script async src="http://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
Letakkan pada space iklan di bab teratas dan hapus pada bab unit iklan lainnya. Unit iklan di space lain secara otomatis akan tereksekusi mengikutinya. Cara ini sudah diakui Google tidak melanggar kebijakan dan justru dianjurkan, alasannya eksekusi script yang sama justru akan memperlambat load halaman dan sama sekali tidak penting.