Я ищу подходящие объявления Google AdSense в отзывчивом дизайне (в частности, используя Twitter Bootstrap).
Проблема заключается в том, что с адаптивным дизайном ширина контейнера может меняться в зависимости от ширины окна вашего браузера. Хотя это одна из основных сильных сторон для гибкого дизайна, может быть трудно подогнать контент фиксированной ширины, например рекламу. Например, данный контейнер может быть шириной 300 пикселей для пользователей, просматривающих страницу с браузером шириной не менее 1200 пикселей. Но в окне браузера шириной 768 пикселей один и тот же контейнер может иметь ширину всего 180 пикселей.
Я ищу решение JavaScript (jQuery?) для загрузки самого большого формата объявлений, который соответствует ширине контейнера.
Предположим, у меня есть следующие рекламные места (форматы объявлений):
name width x height slot_id
slot_180 180 x 160 1234567890
slot_250 250 x 250 2345678901
slot_300 300 x 250 3456789012
slot_336 336 x 280 4567890123
slot_728 728 x 90 5678901234
Здесь script, который должен включать:
<script type="text/javascript"><!--
google_ad_client = "ca-ABCDEFGH";
google_ad_slot = "[###slot_id###]";
google_ad_width = [###width###];
google_ad_height = [###height###];
//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>';
И вот несколько примеров html:
<body>
<div class="row">
<div class="span3"><p>Lorem ipsum</p></div>
<div class="span3" id="adSlot1"><!-- [### INSERT AD 1 HERE ###] --></div>
<div class="span3"><p>Lorem ipsum</p></div>
<div class="span3"><p>Lorem ipsum</p></div>
</div>
<div class="row">
<div class="span4" id="adSlot2"><!-- [### INSERT AD 2 HERE ###] --></div>
<div class="span4"><p>Lorem ipsum</p></div>
<div class="span4" id="adSlot3"><!-- [### INSERT AD 3 HERE ###] --></div>
</div>
</body>
Я бы хотел показать самый большой рекламный блок, который подходит в данном контейнере.
Например:
Если # adSlot1 имеет ширину 300 пикселей, покажите slot_300
(вернее, id: 3456789012
вместе с его шириной и высотой в JavaScript AdSense).
Теперь скажем, что вы просматриваете страницу на другом устройстве, а # adSlot1 теперь имеет ширину 480 пикселей. Теперь используйте slot_336
. 1000px широкий элемент? Используйте slot_728
. Получите это?
Обратите внимание, что это против Google TOS для отображения всех разных слотов и всего лишь .show()
/.hide()
в зависимости от ширины. Вместо этого, если JavaScript-код вызывается, он должен быть видимым на странице. (Представьте себе, как это испортило бы все сообщения, если скрытые объявления будут считаться впечатлениями!)
Я также не очень заинтересован в том, чтобы люди растягивали и сокращали свое окно браузера во время просмотра страницы. Но бонусные очки, если есть здравый ответ на это. До тех пор это может загружаться один раз на загрузку страницы.
Что вы предлагаете - лучший, самый элегантный способ сделать это?