광고 규칙

IMA Android SDK는 완전히 자동화된 광고 재생목록을 지원합니다. 이 기능은 광고를 트래피킹할 때 Google Ad Manager에 지정된 대로 콘텐츠에 광고 시점을 삽입합니다. 또한 프리롤, 미드롤, 포스트롤을 포함하여 광고 시점을 지원하는 데 필요한 동영상 플레이어 코드를 대폭 간소화합니다.

  • Ad Manager에서 광고를 트래피킹할 때 '콘텐츠 시작 부분에 항상 광고 시점 재생' 또는 '콘텐츠 30분마다 1분 광고 재생'과 같은 다양한 광고 규칙을 지정할 수 있습니다.
  • 광고가 요청되면 광고 서버는 광고 재생목록을 반환할 수 있습니다. SDK는 재생목록을 처리하고 지정된 광고 시점을 자동으로 예약합니다.
  • Android는 광고 및 콘텐츠 재생에 동일한 동영상 플레이어를 사용하므로 광고 규칙을 구현하려면 광고가 시작될 때 콘텐츠의 플레이헤드 위치를 저장한 다음 광고가 끝나면 해당 위치를 찾아야 합니다. 동영상 플레이어에서 VideoAdPlayer 인터페이스를 구현해야 합니다. 이렇게 하면 Ad Manager에 지정된 시간에 광고 시간이 자동으로 삽입됩니다.
    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_REQUESTEDCONTENT_RESUME_REQUESTED 이벤트는 광고 시간이 재생될 때 콘텐츠를 일시중지하고 재개하는 데 사용됩니다. 이러한 이벤트에 대한 자세한 내용은 관련 API 문서를 참조하세요.

참고: 콘텐츠 재생이 완료되거나 사용자가 재생을 중단한 경우 AdsLoader.contentComplete를 호출하여 콘텐츠가 완료되었음을 SDK에 알려야 합니다. 그런 다음 포스트롤 광고 시간이 예약된 경우 SDK가 이를 재생합니다. 모든 광고 시점이 재생되면 ALL_ADS_COMPLETED 이벤트가 발생합니다. 또한 init()가 호출될 때 콘텐츠 추적이 시작되며 콘텐츠를 재생하기 전에 항상 init()를 호출해야 합니다.