Prerequisites
- ネイティブ広告フォーマットを組み込みます。
メディア コンテンツ
ネイティブ広告 では、メディア コンテンツ(動画または画像など)に関する情報の取得に使用するMediaContent
オブジェクトにアクセスできます。また、動画広告の再生を制御し、再生イベントをリッスンするためにも使用されます。MediaContent
オブジェクトを取得するには、NativeAd.getMediaContent()
を呼び出します。
MediaContent
オブジェクトには、動画のアスペクト比や再生時間などの情報が含まれます。次のスニペットは、ネイティブ広告のアスペクト比と再生時間を取得する方法を示しています。
Java
if (myNativeAd.getMediaContent().hasVideoContent()) { float mediaAspectRatio = myNativeAd.getMediaContent().getAspectRatio(); float duration = myNativeAd.getMediaContent().getDuration(); ... }
Kotlin
if (myNativeAd.getMediaContent().hasVideoContent()) { val mediaAspectRatio: Float = myNativeAd.getMediaContent().getAspectRatio() val duration: Float = myNativeAd.getMediaContent().getDuration() ... }
動画オプション
VideoOptions
クラスを使用すると、ネイティブ動画アセットの動作をアプリで設定できます。VideoOptions
オブジェクトは、AdLoader
の作成時に使用する NativeAdOptions
オブジェクトに割り当てる必要があります。
Java
VideoOptions videoOptions = new VideoOptions.Builder() .setStartMuted(false) .build(); NativeAdOptions adOptions = new NativeAdOptions.Builder() .setVideoOptions(videoOptions) .build(); AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") .forNativeAd( ... ) .withNativeAdOptions(adOptions) .build();
Kotlin
val videoOptions = VideoOptions.Builder() .setStartMuted(false) .build() val adOptions = NativeAdOptions.Builder() .setVideoOptions(videoOptions) .build() val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") .forNativeAd( ... ) .withNativeAdOptions(adOptions) .build()
動画イベントのコールバック
特定の動画イベントを処理するには、VideoLifecycleCallbacks
抽象クラスを拡張するクラスを作成し、VideoController
で setVideoLifecycleCallbacks()
を呼び出します。次に、必要なコールバックのみをオーバーライドします。
Java
myNativeAd.getMediaContent().getVideoController() .setVideoLifecycleCallbacks(new VideoLifecycleCallbacks() { /** Called when video playback first begins. */ @Override public void onVideoStart() { // Do something when the video starts the first time. Log.d("MyApp", "Video Started"); } /** Called when video playback is playing. */ @Override public void onVideoPlay() { // Do something when the video plays. Log.d("MyApp", "Video Played"); } /** Called when video playback is paused. */ @Override public void onVideoPause() { // Do something when the video pauses. Log.d("MyApp", "Video Paused"); } /** Called when video playback finishes playing. */ @Override public void onVideoEnd() { // Do something when the video ends. Log.d("MyApp", "Video Ended"); } /** Called when the video changes mute state. */ @Override public void onVideoMute(boolean isMuted) { // Do something when the video is muted. Log.d("MyApp", "Video Muted"); } });
Kotlin
myNativeAd.getMediaContent().getVideoController().setVideoLifecycleCallbacks { /** Called when video playback first begins. */ override fun onVideoStart() { // Do something when the video starts the first time. Log.d("MyApp", "Video Started") } /** Called when video playback is playing. */ override fun onVideoPlay() { // Do something when the video plays. Log.d("MyApp", "Video Played") } /** Called when video playback is paused. */ override fun onVideoPause() { // Do something when the video pauses. Log.d("MyApp", "Video Paused") } /** Called when video playback finishes playing. */ override fun onVideoEnd() { // Do something when the video ends. Log.d("MyApp", "Video Ended") } /** Called when the video changes mute state. */ override fun onVideoMute(boolean isMuted) { // Do something when the video is muted. Log.d("MyApp", "Video Muted") } }