Linear Channels / FAST
Methods
FlowerAdsManager.changeChannelUrl
The function above allows you to dynamically change the stream URL of a live broadcast. The parameters are described below:
| Parameter | Type | Description |
|---|---|---|
| videoUrl | string | Original playback URL |
| adTagUrl | string | Ad tag URL issued by an ad server |
| channelId | string | Channel ID Channel IDs must be registered in the FLOWER backend system |
| extraParams | map | Extra information which is agreed upon for targeting (null for no extra information) |
| mediaPlayerHook | MediaPlayerHook | An object implementing an interface that returns a video player |
| adTagHeaders | map | (Optional) HTTP header information to be added when requesting an ad |
| channelStreamHeaders | map | (Optional) HTTP header information to be added when requesting the original media stream |
| prerollAdTagUrl | string | (Optional) Ad tag URL issued by the ad server for pre-roll ads |
FlowerAdsManager.changeChannelExtraParams
This function above allows you to change extraParams, which is additional targeting information, during a live broadcast. The parameter is described below:
| Parameter | Type | Description |
|---|---|---|
| extraParams | map | Additional targeting information agreed upon beforehand |
FlowerAdsManager.stop
This method stops the playback of linear channels. There are no parameters.
Work Process
- Insert replacement ads at a correct timing, consulting “Ad UI Declaration”
- If you need additional processing during ad playback, you can listen for events corresponding to ad playbacks or finishes by implementing the FlowerAdsManagerListener interface.
- Finally, change the original streaming URL by using FlowerAdsManager.changeChannelUrl and then send it to the player.
- (Optional) If targeting information changes during streaming, update the SDK with the new information using FlowerAdsManager.changeChannelExtraParams.
Java
private void playLinearTv() {
// 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
String changedChannelUrl = flowerAdView.getAdsManager().changeChannelUrl(
"https://XXX",
"https://ad_request",
"100",
createMap("custom-param", "custom-param-value"),
mediaPlayerHook,
createMap("custom-ad-header", "custom-ad-header-value"),
createMap("custom-stream-header", "custom-stream-header-value"),
"https://ad_request?target=preroll"
);
player.setMediaItem(MediaItem.fromUri(changedChannelUrl));
}
// TODO GUIDE: change extraParams during stream playback
public void onStreamProgramChanged(String targetingInfo) {
flowerAdView.getAdsManager().changeChannelExtraParams(createMap("myTargetingKey", targetingInfo));
}
private Map<String, String> createMap(String key, String value) {
Map<String, String> map = new HashMap<>();
map.put(key, value);
return map;
}
Kotlin
private fun playLinearTv() {
// 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
val changedChannelUrl = flowerAdView.adsManager.changeChannelUrl(
"https://XXX",
"https://ad_request",
"100",
mapOf("custom-param" to "custom-param-value"),
mediaPlayerHook,
mapOf("custom-ad-header" to "custom-ad-header-value"),
mapOf("custom-stream-header" to "custom-stream-header-value"),
"https://preroll_ad_request"
)
player.setMediaItem(MediaItem.fromUri(changedChannelUrl))
}
// TODO GUIDE: change extraParams during stream playback
fun onStreamProgramChanged(targetingInfo: String) {
flowerAdView.adsManager.changeChannelExtraParams(mapOf("myTargetingKey" to targetingInfo))
}