Pakiet IMA SDK na Androida z Androidem TV

Zalecamy korzystanie z kilku sprawdzonych metod, aby zapewnić prawidłowe działanie aplikacji na Androidzie TV podczas korzystania z pakietu IMA SDK na Androida.

Zacznij od zapoznania się z informacjami o tworzeniu aplikacji na Androida na Androida. W szczególności upewnij się, że Aktywność jest skonfigurowana pod kątem telewizji zgodnie z instrukcjami podanymi w przewodniku dla początkujących. Warto też zadbać o nawigację po aplikacji, aby użytkownicy mogli bez problemów poruszać się po aplikacji na Androidzie TV.

Obsługa reklam możliwych do pominięcia

Pakiet SDK optymalizuje formaty możliwe do pominięcia na urządzeniach podobnych do telewizora, np. przez wyłączenie możliwości interakcji z przyciskiem Więcej informacji. Gdy pomijanie reklamy jest dostępne, pakiet SDK ustawia zaznaczenie na przycisku pominięcia, dzięki czemu można pominąć reklamę na Androidzie TV. Oznacza to, że nie musisz niczego więcej robić, aby umożliwić wyświetlanie reklam możliwych do pominięcia.

Możesz to skonfigurować, wywołując metodę AdsRenderingSettings.setFocusSkipButtonWhenAvailable().

Więcej informacji o obsługiwanych reklamach znajdziesz w tabeli zgodności.

Obsługa obrazów zastępczych ikony VAST

Pakiet IMA SDK wykrywa, renderuje i obsługuje interakcję użytkownika z obrazami zastępczymi ikony VAST. Aplikacja powinna nasłuchiwać zdarzeń ICON_TAPPED i ICON_FALLBACK_IMAGE_CLOSED, aby obsługiwać odtwarzanie reklam, które używają odpowiedzi „Dlaczego ta reklama?”.

Dodaj wartość logiczną, by śledzić, czy wyświetla się obraz zastępczy ikony VAST. Następnie słuchaj instrukcji ICON_TAPPED i ICON_FALLBACK_IMAGE_CLOSED, by obsługiwać odtwarzanie reklam wokół obrazu zastępczego ikony VAST. Poniższy fragment kodu zawiera przykład tej operacji w przykładzie zaawansowanym.

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;