Resumen
El SDK nativo de Brightcove para Android 8.0.0 o posterior es compatible con la versión 3.27.1 del SDK de IMA de Google. Si está utilizando publicidad IMA, hay algunas cosas que debe tener en cuenta para utilizar esta versión del complemento IMA. Incluyen lo siguiente:
Cambios en el SDK de IMA de Google
El SDK nativo de Brightcove actualizó el SDK de IMA de Google de la versión 3.11.2 a la versión 3.27.1. Los cambios más relevantes incluyen:
-
SdkFactory.createAdDisplayContainer()
es obsoleto -
AdDisplayContainer.setPlayer(VideoAdPlayer)
es obsoleto -
AdDisplayContainer.setAdContainer(ViewGroup)
es obsoleto -
AdsRequest.setAdDisplayContainer(AdDisplayContainer)
es removido
Para obtener el lanzamiento completo, consulte el Historial de versiones del SDK de Android IMA de Google documento.
Cambios en el complemento Brightcove IMA
El complemento Brightcove IMA realizó varios cambios para que sea totalmente compatible con la nueva versión del SDK de IMA de Google. Incluyen:
- Uso de GoogleIMAComponent Builder
- Creación del AdDisplayContainer
- Métodos obsoletos en GoogleIMAVideoAdPlayer
Uso de GoogleIMAComponent Builder
Recomendamos utilizar Builder para crear el GoogleIMAComponent
ejemplo. Esto facilita la configuracin del GoogleIMAComponent
.
googleIMAComponent = new GoogleIMAComponent.Builder(brightcoveVideoView, eventEmitter)
.setUseAdRules(true)
.setImaSdkSettings(customIMASDKSettings)
.setAdsRenderingSettings(customAdsRenderingSettings)
.setAdDisplayContainerFactory(customAdDisplayContainerFactory)
.build();
}
Creación del AdDisplayContainer
Porque se quitó el SDK de IMA de Google AdsRequest.setAdDisplayContainer(...)
, el complemento Brightcove IMA ahora crea esto automáticamente, utilizando el GoogleIMAVideoAdPlayer
y el BaseVideoView
.
El complemento requiere un AdDisplayContainerFactory
para crear el 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();
}
Bajo el capó, el complemento usa el DefaultAdDisplayContainerFactory
, un AdDisplayContainerFactory
, para crear el AdDisplayContainer
. La getViewContainer()
devuelve el BaseVideoView
pasó en su constructor, y el createAdDisplayContainer
devuelve el método:
ImaSdkFactory.createAdDisplayContainer(getViewContainer(), googleIMAVideoAdPlayer);
Agregue su AdDisplayContainerFactory
Si necesita una implementación diferente, debe pasar su propia AdDisplayContainerFactory
hacia GoogleIMAComponent
Constructor:
googleIMAComponent = new GoogleIMAComponent.Builder(brightcoveVideoView, eventEmitter)
.setAdDisplayContainerFactory(customAdDisplayContainerFactory)
.build();
Si desea reproducir los anuncios en una vista diferente a la BaseVideoView
, puede proporcionar el DefaultAdDisplayContainerFactory
con tu ViewGroup
.
googleIMAComponent = new GoogleIMAComponent.Builder(brightcoveVideoView, eventEmitter)
.setAdDisplayContainerFactory(new DefaultAdDisplayContainerFactory(myViewGroup))
.build();
Métodos obsoletos en GoogleIMAVideoAdPlayer
Los siguientes métodos están obsoletos en el GoogleIMAVideoAdPlayer
clase:
Método obsoleto | Utilizar en su lugar |
---|---|
playAd() |
playAd(AdMediaInfo) |
loadAd(String) |
loadAd(AdMediaInfo, AdPodInfo) |
stopAd() |
stopAd(AdMediaInfo) |
resumeAd() |
playAd(AdMediaInfo) |
pauseAd() |
pauseAd(AdMediaInfo) |
Tenga en cuenta que los métodos de reemplazo ahora requieren AdMediaInfo
. Puede recuperar la corriente AdMediaInfo
objeto llamando GoogleIMAVideoAdPlayer.getCurrentAdMediaInfo()
. Esto devolverá el cargado AdMediaInfo
, o Null
.
Migración al complemento IMA 8.0.0
Para migrar al complemento IMA de Brightcove 8.0.0, siga los pasos:
Actualizar versiones de dependencia
Actualice su aplicación para usar las siguientes versiones de dependencia:
- Todas las dependencias del SDK de Brightcove configuradas en la versión 8.0.0
- Utilice la versión 3.27.1 del SDK de IMA de Google
A continuación se muestra un ejemplo de build.gradle expediente:
//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"
...
}
Eliminar métodos obsoletos
Su configuración actual de IMA de Google puede tener un aspecto similar a esto:
AdDisplayContainer container = sdkFactory.createAdDisplayContainer();
container.setPlayer(googleIMAComponent.getVideoAdPlayer());
container.setAdContainer(brightcoveVideoView);
Estos tres métodos están obsoletos y desaparecerán.
Ahora debes llamar googleIMAComponent.getAdDisplayContainer()
y devolverá el AdDisplayContainer
asociado con el GoogleIMAVideoAdPlayer
o nulo si no está disponible.
Para obtener detalles sobre la creación de AdDisplayContainer
, mira el Creación del AdDisplayContainer sección.
El siguiente método también se ha eliminado del SDK de IMA de Google:
adsRequest.setAdDisplayContainer(container);
En su lugar, utilice el AdDisplayContainer
para crear una instancia del IMA de Google AdsLoader
.
Para obtener detalles sobre los métodos obsoletos y sus reemplazos, consulte la Métodos obsoletos en GoogleIMAVideoAdPlayer sección.
Más información
Para obtener más detalles sobre los cambios de IMA, consulte la Historial de versiones del SDK de Android IMA de Google documentación.