Javascript ile Google Adsense kodunu geciktirmek
Google Adsense kodunun website açılış hızlarını olumsuz etkilediğini biliyoruz. Basit bir javascript kodu ile birlikte Google Adsense javascript kodunu veya farklı javascript kodlarının yüklemesini geciktirmek mümkün.
Google Adsense javascript kodunu eklemeniz için size şöyle bir kod veriliyor;
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- My Ad Banner --> <ins class="googleads"style="display:inline-block;width:728px;height:90px"data-ad-client="adsid"data-ad-slot="adsid"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>
Bu kod web sitesi yükleme başladığı an itibariyle otomatik olarak çalışarak ekstra adsbygoogle.js javascript'inin yüklenmesini sağlıyor. Bu kod öbeğini ufak bir müdahale ile geciktirelim.
Kullacağımız fonksiyon şu şekilde;
function googleads(){ var a=document.getElementsByTagName("head")[0], b=document.createElement("script");b.type="text/javascript", b.src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js",a.appendChild(b)} setTimeout(googleads,1500)
Bu fonksiyon ile birlikte Google Javascript kodu 1.5 saniye gecikme sonrasında yüklenecektir. Javascript fonksiyonunda yer alan 1500 milisaniye cinsindendir ve 5 saniye gecikme istediğiniz taktirde bunu 5000 olarak değiştirebilirsiniz veya ne kadar gecikme istiyorsanız onu yazabilirsiniz.
Bu fonksiyonun geçerli olabilmesi için script taglarımız arasında düzenlememiz gerekiyor. Birleştirdiğimizde elimizde şu şekilde bir kod olması gerekir.
<script> function googleads(){ var a=document.getElementsByTagName("head")[0], b=document.createElement("script");b.type="text/javascript", b.src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js",a.appendChild(b)} setTimeout(googleads,1500);</script> <!-- My Ad Banner --> <ins class="adsbygoogle" style="display:inline-block;width:728px;height:90px" data-ad-client="myid" data-ad-slot="myid"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>
Eklediğimiz fonksiyon ile artık Google Adsense yüklemeleri 1.5 saniye gecikme ile açılacaktır.
Farklı bir fonksiyon ile dilersek scroll yakalama haraketi ile de yükleme yaptırabiliriz. Yani siteye giren bir kullanıcı sitemizde kaydırma hareketi yapana kadar Google Javascript kodu yüklenmeyecektir. Dolayısı ile PageSpeed ve GtMetrix skorlarında hız kaybına neden olmayacaktır.
Dilerseniz hemen scroll fonksiyonuna göz atalım;
var adsgeciktir=!1;window.addEventListener("scroll",function(){ (0!=document.documentElement.scrollTop&&!1===adsgeciktir||0!=document.body.scrollTop&&! 1===adsgeciktir)&&(!function(){var e=document.createElement("script");e.type="text/javascript", e.async=!0,e.src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"; var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(e,a)}(),adsgeciktir=!0)},!0);
Yukarıdaki fonksiyon ile birlikte artık siteye giren ve kaydırma (Scroll) yapmayan bot ve kullanıcılara Google Adsense reklamları gösterilmeyecektir. Eğerki üst banner bir reklam tercih ediyorsanız bu kod sizin için uygun olmayabilir. Ancak Wordpress altyapısı kullanıyorsanız bu fonksiyonu "if ( is_page('ana-sayfa')" ile çevreleyerek spesifik sayfalarda çalışmasını veya çalışmamasını sağlayabilirsiniz.
Bu kodu toparlamak gerekirse;
<script> var adsgeciktir=!1;window.addEventListener("scroll",function(){ (0!=document.documentElement.scrollTop&&!1===adsgeciktir||0!=document.body.scrollTop&&! 1===adsgeciktir)&&(!function(){var e=document.createElement("script");e.type="text/javascript", e.async=!0,e.src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"; var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(e,a)}(),adsgeciktir=!0)},!0); </script> <!-- My Ad Banner --> <ins class="adsbygoogle"style="display:inline-block;width:728px;height:90px"data-ad-client="myid"data-ad-slot="myid"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>
şeklinde direkt kullanılabilir.