Можно ли использовать display: none;?
Правилами запрещено скрывать блоки посредством display: none;, даже при применении @Media (официальные данные).
Можно ли изменять код Эдсенс?
Да (официальные данные).
Адсенс для адаптивного дизайна
Скрипт, предложенный сотрудниками Google (или такой вариант с участием CSS):
<script type="text/javascript">
google_ad_client = "ca-publisher-id";
width = document.documentElement.clientWidth;
google_ad_slot = "1234567890";
google_ad_width = 320;
google_ad_height = 50;
if (width > 500) {
google_ad_slot = "3456789012";
google_ad_width = 468;
google_ad_height = 60;
}
if (width > 800) {
google_ad_slot = "2345678901";
google_ad_width = 728;
google_ad_height = 90;
}
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
Его главный минус: не решает задачи не отображать объявление на маленьких экранах монитора. Скажем, когда из трёх блоков нужно показать только одно, или как у меня — когда боковая колонка "уплывает" в поле над статьёй и контекстная реклама будет явно лишней.
Решение я увидела тут. Там есть более гибкий вариант, чем опубликованный мной, и подходит для резинового сайта. Мне же вполне достаточно адаптивного варианта. Код будем брать асинхронный, поскольку он обеспечивает более быструю загрузку HTML-страницы. Его нужно вытянуть в одну строку и заменить " на '
<script><!--
var width = window.innerWidth || document.documentElement.clientWidth;
if (width >= 1185) {
document.write("<script async src='http://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js'></script> <ins class='adsbygoogle' style='display:inline-block;width:970px;height:90px' data-ad-client='ca-pub-0000000000000000' data-ad-slot='0000000000'></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>");
}
else if ((width < 1185) && (width > 945)) {
document.write("<script async src='http://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js'></script> <ins class='adsbygoogle' style='display:inline-block;width:728px;height:90px' data-ad-client='ca-pub-0000000000000000' data-ad-slot='0000000000'></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>");
}
else if ((width <= 945) && (width > 540)) {
document.write("<script async src='http://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js'></script> <ins class='adsbygoogle' style='display:inline-block;width:320px;height:50px' data-ad-client='ca-pub-0000000000000000' data-ad-slot='0000000000'></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>");
}
//-->
</script>
То есть размер объявления будет скачками уменьшаться до достижения 540px экрана, а далее не будет загружаться.
Показать AdSense только вновь прибывшим на сайт, но не постоянным читателям
Я никогда не горела желанием "завалить" блог из-за навалившейся со всех сторон рекламы. Поэтому если человек повторно будет возвращаться на ресурс, то правый блок не будет виден (теория о локальном хранилище).
<script type="text/javascript"><!--
google_ad_client = "ca-pub-0000000000000000";
var width = window.innerWidth || document.documentElement.clientWidth;
if ((!localStorage.getItem('adsense300'))) {
document.write("<script async src='http://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js'></script> <ins class='adsbygoogle' style='display:inline-block;width:300px;height:600px' data-ad-client='ca-pub-0000000000000000' data-ad-slot='0000000000'></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script>");
localStorage.setItem('adsense300', 'adsense');
}
//-->
</script>
P.S. сейчас последний скрипт не использую, хочу протестировать рекламу, собрать статистику кликов. Проверить какова доля переходов новых и возвратившихся людей. Будет ли вообще увеличен доход после внедрения нового блока. Через пару месяцев нужно будет вновь вернуться к этому вопросу. Если есть потребность в статье про анализ, напомните, мне, пожалуйста. Расскажу что да где посмотреть.
Отправить комментарий