Brightcove의 IMA 플러그인 8.0.0으로 마이그레이션

이 항목에서는 Android 8.0.0용 Native SDK용 Brightcove의 IMA 플러그인을 사용하도록 앱을 마이그레이션하는 방법을 알아봅니다.

개요

Android 8.0.0 이상용 Brightcove Native SDK는 Google IMA SDK 버전 3.27.1을 지원합니다. IMA 광고를 사용하는 경우이 버전의 IMA 플러그인을 사용하기 위해 알아야 할 몇 가지 사항이 있습니다. 여기에는 다음이 포함됩니다.

Google IMA SDK의 변경 사항

Brightcove Native SDK는 Google IMA SDK를 버전 3.11.2에서 버전 3.27.1로 업데이트했습니다. 가장 관련성이 높은 변경 사항은 다음과 같습니다.

  • SdkFactory.createAdDisplayContainer()는 더 이상 사용되지 않습니다.
  • AdDisplayContainer.setPlayer(VideoAdPlayer)는 더 이상 사용되지 않습니다.
  • AdDisplayContainer.setAdContainer(ViewGroup)는 더 이상 사용되지 않습니다.
  • AdsRequest.setAdDisplayContainer(AdDisplayContainer)가 제거되었습니다.

전체 릴리스에 대해서는 Google IMA Android SDK 출시 내역문서.

Brightcove IMA 플러그인의 변경 사항

Brightcove IMA 플러그인은 새로운 Google IMA SDK 버전과 완전히 호환되도록 몇 가지 변경 사항을 적용했습니다. 여기에는 다음이 포함됩니다.

GoogleIMAComponent Builder 사용

빌더를 사용하여GoogleIMAComponent예. 이렇게하면 구성하기가 더 쉽습니다. GoogleIMAComponent .

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

AdDisplayContainer 만들기

Google IMA SDK가 제거 되었기 때문에AdsRequest.setAdDisplayContainer(...) , Brightcove IMA 플러그인은 이제GoogleIMAVideoAdPlayer그리고BaseVideoView .

플러그인에는AdDisplayContainerFactory만들기 위해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();
}

내부적으로 플러그인은DefaultAdDisplayContainerFactory , AdDisplayContainerFactory , 만들려면AdDisplayContainer . 그만큼getViewContainer()반환BaseVideoView생성자에 전달되고createAdDisplayContainer메서드 반환 :

ImaSdkFactory.createAdDisplayContainer(getViewContainer(), googleIMAVideoAdPlayer);

AdDisplayContainerFactory 추가

다른 구현이 필요한 경우 직접 전달해야합니다. AdDisplayContainerFactory ~로GoogleIMAComponent빌더 :

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

다른보기에서 광고를 재생하려는 경우BaseVideoView , 당신은 제공 할 수 있습니다DefaultAdDisplayContainerFactory너와 함께ViewGroup .

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

GoogleIMAVideoAdPlayer에서 사용되지 않는 메소드

다음 메소드는GoogleIMAVideoAdPlayer수업:

사용되지 않는 방법 대신 사용
playAd() playAd(AdMediaInfo)
loadAd(String) loadAd(AdMediaInfo, AdPodInfo)
stopAd() stopAd(AdMediaInfo)
resumeAd() playAd(AdMediaInfo)
pauseAd() pauseAd(AdMediaInfo)

이제 교체 방법에AdMediaInfo . 당신은 현재를 검색 할 수 있습니다AdMediaInfo호출하여 객체GoogleIMAVideoAdPlayer.getCurrentAdMediaInfo() . 이것은로드 된AdMediaInfo , 또는Null .

IMA 플러그인 8.0.0으로 마이그레이션

Brightcove IMA Plugin 8.0.0으로 마이그레이션하려면 다음 단계를 따르십시오.

종속성 버전 업데이트

다음 종속성 버전을 사용하도록 앱을 업데이트하십시오.

  • 버전 8.0.0으로 설정된 모든 Brightcove SDK 종속성
  • Google IMA SDK 버전 3.27.1 사용

다음은 build.gradle파일:

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

더 이상 사용되지 않는 메서드 제거

현재 Google IMA 설정은 다음과 유사 할 수 있습니다.

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

이 세 가지 방법은 더 이상 사용되지 않으며 사라집니다.

이제 전화해야합니다googleIMAComponent.getAdDisplayContainer()그리고 그것은AdDisplayContainer관련GoogleIMAVideoAdPlayer , 또는 사용할 수없는 경우 null입니다.

만들기에 대한 자세한 내용은AdDisplayContainer , 참조 AdDisplayContainer 만들기부분.

다음 메소드도 Google IMA SDK에서 제거되었습니다.

adsRequest.setAdDisplayContainer(container);

대신AdDisplayContainer Google IMA의 인스턴스를 만들려면AdsLoader .

더 이상 사용되지 않는 메서드 및 대체 방법에 대한 자세한 내용은 GoogleIMAVideoAdPlayer에서 사용되지 않는 메소드부분.

더 많은 정보

IMA 변경에 대한 자세한 내용은 Google IMA Android SDK 출시 내역선적 서류 비치.