بدء استخدام حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية

تُسهل حزم تطوير البرامج لإعلانات الوسائط التفاعلية دمج إعلانات الوسائط المتعددة في مواقعك الإلكترونية وتطبيقاتك. ويمكن أن تطلب حِزم تطوير البرامج لإعلانات الوسائط التفاعلية إعلانات من أي خادم إعلانات متوافق مع VAST وإدارة تشغيل الإعلانات في تطبيقاتك. باستخدام حِزم تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية، تطلب التطبيقات بث الفيديو الإعلاني والمحتوى، سواء كان فيديو عند الطلب أو محتوى مباشرًا. وبعد ذلك، تعرض حزمة تطوير البرامج (SDK) بث فيديو مجمّعًا، حتى لا تضطر إلى إدارة التبديل بين الإعلان وفيديو المحتوى داخل تطبيقك.

اختيار حل DAI الذي يهمّك

عرض الإعلانات المتسلسلة التي تتضمّن ميزة DAI

تُسهل حزم تطوير البرامج لإعلانات الوسائط التفاعلية دمج إعلانات الوسائط المتعددة في مواقعك الإلكترونية وتطبيقاتك. ويمكن أن تطلب حِزم تطوير البرامج لإعلانات الوسائط التفاعلية إعلانات من أي خادم إعلانات متوافق مع VAST وإدارة تشغيل الإعلانات في تطبيقاتك. باستخدام حِزم تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية، تطلب التطبيقات بث الفيديو الإعلاني والمحتوى، سواء كان فيديو عند الطلب أو محتوى مباشرًا. وبعد ذلك، تعرض حزمة تطوير البرامج (SDK) بث فيديو مجمّعًا، حتى لا تضطر إلى إدارة التبديل بين الإعلان وفيديو المحتوى داخل تطبيقك.

يشرح هذا الدليل كيفية تشغيل بث لعرض مجموعة الإعلانات الديناميكية على شبكة البحث باستخدام حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية لنظام التشغيل Android مع مشغّل فيديو بسيط لتشغيل البث المباشر والفيديوهات عند الطلب. إذا كنت تريد عرض أو متابعة عملية دمج نموذجية مكتملة، يُرجى تنزيل مثال عرض الإعلانات المتسلسلة.

نظرة عامة على عرض لوحة الإعلانات الديناميكية على شبكة البحث لإعلانات الوسائط التفاعلية

  • StreamRequest: كائن يحدِّد طلب بث بيانات إلى خوادم الإعلانات من Google. يجب أن يتم إنشاؤها باستخدام ImaSdkFactory.createPodStreamRequest() أو ImaSdkFactory.createPodVodStreamRequest() لتفعيل عرض الإعلانات المتسلسلة. تتطلّب هذه الطرق استخدام رمز شبكة، وتتطلّب createPodStreamRequest أيضًا مفتاح مادة عرض مخصّصًا ومفتاح واجهة برمجة تطبيقات اختياريًا. ويشمل كلاهما معلَمات اختيارية أخرى.

  • StreamManager: كائن يعالج الاتصال بين بث الفيديو وحزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية، مثل تنشيط إشعارات التتبّع وإعادة توجيه أحداث البث إلى الناشر.

المتطلبات الأساسية

  • تطبيق Android تم إعداده مسبقًا بحزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية لتشغيل الفيديوهات المضمّنة مع إعلانات DAI. إذا لم يكن لديك مثل هذا التطبيق، نقترح استخدام Android DAI PrimaryExample كنقطة بداية. يحتوي BasicExample على قاعدة الرموز المشار إليها في هذا الدليل.

  • من المهم أن يرسل تطبيقك أحداث المعرّف 3 باستخدام VideoStreamPlayerCallback.onUserTextReceived() لكي تعمل ميزة DAI لإعلانات الوسائط التفاعلية. اطّلِع على مثال على مقتطف رمز DAI للخدمة الكاملة.

إعداد متغيّرات العرض المتسلسلة

