تتوفر واجهة برمجة تطبيقات DAI في إصدار تجريبي وقد لا تكون متاحة في شبكتك. اتصل بمدير حسابك للحصول على مزيد من المعلومات. يُنصَح باستخدام حزمة تطوير البرامج لإعلانات الوسائط التفاعلية للمنصات التي تتوفّر فيها.

واجهة برمجة التطبيقات لإدراج الإعلانات الديناميكية لعمليات بث الفيديو المسجّل

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

تتيح لك واجهة برمجة تطبيقات DAI في Google تنفيذ مجموعات البث التي تمكّن DAI من Google في البيئات حيث لا يتم دعم تنفيذ أداة تطوير البرامج لإعلانات الوسائط التفاعلية. نقترح عليك الاستمرار في استخدام إعلانات الوسائط التفاعلية على الأنظمة الأساسية التي تتيح أداة تطوير البرامج لإعلانات الوسائط التفاعلية.

نوصي باستخدام واجهة برمجة تطبيقات DAI على الأنظمة الأساسية التالية:

  • تلفزيون Samsung الذكي (Tizen)
  • تلفزيون LG
  • HbbTV
  • Xbox (تطبيقات جافا سكريبت)
  • KaiOS

وتدعم واجهة برمجة التطبيقات الوظائف الأساسية التي تقدمها أداة تطوير البرامج (SDK) لإدراج إعلان ديناميكي لإعلانات الوسائط التفاعلية (IMA). لطرح أسئلة محدّدة عن التوافق أو الوظائف المتوافقة، يُرجى التواصل مع مدير حسابك في Google.

تنفيذ واجهة برمجة تطبيقات DAI لأحداث البث المباشر بحسب الطلب

وتتوافق واجهة برمجة تطبيقات DAI مع مجموعات بث الفيديو حسب الطلب باستخدام بروتوكولَي HLS وDASH. وتنطبق الخطوات الموضحة في هذا الدليل على كلا البروتوكولين.

لدمج واجهة برمجة التطبيقات في تطبيقك الخاص بأحداث البث المباشر بحسب الطلب، أكمل الخطوات التالية:

  1. يمكنك طلب إجراء بث من خلال استدعاء POST إلى نقطة نهاية البث:

    مثال على نص الطلب:

    https://dai.google.com/ondemand/v1/dash/content/2559737/vid/tos-dash/stream
    
      {
        key1 : "value1",
        stream_parameter1 : "value2"
      }
    

    مثال على نص الاستجابة:

    {
       "stream_id":"d32f8920-612a-4d46-8bc7-d73fd6c17c85",
       "total_duration":636.458,
       "content_duration":596.458,
       "valid_for":"8h0m0s",
       "valid_until":"2020-06-04T20:39:41.274707306-07:00",
       "stream_manifest":"https://dai.google.com/ondemand/dash/content/2559737/vid/tos-dash/ATL/streams/d32f8920-612a-4d46-8bc7-d73fd6c17c85/manifest.mpd",
       "media_verification_url":"https://dai.google.com/view/p/service/vod/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/loc/ATL/network/124319096/content/2559737/vid/tos-dash/media/",
       "ad_breaks":[
          {
             "type":"pre",
             "start":0,
             "duration":10,
             "ads":[
                {
                   "seq":1,
                   "duration":10,
                   "title":"External NCA1C1L1 Preroll",
                   "description":"External NCA1C1L1 Preroll ad",
                   "clickthrough_url":"https://dai.google.com/ondemand/v1/dash/content/2474148/vid/bbb-clear/location/ATL/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/videoclick/5489259204425938365",
                   "events":[
                      {
                         "time":0.1,
                         "type":"start"
                      },
                      {
                         "time":2.5,
                         "type":"firstquartile"
                      },
                      {
                         "time":4.75,
                         "type":"midpoint"
                      },
                      {
                         "time":7.5,
                         "type":"thirdquartile"
                      },
                      {
                         "time":9,
                         "type":"complete"
                      }
                   ]
                }
             ]
          },
          {
             "type":"mid",
             "start":45,
             "duration":10,
             "ads":[
                {.... }
                   ]
                }
             ]
          },
          {
             "type":"post",
             "start":626.458,
             "duration":10,
             "ads":[...]
          }
       ]
    }
    

    الاستجابة للخطأ

    في حالة حدوث أخطاء، يتم عرض رموز خطأ HTTP القياسية بدون نص استجابة JSON.

  2. تحليل استجابة JSON وتخزين القيم التالية:

    • stream_id
    • stream_manifest
    • media_verification_url
    • ad_breaks
  3. لإجراء تحقق من الوسائط، استمع إلى أحداث ID3:

    1. يمكنك تخزين أحداث الوسائط في قائمة انتظار وحفظ كل معرّف وسائط مع طابعها الزمني (إذا أظهره المشغّل).
    2. وفي كل مرة يتم فيها التحديث من المشغّل أو عند معدّل تكرار محدّد (يُوصى بـ 500 مللي ثانية)، يُرجى التحقق من قائمة انتظار الأحداث التي تم تشغيلها مؤخرًا من خلال مقارنة الطوابع الزمنية للأحداث برأس التشغيل.
    3. بالنسبة إلى أحداث الوسائط التي تؤكد أنه تم تشغيلها، يمكنك تتبع التشغيل من خلال إلحاق معرّف الوسائط بنقطة نهاية التحقق من الوسائط وتقديم طلب GET.

    مثال على نص الطلب:

    https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/
    

    أمثلة على الردود:

    Accepted for asynchronous verification - HTTP/1.1 202 Accepted
    Successful empty response - HTTP/1.1 204 No Content
    Media verification not found - HTTP/1.1 404 Not Found
    Media verification sent by someone else - HTTP/1.1 409 Conflict
    

    يمكنك التحقّق من أحداث التتبّع في أداة تتبّع نشاط البث.

  4. اختياري: استخدِم مكتبة ad_breaks للبحث عن نوع الحدث الذي تم تنشيطه.

  5. أزل حدث الوسائط من قائمة الانتظار.

القيود

في حالة استخدام واجهة برمجة التطبيقات في الملفات الشخصية للويب، يتم تطبيق القيود التالية في ما يتعلق بالاستهداف:

  • UserAgent: يتم تمرير معلمة وكيل المستخدم كقيمة خاصة بالمتصفح بدلاً من النظام الأساسي الأساسي.
  • rdid، idtype، is_lat: لم يتم تمرير رقم تعريف الجهاز بشكل صحيح، ما يحد من وظائف الميزات التالية:
    • تحديد عدد مرات الظهور
    • عرض الإعلانات التسلسلية بالتناوب
    • تصنيف الجمهور واستهدافه

أفضل الممارسات

إنّ ربط علامات ID3 بنوع الحدث المناسب هو عملية مملة على الفيديوهات المسجّلة. استخدم المكتبة المتاحة للبحث عن الحدث مباشرةً، مثلما تفعل مع المحتوى المباشر.

مراجع إضافية