使用原生 SDK 實作伺服器端廣告

在本主題中,您將學習如何使用 Brightcove 原生播放程式 SDK 播放伺服器端廣告,從攝入動態傳遞的影片中進行播放。

概覽

伺服器端廣告插入 (SSAI) 可讓您將廣告內嵌到影片中,如此一來,瀏覽器中的廣告封鎖程式就無法封鎖廣告。動態投放是下一代的攝取和傳送系統,可減少您的存儲空間並動態打包媒體。了解更多有關使用的信息動態投放為您的視頻。

SSAI 同時適用於 DRM 和非 DRM 內容。

您從 Video Cloud 擷取的任何影片,而且已透過動態傳遞內嵌的影片,都會在您的廣告設定中包含 VMAP 檔案中指定的廣告。

伺服器端廣告
伺服器端廣告

要使用存儲在Video Cloud中的視頻內容播放服務器端廣告,請按照以下步驟操作:

  1. 建立廣告組態
  2. 建置您的應用程式:

  3. 播放帶有廣告的視頻

建立廣告組態

廣告配置定義了SSAI播放的各個方面,包括指向您的視頻多個廣告播放列表(VMAP)文件的URL,信標和其他配置。若要建立廣告設定,請依照下列步驟執行:

  1. 在視頻雲工作室,展開理菜單,然後選擇服務器端廣告設置

    廣告設定管理員
    廣告設定管理員
  2. 為您的廣告設定新增資訊,然後選取 [ 儲存 ]。

    廣告設定
    廣告設定

如需詳細資訊,請參閱設定伺服器端廣告設定文件。

若要使用 SSAI API 建立廣告設定,請參閱視訊雲端 SSAI 配置 API 文件。

安卓實作

請依照下列步驟在您的應用程式中取得廣告設定並播放影片:

  1. 在Android Studio中,打開您的MainActivity.java文件。
  2. 添加以下導入語句:
    import com.brightcove.ssai.SSAIComponent;
    import com.brightcove.player.network.HttpRequestConfig;
  3. 為您的帳戶 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";
  4. 創建目錄服務的實例,該實例提供了用於從Playback API檢索數據的異步方法。創建SSAI組件的實例。
    Catalog catalog = new Catalog(eventEmitter, myAccountId, myPolicyKey);
    SSAIComponent plugin = new SSAIComponent(appContext, getBrightcoveVideoView());
    
  5. 將adConfigId設置為URL參數。
    HttpRequestConfig httpRequestConfig = new HttpRequestConfig.Builder()
      .addQueryParameter("ad_config_id", myAdConfig)
      .build();
  6. 調用目錄服務以從Playback API檢索視頻以及廣告配置。使用您指定的廣告開始播放影片。
    catalog.findVideoByID(myVideoId, httpRequestConfig, new VideoListener() {
        @Override
        public void onVideo(Video video) {
    
        // Process the Video
        plugin.processVideo(video);
      }
    });

字幕

活動

有關與服務器端廣告插入關聯的事件的詳細信息,請參閱以下內容:

搜尋沒有廣告

如果您想要在使用者透過影片搜尋時停用廣告播放功能,請參閱 Seek (不含廣告程式碼片段)。

程式碼範例

這是一個完整的代碼示例:

iOS 實作

請依照下列步驟在您的應用程式中取得廣告設定並播放影片:

  1. 在Xcode中,打開ViewController.m文件。
  2. 導入iOS的SSAI插件。
    import BrightcoveSSAI
  3. 為您的帳戶 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"
    }
  4. 定義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)
    }()
  5. 將查詢參數值設置為您的廣告配置ID。
    let queryParameters = [kBCOVPlaybackServiceParamaterKeyAdConfigId: Constants.AdConfigId]
  6. 致電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實施以上。

活動

有關與服務器端廣告插入關聯的事件的詳細信息,請參閱以下內容:

程式碼範例

這是一個完整的代碼示例: