본문으로 건너뛰기

실시간 채널 / FAST

Methods

FlowerAdsManager.changeChannelUrl

실시간 방송의 스트림 URL을 동적으로 변경할 수 있는 함수입니다. 매개변수는 아래와 같습니다.

ParameterTypeDescription
videoUrlstring원본 재생 URL
adTagUrlstring광고 서버에서 발급된 광고 태그 URL
channelIdstring채널의 고유 아이디
Flower 백엔드 시스템에 등록되어야 함
extraParamsmap타겟팅을 위해 사전 협의된 추가 정보(없을 경우 null)
mediaPlayerHookMediaPlayerHook비디오 플레이어를 반환하는 인터페이스 구현 객체
adTagHeadersmap(Optional) 광고 요청 시 추가할 HTTP 헤더 정보
channelStreamHeadersmap(Optional) 원본 스트림 요청 시 추가할 HTTP 헤더 정보
prerollAdTagUrlstring(Optional) 광고 서버에서 발급된 프리롤용 광고 태그 URL

FlowerAdsManager.changeChannelExtraParams

추가 타겟팅 정보인 extraParams를 실시간 방송 도중에 변경할 수 있는 함수입니다. 매개변수는 아래와 같습니다.

ParameterTypeDescription
extraParamsmap타겟팅을 위해 사전 협의된 추가 정보

FlowerAdsManager.stop

실시간 채널 재생을 중단하는 메서드입니다. 매개변수는 없습니다.

작업 순서

  1. '광고 UI 선언'을 참고하여 적절한 위치에 대체 광고를 삽입합니다.
  2. 광고 재생 중 별도 처리가 필요한 경우 FlowerAdsManagerListener 인터페이스를 구현하면 광고 재생 또는 종료에 대한 이벤트를 수신할 수 있습니다.
  3. 마지막으로 FlowerAdsManager._changeChannelUrl_을 통해 원본 스트리밍 URL을 변경한 후 플레이어에 전달합니다.
  4. (선택) 스트림 도중 타겟팅 정보가 변경되었다면 FlowerAdsManager.changeChannelExtraParams을 통해 새로운 타겟팅 정보를 SDK에 전달합니다.
// TODO GUIDE: change original LinearTV stream url by adView.adsManager.changeChannelUrl
// arg0: videoUrl, original LinearTV stream url
// arg1: adTagUrl, url from flower system
// You must file a request to Anypoint Media to receive a adTagUrl.
// arg2: channelId, unique channel id in your service
// arg3: extraParams, values you can provide for targeting
// arg4: mediaPlayerHook, interface that provides currently playing segment information for ad tracking
// arg5: adTagHeaders, (Optional) values included in headers for ad request
// arg6: channelStreamHeaders, (Optional) values included in headers for channel stream request
let changedChannelUrl = flowerAdView.adsManager.changeChannelUrl(
videoUrl: "https://XXX",
adTagUrl: "https://ad_request",
channelId: "100",
extraParams: nil,
mediaPlayerHook: mediaPlayerHook,
adTagHeaders: ["custom-ad-header": "custom-ad-header-value"],
channelStreamHeaders: ["custom-stream-header": "custom-stream-header-value"],
prerollAdTagUrl: "https://preroll_ad_request"
)
player.insert(AVPlayerItem(url: URL(string: changedChannelUrl)!), after: nil)
...
// TODO GUIDE: change extraParams during stream playback
func onStreamProgramChanged(targetingInfo: String) {
flowerAdView?.adsManager.changeChannelExtraParams(extraParams: ["myTargetingKey": targetingInfo]);
}