Обеспечьте отображение креативов в окнах iframe

Как создавать раскрывающиеся и плавающие креативы, учитывающие контекст

Если вы используете теги Google Publisher Tag для показа раскрывающихся и плавающих объявлений, а креатив больше, чем рекламное место, то он может быть обрезан. Чтобы обеспечить совместимость с окнами iframe, используйте в коде креативов условные операторы, которые позволят предпринять различные действия в зависимости контекста.

Статические объявления (например, баннеры 728 x 90) отображаются корректно, потому что для них не требуется изменять размер контейнера. Наличие окон iframe в этом случае не играет роли.

Как креатив может определить контекст

Ниже приведен код креатива, который проверяет следующее:

  1. Креатив показывается не в окне iframe.
  2. Креатив показывается в совместимом окне iframe и может обойти его.
  3. Креатив показывается в междоменном окне iframe и не может обойти его.
1 <script type="text/javascript">
2 if(top==self) {
3     …

Строки 1–3. Креатив показывается не в окне iframe.
Поскольку креатив находится на верхнем уровне (top==self), значит он показывается не в окне iframe. Поэтому, чтобы добавить на страницу код расширяемого или плавающего креатива, можно использовать document.write() или другой метод.

4 } else {
5     try {
6        …

Строки 4–6. Креатив показывается в совместимом окне iframe и может обойти его.
Поскольку креатив находится не на верхнем уровне (top!=self), код креатива должен получить доступ к нужному фрейму или окну перед добавлением кода HTML и JavaScript объявления на страницу. Скорее всего, в коде потребуется использовать функции DOM и ссылку на верхнее окно. При возникновении ошибки будет выполнен блок catch (см. ниже).

Если ссылку на верхнее окно удалось создать, значит вмещающее окно iframe не является междоменным, то есть считается совместимым.

7     } catch(e) {
8         …
9     }
10 }
11 </script>

Строки 7–11. Креатив показывается в междоменном окне iframe и не может обойти его.
Если при создании ссылки на верхнее окно возникает ошибка, значит креатив находится в междоменном окне iframe и не может его обойти. Здесь можно предусмотреть альтернативный сценарий, чтобы креатив был отображен корректно. Например, можно показать резервное изображение фиксированного размера вместо раскрывающегося объявления.

По умолчанию теги Google Publisher Tag (GPT) используют для показа креативов междоменные окна iframes, которые называются SafeFrame. Используйте вызовы функций SafeFrame, чтобы креатив мог связываться с родительской страницей и изменять свой размер. Подробнее о показе объявлений с помощью SafeFrame.

Посмотреть код без подсказок
<script type="text/javascript">
   if(top==self) {
       …
   } else {
       try {
          …
       }
       catch(e) {
           …
       }
   }
</script>
Эта информация оказалась полезной?
Как можно улучшить эту статью?