RTB блоки в зависимости от ширины экрана

K
На сайте с 29.01.2013
Offline
116
3061

Ждала и надеялась, что RTB будет сам выбирать размер блока в зависимости от ширины устройства, но нет.

Как лучше решить этот вопрос, подскажите пожалуйста, если не сложно. Сейчас включены размеры 320 × 100, 320 × 50, 728 × 90 но похоже, что на мобильных устройствах 728 × 90 показывается.

S
На сайте с 21.05.2006
Offline
209
#1

<script type="text/javascript">

if (document.body.clientWidth)
{
if (document.body.clientWidth >= 1200) document.write('Код баннера 1');
else if (document.body.clientWidth >= 800) document.write('Код баннера 2');
else if (document.body.clientWidth >= 640) document.write('Код баннера 3');
else document.write('Код баннера 4');
}
</script>

Подставьте нужную Вам ширину и вперед.

RP
На сайте с 31.10.2009
Offline
70
#2

А разве адаптивный формат не подходит?

ivaha
На сайте с 15.03.2003
Offline
154
#3

kcusha, если коротко, то ставя галочки в интерфейсе Вы перечисляете те форматы, которые Яндекс выкупает у баннерных сетей для данного блока, а не настройка адаптивного блока.

D
На сайте с 28.06.2008
Offline
1101
#4

да, у яндекса своеобразная логика с адаптивными блоками. Тоже пришлось отдать самые вкусные места Гуглу, уж с ним я уверен что блоки будут вписываться в экран.

WIKIMEO
На сайте с 20.05.2015
Offline
297
#5

Dram, все вкусные места наоборот отдал RTB)

⭐⭐⭐ Увеличу доход в Adsense, РСЯ, тизерках по своей методике: https://searchengines.guru/ru/forum/1015646 . Telegram: @DiamantG (https://t.me/DiamantG), Skype: eurobulgary ⭐⭐⭐ 💎 Adfinity - рекламная сеть 💎
A
На сайте с 23.06.2009
Offline
171
#6
shav:
<script type="text/javascript">

if (document.body.clientWidth)
{
if (document.body.clientWidth >= 1200) document.write('Код баннера 1');
else if (document.body.clientWidth >= 800) document.write('Код баннера 2');
else if (document.body.clientWidth >= 640) document.write('Код баннера 3');
else document.write('Код баннера 4');
}
</script>


Подставьте нужную Вам ширину и вперед.

Это вставить просто в шаблон на сайте? Или как?

KB
На сайте с 10.08.2006
Offline
164
KGB
#7
Dram:
да, у яндекса своеобразная логика с адаптивными блоками.

Ничего что в РТБ медийка крутится, если речь про РТБ.

Для просто блоков РСЯ (не РТБ) лучше самому делать, чем на адаптивные полагаться. Как пример для постера:


<!-- Яндекс.Директ -->
<script type="text/javascript">
yandex_partner_id = zzzzzzzzzz;
yandex_site_bg_color = 'FFFFFF';
yandex_ad_format = 'direct';
yandex_font_family = 'arial';
yandex_direct_type = 'posterHorizontal';
yandex_direct_border_type = 'ad';

var ymw=document.getElementsByTagName("body")[0].offsetWidth;*
if (ymw>=1400) {yandex_direct_limit = 4;}
if (ymw<=1400) {yandex_direct_limit = 3;}
if (ymw<=1150) {yandex_direct_limit = 2;}
if (ymw<=500) {yandex_direct_limit = 1;}

yandex_direct_title_font_size = 3;
yandex_direct_links_underline = false;
yandex_direct_bg_color = 'FFFFFF';
yandex_direct_border_color = 'EDF1F6';
yandex_direct_title_color = '1C6CBE';
yandex_direct_url_color = '999999';
yandex_direct_text_color = '1C1C1C';
yandex_direct_hover_color = '339900';
yandex_direct_favicon = false;
yandex_no_sitelinks = true;
document.write('<scr'+'ipt type="text/javascript" src="//an.yandex.ru/system/context.js"></scr'+'ipt>');
</script>

Anzey:
Это вставить просто в шаблон на сайте? Или как?

Ну не это конкретно, плюс код в одну строчку сделать придется

Для РТБ это может примерно так выглядет

<script type="text/javascript">
if (document.body.clientWidth)
{
if (document.body.clientWidth >= 1200) document.write('<div id="yandex_ad_R-XXXX-1"></div><' + 'script type="text/javascript">\r\n (function(w, n) {\r\n w[n] = w[n] || [];\r\n w[n].push(function() {\r\n Ya.Context.AdvManager.render({\r\n blockId: "R-XXXX-7",\r\n renderTo: "yandex_ad_R-XXXX-7",\r\n async: false\r\n });\r\n });\r\n document.write(\'<sc\'+\'ript type="text/javascript" src="//an.yandex.ru/system/context.js"></sc\'+\'ript>\');\r\n })(this, "yandexContextSyncCallbacks");\r\n</' + 'script>');
else if (document.body.clientWidth >= 800) document.write('<div id="yandex_ad_R-XXXX-2"></div><' + 'script type="text/javascript">\r\n (function(w, n) {\r\n w[n] = w[n] || [];\r\n w[n].push(function() {\r\n Ya.Context.AdvManager.render({\r\n blockId: "R-XXXX-7",\r\n renderTo: "yandex_ad_R-XXXX-7",\r\n async: false\r\n });\r\n });\r\n document.write(\'<sc\'+\'ript type="text/javascript" src="//an.yandex.ru/system/context.js"></sc\'+\'ript>\');\r\n })(this, "yandexContextSyncCallbacks");\r\n</' + 'script>');
else if (document.body.clientWidth >= 640) document.write('<div id="yandex_ad_R-XXXX-2"></div><' + 'script type="text/javascript">\r\n (function(w, n) {\r\n w[n] = w[n] || [];\r\n w[n].push(function() {\r\n Ya.Context.AdvManager.render({\r\n blockId: "R-XXXX-7",\r\n renderTo: "yandex_ad_R-XXXX-7",\r\n async: false\r\n });\r\n });\r\n document.write(\'<sc\'+\'ript type="text/javascript" src="//an.yandex.ru/system/context.js"></sc\'+\'ript>\');\r\n })(this, "yandexContextSyncCallbacks");\r\n</' + 'script>');
else document.write('Код баннера 4');
}
</script>

или как в примере выше renderTo: "yandex_ad_R-XXXX-1" менять

II
На сайте с 18.11.2016
Offline
23
#8

Спасибо! Скрипт работает с обычным блоком RTB. Но не работает с асинхронным. Может подскажете скрипт для асинхронного RTB

V6
На сайте с 08.10.2008
Offline
106
#9
IgorIP:
Может подскажете скрипт для асинхронного RTB

Вот, код работает

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