Как правильно написать внестраничный рекламный блок DFP?

Я разрабатываю межстраничное объявление для мобильных веб-сайтов с отрисовкой javascript. Макет полностью адаптивный, поэтому он займет 100% предоставленного экрана \ iframe.

Теперь я хочу отображать межстраничное объявление через DFP.

Сначала я создал рекламный блок размера (320 x 480), и он работал нормально, но межстраничное объявление было ограничено рамками iframe.

Я основал новый тип позиции под названием Внестраничный. В документации указано, что:

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

Но когда я пытаюсь встроить межстраничное объявление на тестовый сайт, происходит то, что iframe остается 1x1, что делает межстраничное объявление невидимым (если я вручную увеличиваю его с помощью отладчика, я вижу его)


Мои настройки:

  • позиция с размером инвентаря 1x1 и вне страницы
  • креатив с моим фрагментом кода
  • рекламный блок определяется как размер 1x1.

Я прочитал в документации, что:

Если вы используете объявление с тегом DoubleClick, необходимо убедиться, что код объявления, размещенный на другом конце тега DoubleClick (т. Е. В другой сети DFP), правильно закодирован для внестраничного рекламного блока.

Что с точки зрения внестраничных межстраничных объявлений DFP означает, что объявление "правильно закодировано"? Как заставить межстраничное объявление занимать весь размер экрана?


person Lizozom    schedule 05.04.2015    source источник
comment
Вы нашли решение этого? У меня похожая проблема.   -  person ndmweb    schedule 08.05.2015
comment
@ndmweb См. ответ, который я смог сформулировать с помощью службы поддержки Google. Надеюсь это поможет.   -  person Lizozom    schedule 14.05.2015


Ответы (3)


Проконсультировавшись со службой поддержки DFP, я смог создать внестраничный межстраничный рекламный блок, выполнив следующие действия:

  1. Создайте новый рекламный блок с размером инвентаря "Вне страницы".
  2. Создайте новую позицию и мобильное объявление с размером инвентаря "Вне страницы", эта позиция нацелена на бывший рекламный блок.
  3. # P2 # # P3 #
    # P4 #
  4. Поместите этот тег на тестовую страницу (с необходимыми тегами html, head и body) и Voilà!

person Lizozom    schedule 14.05.2015
comment
Потрясающие! Спасибо за четкое и лаконичное решение. Это работает и для меня на моем сайте DFP / Wordpress. - person ndmweb; 15.05.2015
comment
Что значит инструкция №4? Я реализую это на WP, но немного запутался в ваших словах: с необходимыми тегами html, head и body. Я пробовал это на самом деле, но это не сработало, так как в межстраничной рекламе уже есть теги html, head и body (я считал, что причина в этом). - person Raf; 15.01.2016
comment
Номер 4 означает, что вы можете протестировать его на тестовой странице. Если вы используете WP \ межстраничную рекламу, в этом нет необходимости. - person Lizozom; 17.01.2016
comment
Большая проблема с этим решением. Вы не можете использовать асинхронную и синхронную рекламу на одной странице. Не рекомендуется использовать асинхронные и синхронные рекламные теги на одной веб-странице. Вы можете использовать асинхронные теги на одних страницах своего веб-сайта и синхронные теги на других, но избегайте объединения этих режимов визуализации на одной странице. - person Zhivago; 28.11.2017

Не уверен, что это то, что вам нужно, и у меня не так много опыта работы с DFP, но я столкнулся с аналогичной проблемой, которую решил вручную, управляя размером iframe. Может быть, это тоже поможет тебе.

В DFP API есть событие, которое вы можете прослушать, чтобы узнать, что объявление завершило рендеринг, после чего я предлагаю вам изменить свойства iframe на полную ширину и любую высоту, которая будет работать для места размещения.

Предполагая, что на вашей странице есть jQuery, это можно сделать довольно легко. После настройки подключаемого модуля DFP (вызова defineSlot и т. Д.) Вы можете добавить прослушиватель для этого события следующим образом:

googletag.pubads().addEventListener('slotRenderEnded', function(){
  var $adFrame = $('#id-of-the-iframe');
  $adFrame.css({width: '100%', height: '500px'});
});

Это описано в документации DFP, здесь.

Надеюсь это поможет.

РЕДАКТИРОВАТЬ: после публикации я понял, что опубликованный мной пример кода взят из библиотеки DFP GPT. Возможно, вы этим не пользуетесь. В этом вопросе SO есть ссылка на библиотеку, созданную кем-то для прослушивания событий, запускаемых DFP. . Может быть, вы сможете использовать это и использовать описанную мною технику?

Опять же - надеюсь, это поможет :)

person grammar    schedule 11.05.2015
comment
Это здорово, если вы можете изменить код хостинга. Моя цель - добиться этого без каких-либо изменений на сайте. - person Lizozom; 14.05.2015
comment
Как определить, закрыто ли объявление, чтобы уменьшить размер окна iframe? В противном случае после закрытия объявления iframe по-прежнему покрывает страницу и предотвращает любые нажатия на элементы, расположенные за ним. - person divyenduz; 20.03.2017

Я только что столкнулся с этим. Похоже, DFP избавился от опции "Включить синхронные запросы". Это никогда не было таким отличным решением (как указывали другие) по нескольким причинам. Во-первых, это не работает, если у вас есть асинхронные запросы на той же странице. А во-вторых, это «блокирует» и замедляет вашу страницу.

Удобный iFrame

Похоже, что сейчас предпочтительным методом является использование «Friendly iFrame». Чтобы использовать удобный iFrame, при настройке объявления в DFP снимите флажок «Показывать в SafeFrame». Теперь DFP покажет ваше объявление в удобном окне iFrame. Дружественный iFrame - это iFrame, обслуживаемый из того же домена, что и родительское окно. Поскольку домены совпадают, правила безопасности браузера позволяют JavaScript в iframe обращаться к родительскому окну (через window.parent.document). Теперь вы можете настроить размер окна iframe, чтобы он отображался в полноэкранном режиме. Для этого добавьте в свой рекламный код что-то вроде следующего:

window.parent.document.getElementById(window.name).style.cssText = "position: fixed; top: 0; left: 0; bottom: 0; width: 100%; height: 100%; margin: 0;";

Если у вашего объявления есть способ закрыть само себя, не забудьте также сжать Friendly iFrame обратно при закрытии (в противном случае расширенный Friendly iFrame заблокирует действия мыши на основной странице). Сделать это можно так:

window.parent.document.getElementById(window.name).style.cssText = "position: relative; width: 0px; height: 0px;";

Пара примечаний

По соображениям безопасности, по возможности, SafeFrame является предпочтительным способом показа рекламы. SafeFrame предоставляет API для связи с родительским окном без предоставления полного доступа. SafeFrame включает опцию раскрытия для увеличения размера iFrame, однако реализация SafeFrame в DFP, похоже, не позволяет вам развернуться в полноэкранный режим. По этой причине для межстраничных объявлений лучше всего использовать дружественный iFrame. Вы можете опробовать реализацию SafeFrame в DFP здесь.

Обратите внимание, что вы должны разрешать запускать в Friendly iFrame только тот контент, которому вы полностью доверяете, поскольку он может совершать множество вредоносных действий (например, кража файлов cookie сеанса пользователя и т. Д.).

person Collin Krawll    schedule 25.10.2019