IMA Android SDK поддерживает полностью автоматизированные плейлисты с рекламой. Эта функция вставляет рекламные паузы в контент, как указано в Google Ad Manager при размещении ваших объявлений. Это также значительно упрощает код видеоплеера, необходимый для поддержки рекламных пауз, включая предварительные, средние и последующие ролики.
- При размещении рекламы в Менеджере рекламы можно указать различные правила для рекламы, например «всегда воспроизводить рекламную паузу в начале контента» или «играть одну минутную рекламную паузу каждые 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()
перед воспроизведением контента.