В Google Mobile Ads SDK теперь доступна бета-версия поддержки MRAID v3, основанная на существующей поддержке MRAID v2. Это позволяет рекламодателям показывать креативы MRAID v3 издателям Менеджера рекламы. В этом руководстве разъясняются детали реализации MRAID, которые были неясны и допускали неоднозначное толкование в спецификации MRAID v3 . Целевая аудитория — авторы креативов MRAID v3.
Предпосылки
Издатели должны использовать:
- Сервисы Google Play 15.0.0 или выше для MRAID v3
- Сервисы Google Play 7.8 или выше для 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.storePicture()
Чтобы приложение поддерживало mraid.storePicture()
, ему необходимо включить разрешение android.permission.WRITE_EXTERNAL_STORAGE
.