با IMA DAI SDK شروع کنید

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

راه حل DAI مورد علاقه خود را انتخاب کنید

سرویس پاد DAI

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

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

نمای کلی سرویس IMA DAI Pod

  • StreamRequest : شیئی که یک درخواست جریان را به سرورهای تبلیغاتی Google تعریف می کند. برای فعال کردن سرویس Pod باید با استفاده از ImaSdkFactory.createPodStreamRequest() یا ImaSdkFactory.createPodVodStreamRequest() ایجاد شود. این روش ها به یک کد شبکه نیاز دارند و createPodStreamRequest همچنین به یک کلید دارایی سفارشی و یک کلید API اختیاری نیاز دارد. هر دو شامل سایر پارامترهای اختیاری هستند.

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

پیش نیازها

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

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

متغیرهای Pod Serving خود را تنظیم کنید

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

در اینجا ثابت‌های درخواست جریان آگهی برای اضافه کردن آمده است:

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

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

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

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

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

/** This class adds ad-serving support to Sample HlsVideoPlayer */
public class SampleAdsWrapper
        implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {

  // Podserving Stream Constants.
  private static final String STREAM_URL =
          "https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/" +
          "master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample" +
          "&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000" +
          "&seg-host=dai.google.com&stream_id=[[STREAMID]]";
  private static final String NETWORK_CODE = "51636543";
  private static final String CUSTOM_ASSET_KEY = "google-sample";
  private static final String API_KEY = "";

  private static final String PLAYER_TYPE = "DAISamplePlayer";

  /** Log interface, so we can output the log commands to the UI or similar. */
  public interface Logger {

...

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

پخش زنده پخش پاد

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

public void requestAndPlayAds() {
  StreamRequest request =
      sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);
  request.setFormat(StreamFormat.HLS);

  adsLoader.addAdErrorListener(this);
  adsLoader.addAdsLoadedListener(this);
  adsLoader.requestStream(request);
}

سرویس پاد استریم VOD

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

public void requestAndPlayAds() {
  StreamRequest request =
      sdkFactory.createPodVodStreamRequest(NETWORK_CODE);
  request.setFormat(StreamFormat.HLS);

  adsLoader.addAdErrorListener(this);
  adsLoader.addAdsLoadedListener(this);
  adsLoader.requestStream(request);
}

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

پخش زنده پخش پاد

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

@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
  streamManager = event.getStreamManager();
  streamManager.addAdErrorListener(this);
  streamManager.addAdEventListener(this);

  // To enable streams
  String streamID = streamManager.getStreamId();
  String streamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);

  streamManager.init();

  videoPlayer.setStreamUrl(streamUrl);
  videoPlayer.play();
}

سرویس پاد استریم VOD

برای دریافت شناسه جریان، با StreamManager.getStreamId() تماس بگیرید. سپس، یک URL استریم را از شریک فناوری ویدیوی خود (VTP) درخواست کنید. سپس StreamManager.loadThirdPartyStream() را فراخوانی کنید تا IMA URL استریم و هر زیرنویسی را که توسط TVP شما برگردانده شده است بارگیری کند.

@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
  streamManager = event.getStreamManager();
  streamManager.addAdErrorListener(this);
  streamManager.addAdEventListener(this);

  // To enable streams
  String streamID = streamManager.getStreamId();
  // 'vtpInterface' is a place holder for your own video technology partner
  // (VTP) API calls.
  String streamUrl = vtpInterface.requestStreamURL(streamID);

  streamManager.init();

  // Pass any subtitles returned by your VTP in this step as well.
  streamManager.loadThirdPartyStream(streamUrl, subtitles);
}

وقتی Pod Serving فعال است، IMA با VideoStreamPlayer.loadUrl() تماسی برقرار نمی کند، بنابراین می توانید هر تماسی با videoPlayer.setStreamUrl() و videoPlayer.play() را از آن حذف کنید.

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

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

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