Migration vers le plugin IMA 8.0.0 de Brightcove

Dans cette rubrique, vous apprendrez à migrer votre application pour utiliser le plugin IMA de Brightcove pour le SDK natif d'Android 8.0.0.

Aperçu

Le SDK natif de Brightcove pour Android 8.0.0 ou ultérieur prend en charge la version 3.27.1 du SDK IMA de Google. Si vous utilisez la publicité IMA, il y a quelques points à connaître pour utiliser cette version du plugin IMA. Ils comprennent les éléments suivants :

Modifications apportées au SDK IMA de Google

Le SDK natif de Brightcove a mis à jour le SDK Google IMA de la version 3.11.2 à la version 3.27.1. Les changements les plus pertinents incluent :

  • SdkFactory.createAdDisplayContainer() est obsolète
  • AdDisplayContainer.setPlayer(VideoAdPlayer) est obsolète
  • AdDisplayContainer.setAdContainer(ViewGroup) est obsolète
  • AdsRequest.setAdDisplayContainer(AdDisplayContainer) est retiré

Pour la version complète, voir le Historique des versions du SDK Google IMA Android document.

Changements dans le plugin Brightcove IMA

Le plugin Brightcove IMA a apporté plusieurs modifications pour être entièrement compatible avec la nouvelle version du SDK Google IMA. Il s'agit notamment de :

Utilisation de GoogleIMAComponent Builder

Nous vous recommandons d'utiliser le Builder pour créer le GoogleIMAComponent exemple. Cela facilite la configuration du GoogleIMAComponent.

googleIMAComponent = new GoogleIMAComponent.Builder(brightcoveVideoView, eventEmitter)
  .setUseAdRules(true)
  .setImaSdkSettings(customIMASDKSettings)
  .setAdsRenderingSettings(customAdsRenderingSettings)
  .setAdDisplayContainerFactory(customAdDisplayContainerFactory)
  .build();
}

Création de l'AdDisplayContainer

Parce que le SDK Google IMA a été supprimé AdsRequest.setAdDisplayContainer(...) , le plugin Brightcove IMA le crée maintenant automatiquement, en utilisant le GoogleIMAVideoAdPlayer et le BaseVideoView.

Le plugin nécessite un AdDisplayContainerFactory pour créer le 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();
}

Sous le capot, le plugin utilise le DefaultAdDisplayContainerFactory , un AdDisplayContainerFactory , pour créer le AdDisplayContainer. Les getViewContainer() renvoie le BaseVideoView passé dans son constructeur, et le createAdDisplayContainer la méthode renvoie :

ImaSdkFactory.createAdDisplayContainer(getViewContainer(), googleIMAVideoAdPlayer);

Ajoutez votre AdDisplayContainerFactory

Si vous avez besoin d'une implémentation différente, vous devez passer votre propre AdDisplayContainerFactory à la GoogleIMAComponent Constructeur:

googleIMAComponent = new GoogleIMAComponent.Builder(brightcoveVideoView, eventEmitter)
  .setAdDisplayContainerFactory(customAdDisplayContainerFactory)
  .build();

Si vous souhaitez diffuser les annonces dans une vue différente de celle de BaseVideoView , vous pouvez fournir le DefaultAdDisplayContainerFactory avec votre ViewGroup.

googleIMAComponent = new GoogleIMAComponent.Builder(brightcoveVideoView, eventEmitter)
  .setAdDisplayContainerFactory(new DefaultAdDisplayContainerFactory(myViewGroup))
  .build();

Méthodes obsolètes dans GoogleIMAVideoAdPlayer

Les méthodes suivantes sont déconseillées dans le GoogleIMAVideoAdPlayer classer:

Méthode déconseillée Utiliser à la place
playAd() playAd(AdMediaInfo)
loadAd(String) loadAd(AdMediaInfo, AdPodInfo)
stopAd() stopAd(AdMediaInfo)
resumeAd() playAd(AdMediaInfo)
pauseAd() pauseAd(AdMediaInfo)

Notez que les méthodes de remplacement nécessitent maintenant AdMediaInfo. Vous pouvez récupérer le courant AdMediaInfo objet en appelant GoogleIMAVideoAdPlayer.getCurrentAdMediaInfo(). Cela renverra le chargé AdMediaInfo , ou Null.

Migration vers le plugin IMA 8.0.0

Pour migrer vers le plugin IMA 8.0.0 de Brightcove, procédez comme suit :

Mettre à jour les versions des dépendances

Mettez à jour votre application pour utiliser les versions de dépendance suivantes :

  • Toutes les dépendances du SDK de Brightcove sont définies sur la version 8.0.0
  • Utiliser la version 3.27.1 du SDK IMA de Google

Voici un exemple de build.gradle déposer:

//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"
 ...
}

Supprimer les méthodes obsolètes

Votre configuration Google IMA actuelle peut ressembler à ceci :

AdDisplayContainer container = sdkFactory.createAdDisplayContainer();
container.setPlayer(googleIMAComponent.getVideoAdPlayer());
container.setAdContainer(brightcoveVideoView);

Ces trois méthodes sont obsolètes et disparaîtront.

Vous devez maintenant appeler googleIMAComponent.getAdDisplayContainer() et il retournera le AdDisplayContainer associé à la GoogleIMAVideoAdPlayer , ou null s'il n'est pas disponible.

Pour plus de détails sur la création du AdDisplayContainer , voir le Création de l'AdDisplayContainer section.

La méthode suivante a également été supprimée du SDK Google IMA :

adsRequest.setAdDisplayContainer(container);

Utilisez plutôt le AdDisplayContainer pour créer une instance de l'IMA Google AdsLoader.

Pour plus d'informations sur les méthodes dépréciées et leurs remplacements, consultez le Méthodes obsolètes dans GoogleIMAVideoAdPlayer section.

Plus d'information

Pour plus de détails sur les modifications IMA, consultez le Historique des versions du SDK Google IMA Android Documentation.