В Google Mobile Ads SDK теперь доступна бета-версия поддержки MRAID v3, основанная на существующей поддержке MRAID v2. Это позволяет рекламодателям показывать креативы MRAID v3 издателям Менеджера рекламы. В этом руководстве разъясняются детали реализации 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, вы можете узнать больше на странице MRAID IAB . Вы также можете скачать документ «Определения 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 (Определение интерфейса рекламы видеоплеера)
Google Mobile Ads SDK не поддерживает 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() .