概覽
適用於 Android 8.0.0 或更高版本的 Brightcove Native SDK 支持 Google IMA SDK 版本 3.27.1。如果您使用的是IMA廣告,使用此版本的IMA插件需要注意一些事項。其中包括:
Google IMA SDK中的更改
Brightcove Native SDK 將 Google IMA SDK 從版本 3.11.2 更新到版本 3.27.1。最相關的更改包括:
-
SdkFactory.createAdDisplayContainer()
已被棄用 -
AdDisplayContainer.setPlayer(VideoAdPlayer)
已被棄用 -
AdDisplayContainer.setAdContainer(ViewGroup)
已被棄用 -
AdsRequest.setAdDisplayContainer(AdDisplayContainer)
已移除
有關完整版本,請參閱Google IMA Android SDK發行記錄文件。
Brightcove IMA插件中的更改
Brightcove IMA插件進行了一些更改,以與新的Google IMA SDK版本完全兼容。它們包括:
使用GoogleIMAComponent Builder
我們建議您使用構建器來創建GoogleIMAComponent
實例。這樣可以更輕鬆地配置GoogleIMAComponent
。
googleIMAComponent = new GoogleIMAComponent.Builder(brightcoveVideoView, eventEmitter)
.setUseAdRules(true)
.setImaSdkSettings(customIMASDKSettings)
.setAdsRenderingSettings(customAdsRenderingSettings)
.setAdDisplayContainerFactory(customAdDisplayContainerFactory)
.build();
}
創建AdDisplayContainer
由於Google IMA SDK已刪除AdsRequest.setAdDisplayContainer(...)
,Brightcove IMA插件現在可以使用GoogleIMAVideoAdPlayer
和BaseVideoView
。
該插件需要一個AdDisplayContainerFactory
創建AdDisplayContainer
。
public interface AdDisplayContainerFactory {
/**
* Creates the AdDisplayContainer with the provided GoogleIMAVideoAdPlayer
* and the ViewGroup retrieved with getViewContainer()
*
* @param googleIMAVideoAdPlayer the Brightcove Ad Player for Google IMA
*/
AdDisplayContainer createAdDisplayContainer(GoogleIMAVideoAdPlayer googleIMAVideoAdPlayer);
/**
* Returns the ViewGroup container used for both,
* the creation of the GoogleIMAVideoAdPlayer and the AdDisplayContainer
*/
ViewGroup getViewContainer();
}
在幕後,該插件使用DefaultAdDisplayContainerFactory
,AdDisplayContainerFactory
,以創建AdDisplayContainer
。的getViewContainer()
返回BaseVideoView
傳入其構造函數,並且createAdDisplayContainer
方法返回:
ImaSdkFactory.createAdDisplayContainer(getViewContainer(), googleIMAVideoAdPlayer);
添加您的AdDisplayContainerFactory
如果需要其他實現,則必須傳遞自己的實現AdDisplayContainerFactory
到GoogleIMAComponent
建造者:
googleIMAComponent = new GoogleIMAComponent.Builder(brightcoveVideoView, eventEmitter)
.setAdDisplayContainerFactory(customAdDisplayContainerFactory)
.build();
如果您想以其他視圖播放廣告,BaseVideoView
,您可以提供DefaultAdDisplayContainerFactory
和你的ViewGroup
。
googleIMAComponent = new GoogleIMAComponent.Builder(brightcoveVideoView, eventEmitter)
.setAdDisplayContainerFactory(new DefaultAdDisplayContainerFactory(myViewGroup))
.build();
GoogleIMAVideoAdPlayer中不推薦使用的方法
以下方法已棄用GoogleIMAVideoAdPlayer
類:
不推薦使用的方法 | 改用 |
---|---|
playAd() |
playAd(AdMediaInfo) |
loadAd(String) |
loadAd(AdMediaInfo, AdPodInfo) |
stopAd() |
stopAd(AdMediaInfo) |
resumeAd() |
playAd(AdMediaInfo) |
pauseAd() |
pauseAd(AdMediaInfo) |
請注意,現在更換方法需要AdMediaInfo
。您可以檢索當前AdMediaInfo
通過調用對象GoogleIMAVideoAdPlayer.getCurrentAdMediaInfo()
。這將返回已加載的AdMediaInfo
, 要么Null
。
遷移到 IMA 插件 8.0.0
要遷移到 Brightcove IMA 插件 8.0.0,請執行以下步驟:
更新依賴版本
更新您的應用程序以使用以下依賴項版本:
- 所有 Brightcove SDK 依賴項都設置為版本 8.0.0
- 使用 Google IMA SDK 版本 3.27.1
這是一個例子build.gradle文件:
//build.gradle
dependencies {
//Brightcove SDK dependencies
implementation "com.brightcove.player:android-sdk8.0.0:"
implementation "com.brightcove.player:exoplayer2:8.0.0"
implementation "com.brightcove.player:android-ima-plugin:8.0.0"
//Google IMA SDK
implementation "com.google.ads.interactivemedia.v3:interactivemedia:3.27.1"
...
}
刪除不推薦使用的方法
您當前的Google IMA設置可能與此類似:
AdDisplayContainer container = sdkFactory.createAdDisplayContainer();
container.setPlayer(googleIMAComponent.getVideoAdPlayer());
container.setAdContainer(brightcoveVideoView);
這三種方法已被棄用,並且將消失。
您現在必須打電話googleIMAComponent.getAdDisplayContainer()
它將返回AdDisplayContainer
與GoogleIMAVideoAdPlayer
,如果不可用,則返回null。
有關創建AdDisplayContainer
,請參閱創建AdDisplayContainer部分。
以下方法也已從Google IMA SDK中刪除:
adsRequest.setAdDisplayContainer(container);
而是使用AdDisplayContainer
創建Google IMA的實例AdsLoader
。
有關不推薦使用的方法及其替代方法的詳細信息,請參見GoogleIMAVideoAdPlayer中不推薦使用的方法部分。
更多資訊
有關IMA更改的更多詳細信息,請參見Google IMA Android SDK發行記錄文檔。