使用原生 SDK 進行 IMA 開放測量

在本主題中,您將學習如何使用開放度量 SDK 搭配 Brightcove 原生 SDK 的 IMA 外掛程式。

概覽

Brightcove Native SDK現在支持使用開放式測量SDK(OM SDK)。OM SDK與Google IMA集成在一起,可讓您使用第三方工具進行廣告評估和驗證。

Open Measurement SDK將覆蓋廣告媒體元素的所有視圖都視為障礙,並降低了廣告可見度。視頻控件可能被視為“友好的”障礙物,但必須向OM SDK註冊才能將其排除在廣告可見度的衡量範圍之外。

iOS

適用於iOS的Brightcove Native SDK支持使用OM SDK。有關實施第三方廣告評估的更多信息,請參見在iOS的IMA SDK中打開測量文件。

使用者介面覆疊

如果您使用的是覆蓋 IMA 廣告視圖的 UI 控制項元素,那麼您需要將這些項目註冊到 OM SDK。有關詳細信息,請參見註冊廣告疊加層適用於iOS的Native SDK的“參考”部分。

IMA 設定

默認情況下,iOS 的布萊特灣原生 SDK 設置playerTypeplayerVersion屬性具有以下值:

imaSettings.playerType = @"bcov/ios-sdk-player";
imaSettings.playerVersion = [BCOVIMAComponent versionIdentifier];

您可能想要覆寫這些值。一個例子是獲得直接從谷歌 IMA 報告的廣告指標。要使用自己的值,請在imaSettings目的:

imaSettings.playerType = @"your-player-type";
imaSettings.playerVersion = @"your-player-version"

有關將IMA廣告與iOS原生SDK結合使用的代碼詳細信息,請參見BasicIMAPlayer示例

Android

適用於Android的Brightcove本機SDK支持使用OM SDK。有關實施第三方廣告評估的更多信息,請參見適用於Android的IMA SDK中的開放式測量文件。

使用者介面覆疊

如果您使用的是覆蓋 IMA 廣告視圖的 UI 控制項元素,那麼您需要將這些項目註冊到 OM SDK。為此,您的代碼應如下所示:

public class MainActivity extends BrightcovePlayer {
 // ...
 private AdDisplayContainer adDisplayContainer;
 private View adOverlayView;
 // ...

 @Override
 protected void onCreate(Bundle savedInstanceState) {
   // ...
   adOverlayView = findViewById(R.id.ad_overlay);
   setupGoogleIMA();
   // ...
 }

 private void setupGoogleIMA() {
   // Show adOverlayView
   eventEmitter.on(EventType.AD_BREAK_STARTED, (event) ->  {
       adOverlayView.setVisibility(View.VISIBLE);
   });

   // Hide adOverlayView
   eventEmitter.on(EventType.AD_BREAK_COMPLETED, (event) ->  {
       adOverlayView.setVisibility(View.GONE);
   });

   // Create ImaSdkFactory
   final ImaSdkFactory sdkFactory = ImaSdkFactory.getInstance();
   eventEmitter.on(GoogleIMAEventType.ADS_REQUEST_FOR_VIDEO, new EventListener() {
     @Override
     public void processEvent(Event event) {
       // Create a container object to register the friendly obstructions.
       adDisplayContainer = sdkFactory.createAdDisplayContainer();
       adDisplayContainer.registerVideoControlsOverlay(adOverlayView);
       // ...
     }
   });

   eventEmitter.on(EventType.COMPLETED, (event) -> {
     if (adDisplayContainer != null) {
       // Unregister the friendly obstructions
       adDisplayContainer.unregisterAllVideoControlsOverlays();
     }
   });
 }
}

IMA 設定

默認情況下,iOS 的布萊特灣原生 SDK 設置playerTypeplayerVersion屬性具有以下值:

imaSdkSettings.setPlayerType("bcov/and-sdk-player");
imaSdkSettings.setPlayerVersion("<replaced with current sdk version>");

您可能想要覆寫這些值。一個例子是獲得直接從谷歌 IMA 報告的廣告指標。要使用自己的值,請在imaSdkSettings目的:

ImaSdkSettings imaSdkSettings = imaSdkFactory.createImaSdkSettings();
imaSdkSettings.setPlayerType("your-player-type");
imaSdkSettings.setPlayerVersion("your-player-version");
GoogleIMAComponent googleIMAComponent = new GoogleIMAComponent(brightcoveVideoView, eventEmitter, imaSdkSettings);

有關將IMA廣告與Android原生SDK結合使用的代碼詳細信息,請參見AdRulesIMASampleApp示例