IMA Android SDK поддерживает полностью автоматизированные списки воспроизведения объявлений. Эта функция вставляет рекламные паузы в контент в соответствии с настройками, заданными в Google Менеджере рекламы при размещении объявлений. Кроме того, он значительно упрощает код видеопроигрывателя, необходимый для поддержки рекламных пауз, в том числе видеорекламы в начале ролика, рекламы в середине видео и видеорекламы в конце ролика.
- При размещении объявлений в Менеджере рекламы можно задать различные правила для объявлений, например "всегда показывать рекламную паузу в начале контента" или "показывать одноминутную рекламную паузу каждые 30 минут контента".
- Когда запрашиваются объявления, сервер объявлений может вернуть список воспроизведения объявлений. SDK обрабатывает плейлист и автоматически планирует указанные рекламные паузы.
- Поскольку в Android для воспроизведения и объявлений, и контента используется один и тот же видеопроигрыватель, если вы планируете реализовать правила для объявлений, вам нужно будет сохранять позицию воспроизведения контента при запуске объявления и переходить к ней после завершения показа объявления.
Обязательно реализуйте интерфейс
VideoAdPlayerв своем видеопроигрывателе. Это гарантирует, что рекламные паузы будут автоматически вставляться в указанное в Менеджере рекламы время.private boolean playingContent = true; private int contentPosition = -1; private List
callbacks = new ArrayList (); @Override public void addCallback(VideoAdPlayerCallback callback) { callbacks.add(callback); } @Override public void removeCallback(VideoAdPlayerCallback callback) { callbacks.remove(callback); } public void loadContent() { playingContent = true; load(CONTENT_URL); } @Override public void loadAd(String mediaUrl) { playingContent = false; load(mediaUrl); } public void pauseContent() { savePosition(); pause(); } @Override public void pauseAd() { pause(); } private void pause() { myVideoView.pause(); for (VideoAdPlayerCallback callback : callbacks) { callback.onPause(); } } public void resumeContent() { loadContent(); if (contentPosition > 0) { restorePosition(); } resume(); } @Override public void resumeAd() { resume(); } private void resume() { myVideoView.start(); for (VideoAdPlayerCallback callback : callbacks) { callback.onResume(); } } public void savePosition() { contentPosition = myVideoView.getCurrentPosition(); } public void restorePosition() { myVideoView.seekTo(contentPosition); } - События
CONTENT_PAUSE_REQUESTEDиCONTENT_RESUME_REQUESTEDиспользуются для приостановки и возобновления воспроизведения контента во время рекламных пауз. Подробную информацию об этих событиях можно найти в документации по API.
Примечание. Когда контент будет воспроизведен до конца или пользователь остановит воспроизведение, обязательно вызовите метод AdsLoader.contentComplete, чтобы сообщить SDK, что контент завершен. Затем SDK воспроизводит рекламную паузу в конце видео, если она запланирована. Событие ALL_ADS_COMPLETED активируется, когда будут показаны ВСЕ рекламные паузы. Кроме того, отслеживание контента начинается
при вызове функции init(), поэтому ее всегда следует вызывать init()
перед воспроизведением контента.