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_REQUESTED
和CONTENT_RESUME_REQUESTED
事件來暫停及繼續播放內容。如要進一步瞭解這些事件,請參閱相關的 API 說明文件。
注意:內容播放完畢或使用者停止播放時,請務必呼叫 AdsLoader.contentComplete,向 SDK 發出內容已經通知。接著,SDK 會播放已安排的片尾廣告插播時段。當所有廣告插播都播完時,就會引發 ALL_ADS_COMPLETED
事件。另外請注意,呼叫 init()
時,系統會在開始追蹤內容時啟動內容追蹤功能。播放內容前,應一律呼叫 init()
。