راه اندازی IMA SDK برای DAI، راه اندازی IMA SDK برای DAI، راه اندازی IMA SDK برای DAI، راه اندازی IMA SDK برای DAI

پلتفرم مورد نظر را انتخاب کنید: HTML5 اندروید iOS tvOS Cast Roku

کیت‌های توسعه نرم‌افزار IMA ادغام تبلیغات چندرسانه‌ای را در وب‌سایت‌ها و برنامه‌های شما آسان می‌کنند. کیت‌های توسعه نرم‌افزار IMA می‌توانند از هر سرور تبلیغاتی سازگار با VAST درخواست تبلیغات کنند و پخش تبلیغات را در برنامه‌های شما مدیریت کنند. با کیت‌های توسعه نرم‌افزار IMA DAI، برنامه‌ها درخواست پخش جریانی برای تبلیغات و ویدیوی محتوا - چه VOD و چه محتوای زنده - ارسال می‌کنند. سپس SDK یک جریان ویدیویی ترکیبی را برمی‌گرداند، به طوری که شما مجبور نیستید جابجایی بین ویدیوی تبلیغ و محتوا را در برنامه خود مدیریت کنید.

راهکار DAI مورد نظرتان را انتخاب کنید

غلاف سروینگ دای

کیت‌های توسعه نرم‌افزار IMA ادغام تبلیغات چندرسانه‌ای را در وب‌سایت‌ها و برنامه‌های شما آسان می‌کنند. کیت‌های توسعه نرم‌افزار IMA می‌توانند از هر سرور تبلیغاتی سازگار با VAST درخواست تبلیغات کنند و پخش تبلیغات را در برنامه‌های شما مدیریت کنند. با کیت‌های توسعه نرم‌افزار IMA DAI، برنامه‌ها درخواست پخش جریانی برای تبلیغات و ویدیوی محتوا - چه VOD و چه محتوای زنده - ارسال می‌کنند. سپس SDK یک جریان ویدیویی ترکیبی را برمی‌گرداند، به طوری که شما مجبور نیستید جابجایی بین ویدیوی تبلیغ و محتوا را در برنامه خود مدیریت کنید.

این راهنما نحوه پخش جریان DAI Pod Serving را با استفاده از IMA DAI SDK به همراه یک پخش‌کننده ویدیو برای پخش زنده و پخش VOD نشان می‌دهد. برای مشاهده یا دنبال کردن یک نمونه تکمیل‌شده از یکپارچه‌سازی، مثال Pod Serving را دانلود کنید.

نمای کلی سرویس غلاف IMA DAI

  • StreamRequest : شیء‌ای که یک درخواست پخش جریانی به سرورهای تبلیغاتی گوگل تعریف می‌کند. برای فعال کردن سرویس پاد، باید با استفاده از ImaSdkFactory.createPodStreamRequest() یا ImaSdkFactory.createPodVodStreamRequest() ایجاد شود. این متدها به یک Network Code نیاز دارند و createPodStreamRequest همچنین به یک Custom Asset Key و یک کلید API اختیاری نیاز دارد. هر دو شامل پارامترهای اختیاری دیگری نیز هستند.

  • StreamManager : شیء‌ای که ارتباط بین جریان ویدئو و IMA DAI SDK را مدیریت می‌کند، مانند اجرای پینگ‌های ردیابی و ارسال رویدادهای جریان به ناشر.

پیش‌نیازها

  • یک برنامه اندروید که از قبل با IMA DAI SDK برای پخش استریم‌های ویدیویی با تبلیغات DAI تنظیم شده باشد. اگر از قبل چنین برنامه‌ای ندارید، توصیه می‌کنیم از Android DAI BasicExample به عنوان نقطه شروع استفاده کنید. BasicExample دارای کدبیس ارجاع داده شده در این راهنما است.

  • برای عملکرد IMA DAI، ارسال رویدادهای ID3 با استفاده از VideoStreamPlayerCallback.onUserTextReceived() برای برنامه شما مهم است. به این مثال قطعه کد سرویس کامل DAI مراجعه کنید.

متغیرهای سرو پاد خود را تنظیم کنید

تمام تغییرات مورد نیاز برای Pod Serving در SampleAdsWrapper.java انجام می‌شود. اولین قدم به‌روزرسانی متغیرهای ثابت است.

در اینجا ثابت‌های درخواست جریان ad pod که باید اضافه شوند، آورده شده است:

  • STREAM_URL : فقط برای پخش زنده استفاده می‌شود - URL پخش ویدیویی که توسط دستکاری‌کننده مانیفست یا شریک شخص ثالث شما با استفاده از Pod Serving ارائه می‌شود. قبل از ارسال درخواست، باید از شما خواسته شود که شناسه پخش ارائه شده توسط IMA DAI SDK را وارد کنید. در این حالت، URL پخش شامل یک متغیر "[[STREAMID]]" است که قبل از ارسال درخواست با شناسه پخش جایگزین می‌شود.

  • NETWORK_CODE : کد شبکه برای حساب Ad Manager 360 شما.

  • CUSTOM_ASSET_KEY : فقط برای پخش زنده استفاده می‌شود - کلید دارایی سفارشی که رویداد Pod Serving شما را در Ad Manager 360 مشخص می‌کند. این کلید می‌تواند توسط دستکاری‌کننده مانیفست شما یا شریک Pod Serving شخص ثالث ایجاد شود.

  • API_KEY : فقط برای پخش زنده استفاده می‌شود - یک کلید API اختیاری که می‌تواند برای بازیابی شناسه پخش از IMA DAI SDK مورد نیاز باشد.

