استخدام حزمة تطوير البرامج لإعلانات الوسائط التفاعلية لنظام التشغيل Android مع Android TV

نقترح عليك العديد من أفضل الممارسات لضمان عمل تطبيقك بشكلٍ سليم على Android TV عند استخدام أداة تطوير البرامج لإعلانات الوسائط التفاعلية لنظام التشغيل Android.

ابدأ بالتعرف على تطوير تطبيقات التلفزيون لنظام Android. على وجه التحديد، احرص على إعداد "نشاطك" للتلفزيون كما هو موضّح في دليل البدء. عليك أيضًا التعامل مع التنقل في التلفزيون للتأكد من أن المستخدمين يمكنهم التنقل في تطبيقك بشكل جيد على Android TV.

التعامل مع الإعلانات القابلة للتخطّي

تُحسّن حزمة تطوير البرامج (SDK) التنسيقات القابلة للتخطي لأجهزة التلفزيون، مثلاً عن طريق إزالة إمكانية التفاعل باستخدام زر مزيد من المعلومات. بشكل افتراضي، تضبط حزمة SDK زر التخطي عندما يكون التخطي متاحًا حتى يمكن تخطي الإعلان على Android TV. لذلك، لا يلزم اتخاذ أي إجراء إضافي لإتاحة الإعلانات القابلة للتخطي.

يمكنك ضبط هذا الإجراء من خلال الاتصال على الرقم AdsRenderingSettings.setFocusSkipButtonWhenAvailable().

للمزيد من المعلومات عن الإعلانات المتاحة، يمكنك الاطّلاع على مصفوفة التوافق.

التعامل مع الصور الاحتياطية لرمز نموذج عرض إعلانات فيديو (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;