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

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

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

این راهنما نشان می‌دهد که چگونه بااستفاده از IMA DAI SDK با پخش‌کننده ویدیو برای بازپخش جاری‌سازی زنده و ویدیو به‌درخواست، جاری‌سازی «ارائه دسته آگهی درج آگهی پویا» را پخش کنید. برای مشاهده یا دنبال کردن یک ادغام نمونه تکمیل‌شده، نمونه 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() ارسال کند. این نمونه تکه‌کد DAI سرویس کامل را ببینید.

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

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

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

  • STREAM_URL: فقط برای جاری‌سازی‌های زنده استفاده می‌شود - نشانی وب جاری‌سازی ویدیو که توسط دستکاری‌کننده مانیفست شما یا شریک طرف سوم بااستفاده از Pod Serving ارائه شده است. باید از شما بخواهد شناسه جاری‌سازی ارائه‌شده توسط 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. پس‌از دریافت نشانی وب از «ارائه‌دهنده بلیت ویدیو»، روش StreamManager.loadThirdPartyStream() را با نشانی وب برای بار کردن جاری‌سازی، همراه با هر زیرنویسی که «ارائه‌دهنده بلیت ویدیو» برمی‌گرداند، فراخوانی کنید.
// 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() اضافه کنید:

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 را ببینید.