راه‌اندازی با درج آگهی پویا در سرویس Pod

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

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

این راهنما نشان می‌دهد که چگونه بااستفاده از IMA DAI SDK با پخش‌کننده ویدیو برای بازپخش جاری‌سازی زنده و ویدیو به‌درخواست، جاری‌سازی «ارائه پاد» DAI را پخش کنید. برای مشاهده یا دنبال کردن یک ادغام نمونه تکمیل‌شده، نمونه Pod Serving را بارگیری کنید.

نمای کلی «ارائه پاد درج آگهی پویا» در IMA

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

  • StreamManager: شیئی که ارتباط بین جاری‌سازی ویدیو و کیت توسعه نرم‌افزار درج آگهی پویا در آگهی‌های رسانه‌ای تعاملی را مدیریت می‌کند، مثلاً پینگ‌های ردیابی را فعال می‌کند و رویدادهای جاری‌سازی را به ناشر بازارسال می‌کند.

پیش‌نیازها

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

  • برای اینکه IMA DAI کار کند، مهم است که برنامه‌تان رویدادهای ID3 را بااستفاده از VideoStreamPlayerCallback.onUserTextReceived() ارسال کند. این نمونه تکه‌کد درج آگهی پویا با خدمات کامل را ببینید.

متغیرهای «ارائه پاد» را راه‌اندازی کنید

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

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

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

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

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

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

‫Android DAI BasicExample برای پخش انواع مختلفی از جریان‌ها طراحی شده است، اما برای 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;

برای فعال کردن «ارائه پاد»، درخواست جاری‌سازی پاد زنده یا ویدیو به‌درخواست ایجاد کنید

ارائه پاد جاری‌سازی زنده

روش buildStreamRequest() که برای جابه‌جایی بین ساخت انواع مختلف جاری‌سازی استفاده می‌شد برداشته شد. سپس، requestAndPlayAds() را اصلاح کنید تا ImaSdkFactory.createPodStreamRequest() را برای ایجاد درخواست آگهی «ارائه دسته آگهی زنده» فراخوانی کند.

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

ارائه پاد جاری‌سازی ویدیو به‌درخواست

روش buildStreamRequest() که برای جابه‌جایی بین ساخت انواع مختلف جاری‌سازی استفاده می‌شد برداشته شد. سپس، requestAndPlayAds() را برای فراخوانی ImaSdkFactory.createPodVodStreamRequest() اصلاح کنید تا درخواست آگهی «ارائه پاد ویدیو به‌درخواست» ایجاد شود.

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

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

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

ویرایش و تنظیم نشانی وب جاری‌سازی

ارائه پاد جاری‌سازی زنده

برای دریافت شناسه جاری‌سازی، روش StreamManager.getStreamId() را فراخوانی کنید. این باید در STEAM_URL درج شود و جایگزین "[[STREAMID]]" شود. پس‌از اعمال این تغییر، نشانی وب جاری‌سازی جدید را بااستفاده از روش 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();

ارائه پاد جاری‌سازی ویدیو به‌درخواست

  1. برای دریافت شناسه جاری‌سازی، روش StreamManager.getStreamId() را فراخوانی کنید.
  2. از شریک فناوری ویدیویی (VTP) خود یک نشانی وب جاری‌سازی درخواست کنید.
  3. پس‌از دریافت نشانی وب از VTP، روش StreamManager.loadThirdPartyStream() را با نشانی وب برای بار کردن جاری‌سازی، همراه با هر زیرنویسی که 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);

برای درخواست‌های «ارائه پاد ویدیو به‌درخواست»، IMA با VideoStreamPlayer.loadUrl() تماس می‌گیرد وقتی جاری‌سازی بار شده است، تماس برگشتی برقرار می‌شود. برای شروع بازپخش جاری‌سازی، تماس‌های videoPlayer.setStreamUrl() و videoPlayer.play() را به VideoStreamPlayer.loadUrl() callback اضافه کنید:

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 stream با IMA DAI SDK با موفقیت به پایان رساندید، پیشنهاد می‌کنیم پس‌از تکمیل جلسه Pod Serving، منابع را پاک‌سازی کنید. برای توقف بازپخش جاری‌سازی، توقف همه ردگیری‌های آگهی، و واگذاری همه دارایی‌های جاری‌سازی بارشده، StreamManager.destroy() را فراخوانی کنید.

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