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()
를 호출해야 합니다.