2012-04-13 10 views
11

Я использую Google DFP.Асинхронные объявления Google против синхронного

Если я использую синхронные объявления из Google, мой сайт загружается медленно, так как он должен загружать объявление одновременно с загрузкой веб-сайта, и если объявление требует много времени для ответа, тогда загрузка страницы приостанавливается.

Если я использую асинхронные объявления, это не проблема, так как страница загружается или загружаются объявления. Другими словами, это ускоряет загрузку сайта. Дело в том, что при использовании асинхронных объявлений создается div с фиксированной шириной и высотой независимо от того, отображаются ли объявления или нет. Таким образом, обычно это создает много свободного места на моем сайте, так как не все позиции объявлений используются. То же самое происходит с синхронными объявлениями.

Google предлагает третий выбор, который не создает div, он просто использует javascript для показа рекламы, и если в этом пространстве нет рекламы, то она просто не отображает пустое пространство, которое Хорошо, однако оно ведет себя синхронно ...

Что я хочу, это какой-то метод использования асинхронных объявлений, а не пустые пробелы, если ни одно объявление не публикуется.

Спасибо.

+0

Вы можете показать образец своей работы? – Ibu

ответ

15

Я думаю, что вы ищете,

googletag.pubads().collapseEmptyDivs(); 

Это спрячет пустые divs, когда нет объявлений для показа. Назовите это до этой строки:

googletag.enableServices(); 

Больше документации здесь, для справки: http://support.google.com/dfp_premium/bin/answer.py?hl=en&answer=1650154

+0

Это должно быть отмечено как правильный ответ. – Olaj

+1

Единственная проблема, с которой я столкнулся, заключалась в том, что она вызывала вспышку пустого пространства при загрузке страницы до того, как был вызван метод collapseEmptyDivs. См. Мой ответ ниже, как я это решил. –

0

хорошо .. вы можете попробовать обходное решение .. я не совсем уверен. но вы можете попробовать.

У вас есть DIV, где ваши объявления будут загружаться асинхронно, поэтому вы можете добавить в него элемент, любой фиктивный элемент и подключить прослушиватель событий, чтобы узнать, когда он будет заменен вашим Объявления.

вы можете прослушать DOMNodeRemoved событие, которое уволено при удалении узла, и вы можете изменить размер своего div соответственно, тогда .. сообщите мне, если он работает или какой-либо прогресс в этом.

2

Попробуйте это:

<div id='div-gpt-ad-YOURDFPIDGOESHERE-1' style='width:auto; height:auto; margin:0px auto; text-align:center;'> 

Это должно растянуть или сжать DIV, чтобы соответствовать творческим размерам (и даже центрирования меньших объявлений в большем рекламном месте)

1

Добавить display: none; как в инлайн стиле, вмещающих дела.

collapseEmptyDivs метод добавляет встроенный стиль display: none; для родительского контейнера DIV. Чтобы предотвратить появление лишних пробелов, я сначала попытался добавить display: none; в качестве стиля CSS в моей таблице стилей, но стиль не был удален, когда объявления были загружены в целевое пространство рекламного блока успешно. Перемещение дисплея: нет; inline, похоже, устранил проблему.

+3

Вы также можете просто передать true вызову метода collapseEmptyDivs(). Это начинает их рушиться, а затем расширяет их по мере необходимости. Выбери свой яд. – Justin