Menggunakan IMA SDK untuk Android dengan Android TV

Kami merekomendasikan beberapa praktik terbaik untuk memastikan aplikasi Anda berfungsi dengan baik di Android TV saat menggunakan IMA SDK untuk Android.

Mulailah dengan memahami mengembangkan aplikasi TV untuk Android. Secara khusus, pastikan Aktivitas disiapkan untuk TV seperti yang dijelaskan dalam panduan memulai. Anda juga ingin menangani navigasi TV untuk memastikan pengguna dapat menggunakan aplikasi Anda dengan baik di Android TV.

Menangani iklan yang dapat dilewati

SDK mengoptimalkan format yang dapat dilewati untuk perangkat yang mirip TV, misalnya dengan menghapus kemampuan untuk berinteraksi dengan tombol Pelajari Lebih Lanjut. Secara default, kumpulan SDK berfokus pada tombol lewati saat opsi lewati tersedia sehingga iklan dapat dilewati di Android TV. Oleh karena itu, Anda tidak perlu melakukan tindakan tambahan untuk mendukung iklan yang dapat dilewati.

Anda dapat mengonfigurasinya dengan memanggil AdsRenderingSettings.setFocusSkipButtonWhenAvailable().

Untuk mengetahui informasi selengkapnya tentang iklan yang didukung, lihat matriks kompatibilitas.

Menangani gambar penggantian ikon VAST

IMA SDK mendeteksi, merender, dan menangani interaksi pengguna dengan gambar penggantian ikon VAST. Aplikasi Anda harus memproses peristiwa ICON_TAPPED dan ICON_FALLBACK_IMAGE_CLOSED guna menangani pemutaran iklan untuk iklan yang menggunakan 'Mengapa iklan ini' (WTA).

Menambahkan boolean untuk melacak apakah gambar penggantian ikon VAST ditampilkan. Kemudian, proses ICON_TAPPED dan ICON_FALLBACK_IMAGE_CLOSED untuk menangani pemutaran iklan di sekitar gambar penggantian ikon VAST. Lihat cuplikan kode berikut untuk contoh cara penanganannya di Contoh Lanjutan.

app/src/main/java/com/google/ads/interactivemedia/v3/samples/videoplayerapp/VideoPlayerController.java

// Copyright 2014 Google Inc. All Rights Reserved.

package com.google.ads.interactivemedia.v3.samples.videoplayerapp;

import android.app.UiModeManager;
import android.content.Context;

...

// Tracks if the SDK is playing an ad, since the SDK might not necessarily use
// the video player provided to play the video ad.
private boolean isAdPlaying;

// Tracks whether the SDK has a VAST icon fallback image showing.
private boolean isConnectedTvFallbackImageShowing = false;

// View that handles taps to toggle ad pause/resume during video playback.
private View playPauseToggle;

// View that we can write log messages to, to display in the UI.
private Logger log;

...

    adsManager.addAdEventListener(
        new AdEvent.AdEventListener() {
          /** Responds to AdEvents. */
          @Override
          public void onAdEvent(AdEvent adEvent) {

              ...

              case CONTENT_RESUME_REQUESTED:
                // AdEventType.CONTENT_RESUME_REQUESTED is fired when the ad is
                // completed and you should start playing your content.
                resumeContent();
                break;
              case ICON_TAPPED:
                // The user has tapped a VAST icon fallback image. On Android
                // mobile apps, the SDK will navigate to the landing page. On
                // Connected TV devices, the SDK will present a modal dialog
                // containing the VAST icon fallback image.

                // Check if the app is running on a TV device.
                UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE);
                if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) {
                  isConnectedTvFallbackImageShowing = true;
                }

                // Focus the IMA WebView for easier access to ad UI elements.
                adsManager.focus();
                break;
              case PAUSED:
                if (isConnectedTvFallbackImageShowing) {
                  // Do not show the controls; continue to leave the controls in
                  // the hands of the ads SDK.
                  break;
                }
                isAdPlaying = false;
                videoPlayerWithAdPlayback.enableControls();
                break;
              case ICON_FALLBACK_IMAGE_CLOSED:
                // The user has closed the VAST icon fallback image. This may
                // be a good time to resume ad playback if the user is ready to
                // continue playing the ad. This event only fires for Connected
                // TV devices.


                isConnectedTvFallbackImageShowing = false;
                adsManager.resume();
                break;
              case RESUMED:
                isAdPlaying = true;
                videoPlayerWithAdPlayback.disableControls();
                break;