با 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 نشان می دهد. اگر می‌خواهید یکپارچه‌سازی نمونه کامل‌شده را مشاهده یا دنبال کنید، نمونه سرویس غلاف را دانلود کنید.

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

  • StreamRequest : شیئی که یک درخواست جریان را به سرورهای تبلیغاتی Google تعریف می کند. برای فعال کردن سرویس دهی باید با استفاده از 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 سرویس کامل را ببینید.

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

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

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

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

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

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

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

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

/** 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 ایجاد کنید

پخش جریانی زنده پاد

روش buildStreamRequest() را که برای جابجایی بین ساخت انواع مختلف جریان استفاده شده بود، حذف کنید. سپس، requestAndPlayAds() را به فراخوانی ImaSdkFactory.createPodStreamRequest() تغییر دهید تا یک Live pod ارائه درخواست تبلیغ ایجاد شود. در نهایت، جریان را با استفاده از 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 سرویس درخواست تبلیغ ایجاد شود. در نهایت، جریان را با استفاده از 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);
}

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

خودشه! اکنون با IMA DAI SDK در حال درخواست و نمایش تبلیغات در یک جریان سرویس دهی هستید. برای مشاهده نمونه‌های دیگر از Android SDK مورد استفاده، به نمونه‌های موجود در GitHub نگاه کنید.