ويتم تنفيذ جميع التغييرات اللازمة لعرض مجموعات الإعلانات المتسلسلة في SampleAdsWrapper.java. الخطوة الأولى هي تحديث المتغيرات الثابتة.

في ما يلي ثوابت طلب بث مجموعة الإعلانات المتسلسلة التي ستتم إضافتها:

  • STREAM_URL: تُستخدم فقط مع أحداث البث المباشر - عنوان URL لبث الفيديو الذي يقدّمه مناور معالجة البيان أو الشريك الخارجي الذي يستخدم عرض الإعلانات المتسلسلة. وسيتطلّب منك ذلك إدراج معرّف مصدر البيانات الذي توفّره حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية قبل تقديم الطلب. في هذه الحالة، يتضمن عنوان URL الخاص بمصدر البيانات عنصرًا نائبًا "[[STREAMID]]"، يتم استبداله بمعرّف مصدر البيانات، قبل تقديم طلب.

  • NETWORK_CODE: رمز الشبكة لحسابك على "مدير الإعلانات 360".

  • CUSTOM_ASSET_KEY: يُستخدم فقط لأحداث البث المباشر: وهو مفتاح مادة العرض المخصّص الذي يحدّد حدث عرض الإعلانات المتسلسلة في "مدير الإعلانات 360". يمكن إنشاء ذلك من خلال أداة معالجة البيان أو شريك عرض الإعلانات المتسلسلة التابعة لجهة خارجية.

  • API_KEY: يُستخدم فقط لأحداث البث المباشر - مفتاح واجهة برمجة تطبيقات اختياري يمكن أن يكون مطلوبًا لاسترداد معرّف البث من حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية.

تم تصميم 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 {

...

إنشاء طلب بث مباشر أو مجموعة إعلانات متسلسلة لتفعيل عرض الإعلانات المتسلسلة

عرض لوحات البث المباشر

أزِل طريقة buildStreamRequest() التي كانت تُستخدم للتبديل بين إنشاء مجموعة متنوعة من أنواع البث. بعد ذلك، غيِّر requestAndPlayAds() للاتصال بـ ImaSdkFactory.createPodStreamRequest() لإنشاء طلب إعلان يعرض مجموعة إعلانات متسلسلة مباشرة. وأخيرًا، اطلب البث باستخدام 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);
}

عرض لوحة بث عند الطلب

أزِل طريقة buildStreamRequest() التي كانت تُستخدم للتبديل بين إنشاء مجموعة متنوعة من أنواع البث. بعد ذلك، غيِّر requestAndPlayAds() إلى طلب البيانات ImaSdkFactory.createPodVodStreamRequest() لإنشاء طلب إعلان متسلسلة عند الطلب. وأخيرًا، اطلب البث باستخدام 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() للحصول على معرّف البث. بعد ذلك، يجب إدخاله في STEAM_URL بدلاً من "[[STREAMID]]". بعد إجراء هذا التغيير، يمكن ضبط عنوان 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();
}

عرض لوحة بث عند الطلب

اتصِل بالرقم StreamManager.getStreamId() للحصول على معرّف البث. بعد ذلك، اطلب عنوان URL للبث من شريك تكنولوجيا الفيديو (VTP). بعد ذلك، اتصل بـ StreamManager.loadThirdPartyStream() لتحميل إعلانات الوسائط التفاعلية لعنوان 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);
}

عند تفعيل عرض الإعلانات المتسلسلة، لا تُجري إعلانات الوسائط التفاعلية طلبات على VideoStreamPlayer.loadUrl()، لذا يمكنك إزالة أي مكالمات إلى videoPlayer.setStreamUrl() وvideoPlayer.play() منها.

أكملت هذه الخطوة. أنت الآن تطلب الإعلانات وتعرضها في سلسلة إعلانات متسلسلة باستخدام حزمة تطوير البرامج لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية لنظام التشغيل Android. للاطّلاع على أمثلة أخرى عن حزمة تطوير البرامج (SDK) لنظام التشغيل Android، راجِع النماذج على GitHub.