В SDK Google Mobile Ads теперь доступна бета-версия поддержки MRAID v3, основанная на существующей поддержке MRAID v2, что позволяет рекламодателям показывать креативы MRAID v3 издателям Ad Manager. Это руководство разъясняет детали реализации MRAID, которые были неясны и допускали различные интерпретации в спецификации MRAID v3 . Оно предназначено для авторов креативов MRAID v3.
Предварительные требования
Издатели должны быть запущены:
- Google Mobile Ads SDK для iOS 7.30.0 или выше для MRAID v3
- Google Mobile Ads SDK для iOS 7.4.0 или выше для MRAID v2
Полезные вводные материалы
Если вы не знакомы с MRAID, вы можете узнать больше на странице IAB, посвященной MRAID . Вы также можете скачать документ «Определения MRAID v3» , в котором подробно описаны все параметры, обсуждаемые ниже, а также статью в блоге IAB о MRAID v3 .
Подробности реализации MRAID v3 (бета-версия)
Видимость - событие ExposureChange
Это событие поддерживается, и мы рекомендуем использовать слушатель для нового события exposureChange вместо устаревшего события viewableChange . Метод mraid.isViewable() также устарел. Однако эти устаревшие методы продолжают поддерживаться для обеспечения обратной совместимости.
Событие exposureChange отправляется всякий раз, когда изменяется представление объявления. SDK использует механизм опроса, чтобы избежать генерации слишком большого количества событий. Начальное состояние отправляется асинхронно после того, как объявление регистрирует слушатель. Функция обратного вызова включает параметр exposed_percentage , который представляет собой число с плавающей запятой от 0.0 до 100.0 .
Для ознакомления с примерами использования обратитесь к спецификации MRAID v3 .
Обнаружение и инициализация MRAID и атрибуты MRAID_ENV
SDK соответствует протоколу инициализации, определенному в спецификации MRAID v3 .
В объекте MRAID_ENV SDK не отправляет IDFA , limitAdTracking , App ID или COPPA (которые являются необязательными). Он предоставляет все необходимые переменные в объекте MRAID_ENV , включая версию MRAID, имя SDK и версию SDK.
Измерение слышимости
Введено новое событие ( audioVolumeChange ), позволяющее определить, слышен ли звук и когда изменяется громкость.
Событие audioVolumeChange имеет единственный параметр: volume_percentage . Значение представляет собой процент от максимальной громкости воспроизведения звука. Это число с плавающей запятой от 0.0 до 100.0 ( 0.0 если воспроизведение запрещено) или null если громкость определить невозможно.
Для ознакомления с примерами использования обратитесь к спецификации MRAID v3 .
mraid.getLocation()
Поскольку mraid.getLocation() не поддерживается, он всегда возвращает -1 .
mraid.unload()
Этот метод можно вызвать в любое время, и SDK отреагирует, закрыв рекламу, освободив ресурсы, а затем либо удалив веб-представление, либо заменив его другим документом или новой рекламой.
Когда креатив вызывает unload() , нативный слой реагирует следующим образом для разных типов креативов:
| Тип | Поведение функции unload() |
|---|---|
| Баннер | Создайте новый запрос на показ объявления с теми же параметрами, что и у текущего объявления. |
| Интерстициальный | Закройте межклеточное пространство. |
VPAID (Video Player Ad Interface Definition)
SDK Google Mobile Ads не поддерживает VPAID. mraid.supports('vpaid') возвращает false.
mraid.useCustomClose()
mraid.useCustomClose() может не поддерживаться в зависимости от формата и типа креатива.
Подробности реализации MRAID v2
mraid.getVersion()
mraid.getVersion() не возвращает 2.0 до тех пор, пока не загрузится творческий режим. Не проверяйте версию MRAID, пока mraid.getState() возвращает loading .
mraid.resize()
При вызове метода mraid.resize() исходный баннер заменяется скриншотом этого баннера. Это заметно, если измененное изображение баннера не закрывает исходное рекламное пространство.
Измененный размер рекламных объявлений также не соответствует исходному размеру баннера. Если баннер размещен в режиме прокрутки, измененное по размеру объявление не будет прокручиваться вместе с баннером.
mraid.setResizeProperties()
Все вызовы mraid.setResizeProperties() должны содержать полный список обязательных свойств. Если свойства изменения размера недействительны, они будут возвращены к значениям по умолчанию, и все последующие вызовы mraid.resize() будут завершаться ошибкой до тех пор, пока mraid.setResizeProperties() не будет вызван снова с действительными параметрами.
mraid.getMaxSize()
mraid.getMaxSize() следует использовать только для определения максимального размера для изменяемых рекламных объявлений. Для определения размера расширяемого объявления используйте mraid.getScreenSize() .
mraid.setOrientationProperties()
При вызове mraid.setOrientationProperties() с параметром allowOrientationChange , установленным в true , установка параметра forceOrientation ничего не изменит. Разработчикам, желающим принудительно изменить ориентацию экрана, следует установить allowOrientationChange в false .
mraid.isViewable()
Если элемент интерфейса перекрывает видимую рекламу, mraid.isViewable() все равно вернет true . Содержимое приложения не должно перекрывать видимую рекламу.
mraid.getCurrentPosition()
Пока двухкомпонентная разворачиваемая реклама находится в развернутом состоянии, вызов метода mraid.getCurrentPosition() для первой части вернет размер экрана.
mraid.supports()
Начиная с версии SDK 7.11.0, mraid.supports("storePicture") и mraid.supports("calendar") всегда возвращают false . Согласно спецификации MRAID v2, креативы должны иметь возможность обрабатывать случай, когда эти методы недоступны.
mraid.storePicture()
Приложение автоматически запрашивает разрешение на сохранение изображения, когда в креативе MRAID вызывается метод mraid.storePicture() .