廣告規則

IMA Android SDK 支援全自動廣告播放清單。這項功能 可將廣告插播時間點插入內容 Google Ad Manager 所需的資訊這也大幅簡化了影片播放器程式碼 包括片頭廣告、片中廣告和片尾廣告。

  • 在 Ad Manager 中投放廣告時,您可以指定各種廣告規則 例如「一律在內容開頭播放廣告插播」或「播放一部 每分鐘的廣告插播次數」。
  • 請求廣告時,廣告伺服器可能會傳回廣告播放清單。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() 再開始播放內容