Мобильная мультимедийная реклама

В 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() .