IMA Android SDK 支持完全自动化的广告播放列表。此功能 按照 Google Ad Manager 。它还大大简化了视频播放器代码 (包括前贴片广告、中贴片广告和后贴片广告)。
- 在 Ad Manager 中投放广告时,可以指定各种广告规则 如“始终在内容开头处播放广告插播时间点”或“播放一个 每 30 分钟内容插播一分钟广告”。
- 请求广告时,广告服务器可返回广告播放列表。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()
然后再播放内容