Migrieren auf das IMA-Plugin 8.0.0 von Brightcove

In diesem Thema erfahren Sie, wie Sie Ihre App zur Verwendung des IMA-Plugins von Brightcove für das Native SDK für Android 8.0.0 migrieren.

Überblick

Das Brightcove Native SDK für Android 8.0.0 oder höher unterstützt das Google IMA SDK Version 3.27.1. Wenn Sie IMA-Werbung verwenden, müssen Sie einige Dinge beachten, um diese Version des IMA-Plug-ins zu verwenden. Sie umfassen Folgendes:

Änderungen im Google IMA SDK

Das Brightcove Native SDK hat das Google IMA SDK von Version 3.11.2 auf Version 3.27.1 aktualisiert. Zu den wichtigsten Änderungen zählen:

  • SdkFactory.createAdDisplayContainer() ist veraltet
  • AdDisplayContainer.setPlayer(VideoAdPlayer) ist veraltet
  • AdDisplayContainer.setAdContainer(ViewGroup) ist veraltet
  • AdsRequest.setAdDisplayContainer(AdDisplayContainer) ist entfernt

Die vollständige Version finden Sie in der Veröffentlichungsverlauf des Google IMA Android SDK dokumentieren.

Änderungen im Brightcove IMA-Plug-in

Das Brightcove IMA-Plug-in hat mehrere Änderungen vorgenommen, um vollständig mit der neuen Google IMA SDK-Version kompatibel zu sein. Sie beinhalten:

Verwenden des GoogleIMAComponent Builder

Wir empfehlen, den Builder zu verwenden, um die GoogleIMAComponent Beispiel. Dies erleichtert die Konfiguration der GoogleIMAComponent.

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

Erstellen des AdDisplayContainers

Weil das Google IMA SDK entfernt wurde AdsRequest.setAdDisplayContainer(...) erstellt das Brightcove IMA-Plug-in dies jetzt automatisch mithilfe der GoogleIMAVideoAdPlayer und der BaseVideoView.

Das Plugin erfordert eine AdDisplayContainerFactory um die zu erstellen 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();
}

Unter der Haube verwendet das Plugin die DefaultAdDisplayContainerFactory , ein AdDisplayContainerFactory , um die . zu erstellen AdDisplayContainer. Die getViewContainer() gibt die zurück BaseVideoView in seinem Konstruktor übergeben, und die createAdDisplayContainer Methode gibt zurück:

ImaSdkFactory.createAdDisplayContainer(getViewContainer(), googleIMAVideoAdPlayer);

Fügen Sie Ihre AdDisplayContainerFactory hinzu

Wenn Sie eine andere Implementierung benötigen, müssen Sie Ihre eigene bestehen AdDisplayContainerFactory zum GoogleIMAComponent Erbauer:

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

Wenn Sie die Anzeigen in einer anderen Ansicht als der BaseVideoView , können Sie die DefaultAdDisplayContainerFactory mit Ihrem ViewGroup.

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

Veraltete Methoden in GoogleIMAVideoAdPlayer

Die folgenden Methoden sind in der GoogleIMAVideoAdPlayer Klasse:

Veraltete Methode Stattdessen verwenden
playAd() playAd(AdMediaInfo)
loadAd(String) loadAd(AdMediaInfo, AdPodInfo)
stopAd() stopAd(AdMediaInfo)
resumeAd() playAd(AdMediaInfo)
pauseAd() pauseAd(AdMediaInfo)

Beachten Sie, dass die Ersetzungsmethoden jetzt AdMediaInfo. Sie können den aktuellen abrufen AdMediaInfo Objekt durch Aufruf GoogleIMAVideoAdPlayer.getCurrentAdMediaInfo(). Dies gibt das geladene zurück AdMediaInfo , oder Null.

Umstellung auf das IMA-Plugin 8.0.0

Führen Sie die folgenden Schritte aus, um auf das Brightcove IMA-Plugin 8.0.0 zu migrieren:

Abhängigkeitsversionen aktualisieren

Aktualisieren Sie Ihre App, um die folgenden Abhängigkeitsversionen zu verwenden:

  • Alle Brightcove-SDK-Abhängigkeiten wurden auf Version 8.0.0 gesetzt
  • Verwenden Sie Google IMA SDK Version 3.27.1

Hier ist ein Beispiel für die build.gradle Datei:

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

Veraltete Methoden entfernen

Ihr aktuelles Google IMA-Setup könnte etwa so aussehen:

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

Diese drei Methoden sind veraltet und werden eingestellt.

Sie müssen jetzt anrufen googleIMAComponent.getAdDisplayContainer() und es wird die zurückgeben AdDisplayContainer in Verbindung mit GoogleIMAVideoAdPlayer , oder null, wenn nicht verfügbar.

Weitere Informationen zum Erstellen der AdDisplayContainer , siehe die Erstellen des AdDisplayContainers Sektion.

Die folgende Methode wurde auch aus dem Google IMA SDK entfernt:

adsRequest.setAdDisplayContainer(container);

Verwenden Sie stattdessen die AdDisplayContainer um eine Instanz des Google IMA zu erstellen AdsLoader.

Einzelheiten zu veralteten Methoden und deren Ersetzungen finden Sie im Veraltete Methoden in GoogleIMAVideoAdPlayer Sektion.

Mehr Informationen

Weitere Informationen zu IMA-Änderungen finden Sie im Veröffentlichungsverlauf des Google IMA Android SDK Dokumentation.