راه اندازی 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 : An object that defines a stream request to Google's advertising servers. Must be created using either ImaSdkFactory.createPodStreamRequest() or ImaSdkFactory.createPodVodStreamRequest() to enable Pod Serving. These methods require a Network Code , and createPodStreamRequest also requires a Custom Asset Key , and an optional API key . Both include other optional parameters.

  • 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 : Only used for Livestreams - The video stream URL provided by your manifest manipulator or third-party partner using Pod Serving. It should require you to insert the stream ID provided by the IMA DAI SDK, before you make a request. In this case, the stream URL includes a placeholder, "[[STREAMID]]" , which is replaced with the stream ID, before making a request.

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

  • CUSTOM_ASSET_KEY : Only used for Livestreams - The custom asset key that identifies your Pod Serving event in Ad Manager 360. This can be created by your manifest manipulator or third-party Pod Serving partner.

  • 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 جریان

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

Call the StreamManager.getStreamId() method to get the stream ID. This needs to be inserted into the STEAM_URL replacing "[[STREAMID]]" . After this change is made, set the new stream URL using the videoPlayer.setStreamUrl() method and call the videoPlayer.play() method to start stream playback.

// 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 مراجعه کنید.