Подружить AdSense и адаптивный дизайн

12
Алексей Барыкин
На сайте с 04.02.2008
Offline
272
2631

для начала FAQ

- Что такое "адаптивный дизайн" (Responsive web design)?

- технология создания веб-страниц, удобно просматриваемых с различных устройств, с которых есть возможность выхода в интернет. Адаптивный веб-дизайн опирается на media queries из CSS3. подробнее см.wiki

Примеры

Собссно вопрос - как быть с AdSense, особенно с широкими блоками (728x90)?

На мелких разрешениях (меньше 728) он будет "раскорячивать" верстку.

Скрывать стилями - формально нарушать правила программы.

Пример


/* по умолчанию блок скрыт */
#adsense {
display:none;
}
/* на разрешении 730 и более точек по ширине - блок появляется */
@media screen and (min-width: 730px) {
#adsense{
display:block;
}
}

Определять класс устройства на сервере по юзерагенту и в зависимости от этого выводить\не выводить широкие блоки?

Это геморройно по ряду причин.

webeditor
На сайте с 12.12.2010
Offline
108
#1

Алексей, может так?

1) с помощью js узнаем ширину экрана;

2) в зависимости от результата либо инклудим блок адсенса, либо нет. Вроде бы еще есть вариант с jQuery.

Куплю любой ваш сайт (https://goo.gl/bFFa4p) Без сомнения лучший недорогой хостинг (https://goo.gl/QaAKmT)
Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#2

Типа так?

<script type="text/javascript">

var screen_width = <определяем ширину экрана>
if (screen_width >= 730){
google_ad_client = "pub-XXX";
google_ad_slot = "XXX";
google_ad_width = XXX;
google_ad_height = XXX;
}
</script>
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
A5
На сайте с 02.06.2009
Offline
221
#3
webeditor:
Алексей, может так?

1) с помощью js узнаем ширину экрана;
2) в зависимости от результата либо инклудим блок адсенса, либо нет. Вроде бы еще есть вариант с jQuery.

На форуме adsense крайне не советовали инклудить код через асинхронную подгрузку через JS.

Вроде как этот финт может служить источником подозрительной активности и соответствующих последствий на аккаунт (как я понял сотрудника, это происходит за счет того, что бот не сможет определить окружающий контент, а JS работа ботов не предусмотрена) - поэтому настоятельно рекомендуют размещать код адсенс исключительно на странице, на которой осуществляется контент, без использования фреймов и подгрузки.

---------- Post added 28-05-2012 at 13:09 ----------

Алексей Барыкин:
Типа так?

В этом случае JS то все-равно будет вызываться, но с битыми параметрами.

Не есть гуд, особенно учитывая, что изменения кода запрещено правилами.

Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#4
awx5:

В этом случае JS то все-равно будет вызываться, но с битыми параметрами.
Не есть гуд, особенно учитывая, что изменения кода запрещено правилами.

Традиционное А\Б тестирование по идее тоже код меняет:

<script type="text/javascript">
var random_number = Math.random();
if (random_number < .5){
<!--
/* Вставьте ваш код А здесь */
google_ad_client = "pub-XXX";
google_ad_slot = "XXX";
google_ad_width = XXX;
google_ad_height = XXX;
//-->
} else {
<!-- /* Вставьте ваш код Б здесь */
google_ad_client = "pub-XXX";
google_ad_slot = "YYY";
google_ad_width = YYY;
google_ad_height = YYY;
//-->
}
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

пруф, см. презентацию

A5
На сайте с 02.06.2009
Offline
221
#5

Алексей Барыкин, в приводимой вами презентации нигде не указан приводимый вами способ А\Б тестирования через JS.

Есть только текст вида

Помните, что изменение рекламного кода обычно противоречит правилам программы AdSense. Однако мы проконсультировались со специалистами по правилам программы, и они разрешили нашим издателям изменять код для проведения теста A/B. Просим учесть, что коллектив AdSense не предоставляет поддержку для тестирования данного типа и помощь в устранении неисправностей в этом скрипте.

Даже если учесть тот факт, что "специалисты по правилам программы" "разрешили" изменить код для A/B тестирования, то я уверен более чем на 99% что указанный вами код "специалистами по правилам программы" будет запрещен.

profeto
На сайте с 30.03.2010
Offline
65
#6
В этом случае JS то все-равно будет вызываться, но с битыми параметрами.

Чтобы этого не было для мелких разрешений экрана можно вставлять другой блок Adsense, например 300х250. Будет код практически такой же, как в А/Б тесте.

Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#7
awx5:
Алексей Барыкин, в приводимой вами презентации нигде не указан приводимый вами способ А\Б тестирования через JS.

см. 5-й слайд

---------- Добавлено 28.05.2012 в 17:24 ----------

profeto:
Чтобы этого не было для мелких разрешений экрана можно вставлять другой блок Adsense, например 300х250. Будет код практически такой же, как в А/Б тесте.

Спасибо, кэп. 😂

Вопрос именно в этом и заключается - как разделять десктопы и мобилы и не нажить при этом геморрой.

profeto
На сайте с 30.03.2010
Offline
65
#8
Вопрос именно в этом и заключается - как разделять десктопы и мобилы и не нажить при этом геморрой.

Так вы сами выше уже писали вариант определения ширины экрана на js, в чем проблема-то? Ширина экрана - screen.width, код простейший:

<script>
if (screen.width >= 728) {
/* Код А здесь */
} else {
/* Код Б здесь */
}
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
P
На сайте с 05.01.2011
Offline
25
#9

По юзерагенту на серверной стороне, по вхождению уникальной подстроки. Нет ничего проще. Самый верный вариант.

Алексей Барыкин
На сайте с 04.02.2008
Offline
272
#10
pronen:
По юзерагенту на серверной стороне, по вхождению уникальной подстроки. Нет ничего проще. Самый верный вариант.

Это смерть фашистам, а не самый простой вариант:

- новые браузеры появляются очень часто, соответственно пополнять список UserAgent придется постоянно;

- далеко не всегда UserAgent определяется правильно.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий