Migración al complemento IMA 8.0.0 de Brightcove

En este tema, aprenderá cómo migrar su aplicación para usar el complemento IMA de Brightcove para Native SDK para Android 8.0.0.

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

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.