iframe в теге <amp-ad> не изменяется

Мы пытаемся изменить размер amp-ad "на лету", но iframe, содержащий объявления, отображается в формате 1x1 вместо 300x250.

Мы используем "amp-ad" с "обычным" креативом (настройка с размером 1x1, как описано здесь http://prebid.org/overview/how-to-simplify-line-item-setup.html), но несмотря на amp-ad имеет высоту и ширину "300x250", объявления отображаются в формате 1x1!

<!doctype html>
<html ⚡ lang="en">
<head>
  <meta charset="utf-8">
  <title>AMP Ads</title>
  <link rel="canonical" href="https://www.toto.com/solar.html"/>
  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
  <script async src="https://cdn.ampproject.org/v0.js"></script>
  <script  custom-element="amp-ad" src="https://cdn.ampproject.org/v0/amp-ad-latest.js"></script>
  <script async custom-element="amp-iframe" src="https://cdn.ampproject.org/v0/amp-iframe-latest.js"></script>
  <script async custom-element="amp-sticky-ad" src="https://cdn.ampproject.org/v0/amp-sticky-ad-latest.js"></script>
  <script async custom-element="amp-analytics" src="https://cdn.ampproject.org/v0/amp-analytics-0.1.js"></script>
</head>
<body style="padding:10px">


     <amp-ad width="300" height="250"
              type="doubleclick"
              data-slot="my-data-slot"
              rtc-config='{
  "vendors": {
  "my-vendor": {"additional-infos":"111"}
  }, "timeoutMillis": 999}'
              json='{"targeting":{"test": "test"}}'
      >
        <div placeholder><div style="text-align: center; font-size: smaller; color: gray;">No ads for the moment....</div></div>
      </amp-ad>


<amp-sticky-ad layout="nodisplay">
  <amp-ad width="320" height="50"
          type="doubleclick"
              data-slot="my-data-slot"
              rtc-config='{
  "vendors": {
  "my-vendor": {"additional-infos":"111"}
  }, "timeoutMillis": 999}'
          json='{"targeting":{"test": "test"}}'
  >
    <div placeholder><div style="text-align: center; font-size: smaller; color: gray;">No ads for the moment....</div></div>
  </amp-ad>
</amp-sticky-ad>

размер нашего объявления в DFP составляет 1x1, но он связан со строкой размером 300x250

Мы также использовали amp-embed вместо amp-ad, и размер рекламы был успешно изменен до 300x250! Мы поняли, что amp-ad и amp-embed - это всего лишь псевдонимы одного и того же, но похоже, что они ведут себя по-разному!

К сожалению, amp-embed не работает в amp-sticky, поэтому нам нужно изменить размер рекламы с помощью тега amp-ad.

В креативе DFP мы пытались использовать:

  1. window.context.requestResize: но window.context не определен! Если кто-то знает, чего не хватает, чтобы получить рабочий window.context, это, вероятно, решит нашу проблему!

  2. postMessage, но это не сработало

  window.parent.postMessage({
    sentinel: 'amp',
    type: 'embed-size',
    width: 300,
    height: 250}, '*');

0 ответов

Проверьте, не показываете ли вы свои креативы в SafeFrame, попробуйте отключить его.

Кроме того, вам, вероятно, следует обратиться к window.parent.context.requestResizeне window.context.requestResize, насколько мне известно, DFP будет отображать объявления только в iframe - ваш код работает там, а в этом фрейме нет window.context. Однако он должен быть в родительском фрейме, потому что это фактический фрейм amp-ad.

Другие вопросы по тегам