광고 규칙

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를 사용하지 않는 경우:

    1. IMAContentPlayhead 인터페이스를 구현합니다.
    2. currentTime를 구현하여 동영상 플레이어의 현재 시간을 반환합니다.
    3. initializeWithContentPlayhead:self를 사용하도록 IMAAdsManager 초기화 호출을 변경합니다.
  • 광고 시간이 재생될 때 콘텐츠를 일시중지하고 재개하는 데 IMAAdsManagerDelegate가 사용됩니다.

참고: 콘텐츠 재생이 완료되었거나 사용자가 재생을 중지했다면 IMAAdsLoader에서 contentComplete를 호출하여 콘텐츠 재생을 완료했음을 SDK에 알려야 합니다. 그러면 SDK는 포스트롤 광고 시점이 예약된 경우 이를 재생합니다. ALL_ADS_COMPLETED 이벤트는 모든 광고 시점이 재생되면 발생합니다. 또한 콘텐츠 추적은 IMAAdsManagerinitializeWithContentPlayhead:adsRenderingSettings 메서드가 호출되면 시작되므로 콘텐츠를 재생하기 전에 항상 initializeWithContentPlayhead:adsRenderingSettings를 호출해야 합니다.