Используйте IMA SDK для Android с Android TV

Мы рекомендуем несколько рекомендаций, которые помогут обеспечить правильную работу вашего приложения на Android TV при использовании IMA SDK для Android.

Начните с ознакомления с разработкой телевизионных приложений для Android . В частности, убедитесь, что ваше действие настроено для телевидения, как описано в руководстве по началу работы . Вы также хотите использовать телевизионную навигацию , чтобы пользователи могли легко перемещаться по вашему приложению на Android TV.

Обработка объявлений с возможностью пропуска

SDK оптимизирует форматы с возможностью пропуска для телевизионных устройств, например, удаляя возможность взаимодействия с кнопкой «Подробнее» . По умолчанию SDK устанавливает фокус на кнопке пропуска, когда пропуск доступен, поэтому рекламу можно пропустить на Android TV. Таким образом, для поддержки пропускаемой рекламы не требуется никаких дополнительных действий.

Вы можете настроить это, вызвав AdsRenderingSettings.setFocusSkipButtonWhenAvailable() .

Для получения дополнительной информации о том, какие объявления поддерживаются, ознакомьтесь с матрицей совместимости .

Обработка резервных изображений значков VAST

IMA SDK обнаруживает, отображает и обрабатывает взаимодействие пользователя с резервными изображениями значков VAST. Ваше приложение должно прослушивать события ICON_TAPPED и ICON_FALLBACK_IMAGE_CLOSED , чтобы обрабатывать воспроизведение рекламы, в которой используется фраза «Почему эта реклама» (WTA).

Добавьте логическое значение, чтобы отслеживать, отображается ли резервное изображение значка VAST. Затем прослушайте ICON_TAPPED и ICON_FALLBACK_IMAGE_CLOSED , чтобы управлять воспроизведением рекламы вокруг резервного изображения значка VAST. В следующем фрагменте кода приведен пример того, как это обрабатывается в расширенном примере .

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;