Правила рекламы

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