Как автоматизировать создание плейлистов с рекламой

Выберите платформу: HTML5 Android iOS tvOS

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() перед воспроизведением контента.