Sử dụng SDK IMA cho Android với Android TV

Bạn nên áp dụng một số phương pháp hay nhất để đảm bảo ứng dụng hoạt động đúng cách trên Android TV khi sử dụng SDK IMA cho Android.

Hãy bắt đầu bằng cách tự làm quen với việc phát triển ứng dụng dành cho TV cho Android. Cụ thể, hãy đảm bảo bạn đã thiết lập Hoạt động cho TV như đã giải thích trong hướng dẫn bắt đầu. Bạn cũng nên xử lý cách điều hướng trên TV để đảm bảo người dùng có thể thao tác tốt trong ứng dụng của bạn trên Android TV.

Xử lý quảng cáo có thể bỏ qua

SDK tối ưu hoá các định dạng có thể bỏ qua cho các thiết bị giống với TV, chẳng hạn như bằng cách loại bỏ khả năng tương tác bằng nút Tìm hiểu thêm. Theo mặc định, bộ SDK sẽ tập trung vào nút bỏ qua khi khả năng bỏ qua có sẵn để có thể bỏ qua quảng cáo trên Android TV. Do đó, bạn không cần thực hiện thêm hành động nào để hỗ trợ quảng cáo có thể bỏ qua.

Bạn có thể định cấu hình tuỳ chọn này bằng cách gọi AdsRenderingSettings.setFocusSkipButtonWhenAvailable().

Để biết thêm thông tin về những quảng cáo được hỗ trợ, hãy xem ma trận tương thích.

Xử lý hình ảnh dự phòng cho biểu tượng VAST

SDK IMA phát hiện, hiển thị và xử lý hoạt động tương tác của người dùng với biểu tượng VAST hình ảnh dự phòng. Ứng dụng của bạn nên theo dõi các sự kiện ICON_TAPPEDICON_FALLBACK_IMAGE_CLOSED để xử lý chế độ phát quảng cáo cho những quảng cáo sử dụng "Tại sao có quảng cáo này" (WTA).

Thêm boolean để theo dõi xem hình ảnh dự phòng cho biểu tượng VAST có đang hiển thị hay không. Sau đó, hãy theo dõi ICON_TAPPEDICON_FALLBACK_IMAGE_CLOSED để xử lý việc phát quảng cáo xung quanh hình ảnh dự phòng cho biểu tượng VAST. Hãy xem đoạn mã sau đây để biết ví dụ về cách xử lý việc này trong Ví dụ nâng cao.

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;