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
- Création de l'AdDisplayContainer
- Méthodes obsolètes dans GoogleIMAVideoAdPlayer
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.