مثال پایه DAI اندروید برای پخش انواع مختلف جریان طراحی شده است، اما برای Pod Serving، فقط برای پخش یک جریان واحد تنظیم شده است. بخش متغیر مثال را مطابق با موارد زیر تغییر دهید:

/** This class implements IMA to add pod ad-serving support to SampleVideoPlayer */
@SuppressLint("UnsafeOptInUsageError")
/* @SuppressLint is needed for new media3 APIs. */
public class SampleAdsWrapper
    implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {

  // Set up the pod serving variables.
  private static final String NETWORK_CODE = "";
  private static final String CUSTOM_ASSET_KEY = "";
  private static final String API_KEY = "";
  private static final String STREAM_URL = "";
  private static final StreamFormat STREAM_FORMAT = StreamFormat.HLS;

برای فعال کردن سرویس پاد، یک درخواست پخش زنده یا VOD پاد ایجاد کنید

پخش زنده سرو پاد

متد buildStreamRequest() که برای جابجایی بین ساخت انواع مختلف استریم استفاده می‌شد را حذف کنید. سپس، requestAndPlayAds() طوری تغییر دهید که ImaSdkFactory.createPodStreamRequest() برای ایجاد یک درخواست تبلیغ Live Pod Serving فراخوانی کند.

// Live pod stream request.
request = sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);

سرویس پخش پاد VOD

متد buildStreamRequest() که برای جابجایی بین ساخت انواع مختلف استریم استفاده می‌شد را حذف کنید. سپس، requestAndPlayAds() را طوری تغییر دهید که ImaSdkFactory.createPodVodStreamRequest() را برای ایجاد یک درخواست تبلیغ VOD Pod Serving فراخوانی کند.

// VOD pod stream request.
request = sdkFactory.createPodVodStreamRequest(NETWORK_CODE);

پس از ایجاد نمونه درخواست جریان، جریان را با استفاده از AdsLoader.requestStream() درخواست کنید:

request.setFormat(STREAM_FORMAT);
adsLoader.requestStream(request);

ویرایش و تنظیم URL جریان

پخش زنده سرو پاد

برای دریافت شناسه جریان، متد StreamManager.getStreamId() را فراخوانی کنید. این شناسه باید در STEAM_URL جایگزین "[[STREAMID]]" شود. پس از ایجاد این تغییر، URL جریان جدید را با استفاده از متد videoPlayer.setStreamUrl() تنظیم کنید و متد videoPlayer.play() را برای شروع پخش جریان فراخوانی کنید.

// Play the live pod stream.
streamID = streamManager.getStreamId();
String liveStreamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);
// Call videoPlayer.play() here, because IMA doesn't call the VideoStreamPlayer.loadUrl()
// function for livestreams.
videoPlayer.setStreamUrl(liveStreamUrl);
videoPlayer.play();

سرویس پخش پاد VOD

  1. برای دریافت شناسه جریان، متد StreamManager.getStreamId() را فراخوانی کنید.
  2. از شریک فناوری ویدیوی خود (VTP) درخواست URL پخش جریانی کنید.
  3. پس از دریافت URL از VTP خود، متد StreamManager.loadThirdPartyStream() را با URL فراخوانی کنید تا جریان را به همراه هر زیرنویسی که VTP شما برمی‌گرداند، بارگیری کنید.
// Play the VOD pod stream.
streamID = streamManager.getStreamId();
String vodStreamUrl = "";
// Refer to your Video Tech Partner (VTP) or video stitching guide to fetch the stream URL
// and the subtitles for a the ad stitched VOD stream.

// In the following commented out code, 'vtpInterface' is a place holder
// for your own video technology partner (VTP) API calls.
// vodStreamUrl = vtpInterface.requestStreamURL(streamID);
List<Map<String, String>> subtitles = new ArrayList<>();
streamManager.loadThirdPartyStream(vodStreamUrl, subtitles);

برای درخواست‌های VOD Pod Serving، IMA پس از بارگذاری استریم، تابع فراخوانی VideoStreamPlayer.loadUrl() را فراخوانی می‌کند. برای شروع پخش استریم، فراخوانی‌های videoPlayer.setStreamUrl() و videoPlayer.play() را به تابع فراخوانی VideoStreamPlayer.loadUrl() اضافه کنید:

private VideoStreamPlayer createVideoStreamPlayer() {
  return new VideoStreamPlayer() {
    @Override
    public void loadUrl(String url, List<HashMap<String, String>> subtitles) {
      // IMA doesn't make calls to VideoStreamPlayer.loadUrl() for pod serving live streams.
      // The following code is for VOD streams.
      videoPlayer.setStreamUrl(url);
      videoPlayer.play();
    }

پاکسازی دارایی‌های IMA DAI

وقتی درخواست و نمایش تبلیغات در یک جریان Pod Serving با IMA DAI SDK را با موفقیت به پایان رساندید، پیشنهاد می‌کنیم پس از اتمام جلسه Pod Serving، هرگونه منبعی را پاک کنید. برای متوقف کردن پخش جریان، متوقف کردن تمام ردیابی تبلیغات و آزاد کردن تمام دارایی‌های جریان بارگذاری شده، StreamManager.destroy() را فراخوانی کنید.

برای دیدن نمونه‌های دیگر از Android SDK مورد استفاده، به نمونه‌های موجود در GitHub مراجعه کنید.