بهینه‌سازی برای Android TV

چند روال مطلوب را توصیه می‌کنیم تا مطمئن شوید برنامه‌تان هنگام استفاده از «کیت توسعه نرم‌افزار آگهی‌های رسانه‌ای تعاملی» برای Android به‌درستی در Android TV کار می‌کند.

برای شروع، با توسعه برنامه‌های تلویزیون برای Android آشنا شوید. به‌طور خاص، مطمئن شوید که «فعالیت» شما برای تلویزیون تنظیم شده باشد، همان‌طور که در راهنمای شروع توضیح داده شده است. همچنین باید پیمایش TV را مدیریت کنید تا مطمئن شوید کاربران می‌توانند به‌خوبی در برنامه شما در Android TV پیمایش کنند.

مدیریت آگهی‌های ردشدنی

کیت توسعه نرم‌افزار قالب‌های ردشدنی را برای دستگاه‌های شبیه تلویزیون بهینه‌سازی می‌کند، برای مثال با برداشتن امکان تعامل با دکمه بیشتر بدانید. به‌طور پیش‌فرض، SDK تمرکز را روی دکمه رد کردن قرار می‌دهد وقتی رد کردن دردسترس باشد تا آگهی بتواند در Android TV رد شود. بنابراین، برای پشتیبانی از آگهی‌های ردشدنی، کار اضافه‌ای لازم نیست.

می‌توانید این مورد را با فراخوانی AdsRenderingSettings.setFocusSkipButtonWhenAvailable() پیکربندی کنید.

برای اطلاعات بیشتر درباره اینکه چه آگهی‌هایی پشتیبانی می‌شوند، ماتریس سازگاری را بررسی کنید.

مدیریت تصاویر جایگزین نماد VAST

کیت توسعه نرم‌افزار آگهی‌های رسانه‌ای تعاملی تعامل کاربر با تصاویر جایگزین نماد VAST را شناسایی، رندر، و مدیریت می‌کند. برنامه شما باید به رویدادهای ICON_TAPPED و ICON_FALLBACK_IMAGE_CLOSED گوش دهد تا بازپخش آگهی را برای آگهی‌هایی که از «چرا این آگهی» (WTA) استفاده می‌کنند مدیریت کند.

یک بولی اضافه کنید تا ردیابی کند که آیا تصویر جایگزین نماد VAST نشان داده می‌شود یا نه. سپس، ICON_TAPPED و ICON_FALLBACK_IMAGE_CLOSED را گوش دهید تا بازپخش آگهی را در اطراف تصویر جایگزین نماد VAST مدیریت کنید. برای دیدن نمونه‌ای از نحوه مدیریت این موضوع در نمونه پیشرفته، تکه‌کد زیر را ببینید.

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;