SDK 작업 모드
SDK는 광고 서버에서 수신하는 광고 응답에 따라 하나 이상의 모드로 작동할 수 있습니다.
- 단일 광고
start
메시지가IMAAdsManager
로 전송되면 언제든지 재생될 수 있는 광고입니다. 단일 광고를 재생하는 데 특별한 초기화가 필요하지 않습니다.- 광고 모음
start
메시지가IMAAdsManager
로 전송될 때 연달아 재생되는 여러 광고입니다. 단일 광고 모음 재생을 위해 특별한 초기화가 필요하지는 않습니다.- 광고 규칙
- 특정 콘텐츠를 대상으로 특정 시간에 예약되는 광고 시점의 재생목록입니다. 광고 규칙 모드에서는
start
메시지가 무시됩니다. 단일 재생목록 내에 여러 광고 시점 (예: 프리롤, 미드롤, 포스트롤)이 예약될 수 있습니다. 구현에 관한 자세한 내용은 아래의 광고 규칙 섹션을 참고하세요.
광고 규칙
IMA iOS SDK는 완전 자동화된 광고 재생목록을 지원합니다. 이 기능은 광고를 트래피킹할 때 Google Ad Manager에 지정된 콘텐츠에 광고 시점을 삽입합니다. 또한 프리롤, 미드롤, 포스트롤을 비롯한 광고 시점을 지원하는 데 필요한 동영상 플레이어 코드도 크게 간소화됩니다.
- Ad Manager에서 광고를 트래피킹할 때 '콘텐츠 시작 부분에 항상 광고 시점 재생' 또는 '콘텐츠 30분마다 1분 광고 시점 재생'과 같은 다양한 광고 규칙을 지정할 수 있습니다.
- 광고가 요청되면 광고 서버에서 광고 재생목록을 반환할 수 있습니다. SDK는 재생목록을 처리하고 지정된 광고 시점을 자동으로 예약합니다.
AdsManager
를 초기화할 때initializeWithContentPlayhead:adsRenderingSettings:
호출을 통해IMAContentPlayhead
객체가 전달됩니다. AVPlayer를 사용하여 콘텐츠를 표시하는 경우adDisplayContainer
를 만들 때IMAAVPlayerContentPlayhead
의 인스턴스를 SDK에 전달합니다. 이 객체는 콘텐츠 재생 진행률을 추적하여 광고 시간이 Ad Manager에서 지정된 시간에 자동으로 삽입되도록 합니다.
AVPlayer 사용
IMAContentPlayhead *contentPlayhead = [[IMAAVPlayerContentPlayhead alloc] initWithAVPlayer:self.contentAVPlayer]; IMAAdsRequest *request = [[IMAAdsRequest alloc] initWithAdTagUrl:adTagUrl adDisplayContainer:adDisplayContainer contentPlayhead:contentPlayhead userContext:nil];
AVPlayer를 사용하지 않는 경우:
IMAContentPlayhead
인터페이스를 구현합니다.currentTime
를 구현하여 동영상 플레이어의 현재 시간을 반환합니다.initializeWithContentPlayhead:self
를 사용하도록IMAAdsManager
초기화 호출을 변경합니다.
- 광고 시간이 재생될 때 콘텐츠를 일시중지하고 재개하는 데 IMAAdsManagerDelegate가 사용됩니다.
참고: 콘텐츠 재생이 완료되었거나 사용자가 재생을 중지했다면 IMAAdsLoader
에서 contentComplete
를 호출하여 콘텐츠 재생을 완료했음을 SDK에 알려야 합니다. 그러면 SDK는 포스트롤 광고 시점이 예약된 경우 이를 재생합니다.
ALL_ADS_COMPLETED
이벤트는 모든 광고 시점이 재생되면 발생합니다. 또한 콘텐츠 추적은 IMAAdsManager
의 initializeWithContentPlayhead:adsRenderingSettings
메서드가 호출되면 시작되므로 콘텐츠를 재생하기 전에 항상 initializeWithContentPlayhead:adsRenderingSettings
를 호출해야 합니다.