IMA SDK für Android mit Android TV verwenden

Wir empfehlen dir mehrere Best Practices, damit deine App bei Verwendung des IMA SDK for Android auf Android TV ordnungsgemäß funktioniert.

Machen Sie sich zuerst mit der Entwicklung von TV-Apps für Android vertraut. Achten Sie darauf, dass Ihre Aktivität wie im Einstiegsleitfaden beschrieben für Fernseher eingerichtet ist. Außerdem sollten Sie die Navigation auf dem Fernseher berücksichtigen, damit Nutzer Ihre App auf Android TV gut bedienen können.

Überspringbare Anzeigen verarbeiten

Das SDK optimiert überspringbare Formate für TV-ähnliche Geräte, indem beispielsweise die Möglichkeit entfernt wird, über eine Schaltfläche Weitere Informationen zu interagieren. Standardmäßig legt das SDK den Fokus auf die Schaltfläche „Überspringen“, wenn das Überspringen möglich ist, damit die Anzeige auf Android TV übersprungen werden kann. Daher sind keine zusätzlichen Maßnahmen erforderlich, um überspringbare Anzeigen zu unterstützen.

Sie können das konfigurieren, indem Sie AdsRenderingSettings.setFocusSkipButtonWhenAvailable() aufrufen.

Weitere Informationen zu den unterstützten Anzeigen finden Sie in der Kompatibilitätsmatrix.

Fallback-Bilder für VAST-Symbole verarbeiten

Das IMA SDK erkennt, rendert und verarbeitet die Interaktionen der Nutzer mit den VAST-Symbol-Fallback-Bildern. Ihre App sollte die Ereignisse ICON_TAPPED und ICON_FALLBACK_IMAGE_CLOSED erfassen, um die Anzeigenwiedergabe für Anzeigen zu steuern, bei denen „Warum sehe ich diese Werbung?“ verwendet wird.

Fügen Sie einen booleschen Wert hinzu, um zu erfassen, ob ein VAST-Symbol-Fallback-Bild angezeigt wird. Achte dann auf ICON_TAPPED und ICON_FALLBACK_IMAGE_CLOSED, um die Anzeigenwiedergabe im Zusammenhang mit dem VAST-Symbol-Fallback-Bild zu steuern. Im folgenden Code-Snippet sehen Sie ein Beispiel dafür, wie dies im erweiterten Beispiel verarbeitet wird.

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;