概覽
伺服器端廣告插入 (SSAI) 可讓您將廣告內嵌到影片中,如此一來,瀏覽器中的廣告封鎖程式就無法封鎖廣告。動態投放是下一代的攝取和傳送系統,可減少您的存儲空間並動態打包媒體。了解更多有關使用的信息動態投放為您的視頻。
SSAI 同時適用於 DRM 和非 DRM 內容。
您從 Video Cloud 擷取的任何影片,而且已透過動態傳遞內嵌的影片,都會在您的廣告設定中包含 VMAP 檔案中指定的廣告。
要使用存儲在Video Cloud中的視頻內容播放服務器端廣告,請按照以下步驟操作:
建立廣告組態
廣告配置定義了SSAI播放的各個方面,包括指向您的視頻多個廣告播放列表(VMAP)文件的URL,信標和其他配置。若要建立廣告設定,請依照下列步驟執行:
-
在視頻雲工作室,展開管理菜單,然後選擇服務器端廣告設置。
-
為您的廣告設定新增資訊,然後選取 [ 儲存 ]。
如需詳細資訊,請參閱設定伺服器端廣告設定文件。
若要使用 SSAI API 建立廣告設定,請參閱視訊雲端 SSAI 配置 API 文件。
安卓實作
請依照下列步驟在您的應用程式中取得廣告設定並播放影片:
- 在Android Studio中,打開您的MainActivity.java文件。
- 添加以下導入語句:
import com.brightcove.ssai.SSAIComponent; import com.brightcove.player.network.HttpRequestConfig;
- 為您的帳戶 ID、政策金鑰、影片 ID 和廣告組態 ID 定義常數。
private String accountId = "your account id"; private String policyKey = "your policy key"; private String videoId = "your video id"; private String adConfigId = "your ad configuration id";
- 創建目錄服務的實例,該實例提供了用於從Playback API檢索數據的異步方法。創建SSAI組件的實例。
Catalog catalog = new Catalog(eventEmitter, myAccountId, myPolicyKey); SSAIComponent plugin = new SSAIComponent(appContext, getBrightcoveVideoView());
- 將adConfigId設置為URL參數。
HttpRequestConfig httpRequestConfig = new HttpRequestConfig.Builder() .addQueryParameter("ad_config_id", myAdConfig) .build();
- 調用目錄服務以從Playback API檢索視頻以及廣告配置。使用您指定的廣告開始播放影片。
catalog.findVideoByID(myVideoId, httpRequestConfig, new VideoListener() { @Override public void onVideo(Video video) { // Process the Video plugin.processVideo(video); } });
字幕
活動
有關與服務器端廣告插入關聯的事件的詳細信息,請參閱以下內容:
搜尋沒有廣告
如果您想要在使用者透過影片搜尋時停用廣告播放功能,請參閱 Seek (不含廣告程式碼片段)。
程式碼範例
這是一個完整的代碼示例:
iOS 實作
請依照下列步驟在您的應用程式中取得廣告設定並播放影片:
- 在Xcode中,打開ViewController.m文件。
- 導入iOS的SSAI插件。
import BrightcoveSSAI
- 為您的帳戶 ID、政策金鑰、影片 ID 和廣告組態 ID 定義常數。
struct Constants { static let AccountID = "your account id" static let PlaybackServicePolicyKey = "your policy key" static let VideoId = "your video id" static let AdConfigId = "your ad configuration id" }
- 定義
BCOVPlaybackService
類,提供用於從Playback API檢索數據的異步方法。private lazy var playbackService: BCOVPlaybackService = { let factory = BCOVPlaybackServiceRequestFactory(accountId: Constants.AccountID, policyKey: Constants.PlaybackServicePolicyKey, baseURLStr: "https://edge.api.brightcove.com/playback/v1") return BCOVPlaybackService(requestFactory: factory) }()
- 將查詢參數值設置為您的廣告配置ID。
let queryParameters = [kBCOVPlaybackServiceParamaterKeyAdConfigId: Constants.AdConfigId]
-
致電
playbackService
從Playback API檢索視頻以及廣告配置。使用您指定的廣告開始播放影片。playbackService.findVideo(withVideoID: Constants.VideoId, parameters: queryParameters) { [weak self] (video: BCOVVideo?, jsonResponse: [AnyHashable: Any]?, error: Error?) -> Void in guard let _video = video else { print("ViewController Debug - Error retrieving video: \(error?.localizedDescription ?? "unknown error")") return } self?.playbackController?.setVideos([_video] as NSFastEnumeration) }
活動
有關與服務器端廣告插入關聯的事件的詳細信息,請參閱以下內容:
搜尋沒有廣告
如果您想在用戶搜索視頻時禁用廣告播放,請參閱尋求無廣告 SDK參考部分。
程式碼範例
這是一個完整的代碼示例:
相關主題
如需詳細資訊,請參閱下列內容:
tvOS實施
使用適用於tvOS的Native SDK實施SSAI的代碼與iOS實施以上。
活動
有關與服務器端廣告插入關聯的事件的詳細信息,請參閱以下內容:
程式碼範例
這是一個完整的代碼示例: