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

تتيح لك واجهة برمجة التطبيقات Dynamic Ad Insertion API طلب وتتبّع أحداث بث الفيديو المسجّل (VOD) التي تستخدم ميزة DAI. يمكن استخدام مجموعات بث HLS وDASH.

الخدمة: dai.google.com

يرتبط مسار الطريقة stream بـ https://dai.google.com

الطريقة: ساحة المشاركات

الطُرق
stream POST /ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream

تنشئ بث HLS DAI لمصدر المحتوى ومعرّف الفيديو المحدّدَين.

POST /ondemand/v1/dash/content/{content-source}/vid/{video-id}/stream

تنشئ بث DASH DAI لمصدر المحتوى ومعرّف الفيديو المعيّنين.

طلب HTTP

POST https://dai.google.com/ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream

POST https://dai.google.com/ondemand/v1/dash/content/{content-source}/vid/{video-id}/stream

عنوان الطلب

المَعلمات
api‑key string

ويجب أن يكون مفتاح واجهة برمجة التطبيقات، الذي يتم تقديمه عند إنشاء بث، صالحًا لشبكة الناشر.

بدلاً من توفيره في نص الطلب، يمكن تمرير مفتاح واجهة برمجة التطبيقات في عنوان مصادقة HTTP بالتنسيق التالي:

Authorization: DCLKDAI key="<api-key>"

مَعلمات المسار

المَعلمات
content-source string

رقم تعريف نظام إدارة المحتوى (CMS) الخاص بالبث

video-id string

معرّف فيديو مجموعة البث

نص الطلب

نص الطلب من النوع application/x-www-form-urlencoded ويحتوي على المَعلمات التالية:

المَعلمات
dai-ssb إجراء اختياري

اضبط القيمة على true لإنشاء بث الإشارة من جهة الخادم. يكون الإعداد التلقائي هو false. يتم تتبُّع البث التلقائي من خلال العميل ويتم إرسال إشعار إليه من جهة الخادم.

معلَمات استهداف مواضع الإعلانات إجراء اختياري معلمات استهداف إضافية.
إلغاء مَعلمات مصدر البيانات إجراء اختياري إلغاء القيم التلقائية لمَعلمة إنشاء مصدر البيانات
مصادقة HMAC إجراء اختياري يمكنك المصادقة باستخدام رمز مميّز مستند إلى بروتوكول HMAC.

نص الاستجابة

إذا كانت الاستجابة ناجحة، يحتوي نص الاستجابة على العنصر الجديد Stream. بالنسبة إلى ساحات المشاركات من جهة الخادم، لا تحتوي سمة Stream هذه على حقلَي stream_id وstream_manifest إلا.

فتح عملية القياس

يحتوي الحقل Verifications على معلومات عن التحقّق المفتوح من خلال القياس لمصادر البيانات التي لا تشير إلى جهة الخادم. يحتوي Verifications على عنصر Verification واحد أو أكثر يسرد الموارد والبيانات الوصفية التي تحتاجها للتحقّق من تشغيل تصميم الإعلان باستخدام رمز قياس تابع لجهة خارجية. يُسمح فقط بالقيمة JavaScriptResource. لمزيد من المعلومات، يُرجى الاطّلاع على مختبر IAB التقني ومواصفات VAST 4.1.

الطريقة: إثبات ملكية الوسائط

بعد أن يصادفك معرّف وسائط إعلانية أثناء التشغيل، يمكنك تقديم طلب فورًا باستخدام media_verification_url من نقطة نهاية stream. media_verification_url هو مسار مطلق. ولا تعتبر طلبات التحقق من الوسائط ضرورية لتدفقات الإشارة من جهة الخادم، حيث يبدأ الخادم التحقق من الوسائط.

الطلبات المقدّمة إلى نقطة النهاية media verification ثابتة.

الطُرق
media verification GET {media_verification_url}/{ad_media_id}

لإرسال إشعار إلى واجهة برمجة التطبيقات بشأن حدث تحقّق من الوسائط

طلب HTTP

GET {media-verification-url}/{ad-media-id}

نص الاستجابة

تعرض media verification الردود التالية:

  • HTTP/1.1 204 No Content إذا نجح التحقق من الوسائط وتم إرسال جميع إشعارات.
  • HTTP/1.1 404 Not Found إذا تعذّر على الطلب التحقق من الوسائط بسبب تنسيق عنوان URL غير صحيح أو انتهاء الصلاحية بسبب انتهاء الصلاحية.
  • HTTP/1.1 404 Not Found إذا تم تنفيذ طلب إثبات ملكية سابق لهذا المعرّف بنجاح.
  • HTTP/1.1 409 Conflict إذا كان هناك طلب آخر يُرسِل إشعارات في الوقت الحالي.

أرقام تعريف وسائط الإعلانات (HLS)

سيتم ترميز معرّفات وسائط الإعلانات في البيانات الوصفية المحدّدة زمنيًا وفق بروتوكول HLS باستخدام المفتاح TXXX، الذي تم حجزه لإطارات "معلومات النص التي يحددها المستخدم". لن يتم تشفير محتوى الإطار وسيبدأ دائمًا بالنص "google_".

يجب إلحاق المحتوى النصي للإطار بالكامل بالسمة media_verification_url في كل طلب لإثبات ملكية الإعلان.

أرقام تعريف وسائط الإعلانات (DASH)

سيتم إدراج معرّفات وسائط الإعلانات في البيان من خلال استخدام عنصر EventStream في DASH.

سيكون لكل EventStream معرّف موارد منتظم (URI) لرقم تعريف المخطط بقيمة urn:google:dai:2018. وستحتوي على أحداث بها السمة messageData التي تحتوي على رقم تعريف وسائط إعلانية يبدأ بـ “google_”. يجب إلحاق كل محتوى السمة messageData بالسمة media_verification_url، وذلك لكل طلب تحقّق من الإعلان.

بيانات الرد

بث المحتوى

يتم استخدام ساحة المشاركات لعرض قائمة بكل الموارد لتدفق تم إنشاؤه حديثًا بتنسيق JSON .
تمثيل JSON
{
  "stream_id": string,
  "total_duration": number,
  "content_duration": number,
  "valid_for": string,
  "valid_until": string,
  "subtitles": [object(Subtitle)],
  "hls_master_playlist": string,
  "stream_manifest": string,
  "media_verification_url": string,
  "apple_tv": object(AppleTV),
  "ad_breaks": [object(AdBreak)],
}
الحقول
stream_id string

معرّف مصدر البيانات:
total_duration number

مدة البث بالثواني
content_duration number

مدة المحتوى، بدون إعلانات، بالثواني
valid_for string

مدة البث صالحة لمدة عرضها بالتنسيق "00h00m00s".
valid_until string

تاريخ صلاحية البث المباشر حتى، بالتنسيق RFC 3339
subtitles [object(Subtitle)]

قائمة بالترجمة: يتم الحذف إذا كان فارغًا. HLS فقط.
hls_master_playlist string

(تم إيقاف هذا الخيار) عنوان URL لقائمة تشغيل HLS الرئيسية. استخدِم Stream_manifest. HLS فقط.
stream_manifest string

بيان مجموعة البث: يتجاوب مع قائمة التشغيل الرئيسية في HLS وMPD في DASH. هذا هو الحقل الوحيد إلى جانب "stream_id" الذي يظهر في الاستجابة عند إنشاء بث الإشارة من جهة الخادم.
media_verification_url string

عنوان URL لتأكيد الوسائط
apple_tv object(AppleTV)

معلومات اختيارية خاصة بأجهزة AppleTV: HLS فقط.
ad_breaks [object(AdBreak)]

قائمة بالفواصل الإعلانية: ويتم حذفها إذا كانت فارغة.

AppleTV

يحتوي AppleTV على معلومات خاصة بأجهزة Apple TV.
تمثيل JSON
{
  "interstitials_url": string,
}
الحقول
interstitials_url string

عنوان URL للإعلانات البينية

AdBreak

يصف الفاصل الإعلاني فاصلاً إعلانيًا واحدًا في البث. ويحتوي هذا التقرير على موضع ومدة ونوع (منتصف/قبل/ما بعد) وقائمة بالإعلانات.
تمثيل JSON
{
  "type": string,
  "start": number,
  "duration": number,
  "ads": [object(Ad)],
}
الحقول
type string

أنواع الفواصل الإعلانية الصالحة هي: منتصف الفيديو وما قبله وبعده.
start number

موضع بدء الفاصل في البث المباشر، بالثواني
duration number

مدة الفاصل الإعلاني، بالثواني
ads [object(Ad)]

قائمة بالإعلانات: ويتم حذفها إذا كانت فارغة.
يصف الإعلان إعلانًا في البث. فهو يتضمن موضع الإعلان في الفاصل ومدته وبعض البيانات الوصفية الاختيارية.
تمثيل JSON
{
  "seq": number,
  "start": number,
  "duration": number,
  "title": string,
  "description": string,
  "advertiser": string,
  "ad_system": string,
  "ad_id": string,
  "creative_id": string,
  "creative_ad_id": string,
  "deal_id": string,
  "clickthrough_url": string,
  "icons": [object(Icon)],
  "wrappers": [object(Wrapper)],
  "events": [object(Event)],
  "verifications": [object(Verification)],
  "universal_ad_id": object(UniversalAdID),
  "companions": [object(Companion)],
  "interactive_file": object(InteractiveFile),
}
الحقول
seq number

موضع الإعلان في الفاصل.
start number

موضع عرض الإعلان في البث المباشر بالثواني
duration number

مدة الإعلان بالثواني
title string

عنوان اختياري للإعلان:
description string

وصف اختياري للإعلان.
advertiser string

معرّف المعلِن الاختياري
ad_system string

نظام إعلانات اختياري:
ad_id string

رقم تعريف الإعلان الاختياري
creative_id string

رقم تعريف تصميم الإعلان الاختياري.
creative_ad_id string

رقم تعريف إعلان تصميم الإعلان الاختياري
deal_id string

رقم تعريف الصفقة الاختياري.
clickthrough_url string

عنوان URL اختياري للنقر إلى الظهور
icons [object(Icon)]

قائمة بالرموز يتم حذفها إذا كانت فارغة
wrappers [object(Wrapper)]

قائمة بأغلفة الملفات: ويتم حذفها إذا كانت فارغة.
events [object(Event)]

قائمة بالأحداث في الإعلان
verifications [object(Verification)]

إدخالات اختيارية للتحقّق من النطاق المفتوح، وهي توضّح الموارد والبيانات الوصفية المطلوبة لتنفيذ رمز القياس التابع لجهة خارجية من أجل التحقّق من تشغيل تصميم الإعلان.
universal_ad_id object(UniversalAdID)

رقم تعريف إعلان عام اختياري
companions [object(Companion)]

الإعلانات المصاحبة الاختيارية التي قد يتم عرضها مع هذا الإعلان
interactive_file object(InteractiveFile)

تصميم الإعلان التفاعلي الاختياري (SIMID) الذي يجب عرضه أثناء تشغيل الإعلان

حدث

يحتوي الحدث على نوع الحدث ووقت العرض التقديمي.
تمثيل JSON
{
  "time": number,
  "type": string,
}
الحقول
time number

وقت العرض التقديمي لهذا الحدث
type string

نوع هذا الحدث.

العنوان الفرعي

يصف العنوان الفرعي مقطع ترجمة جانبي للفيديو المضمّن. وهو يخزن تنسيقين للعناوين الفرعية: TTML وWebVTT. تحتوي سمة TTMLPath على عنوان URL لملف TML الجانبي، وتحتوي سمة WebVTTPath بشكل مشابه على عنوان URL لملف الجانب الجانبي WebVTT.
تمثيل JSON
{
  "language": string,
  "language_name": string,
  "ttml": string,
  "webvtt": string,
}
الحقول
language string

رمز لغة، مثل en أو de.
language_name string

الاسم الوصفي للغة: يفرّق بين المجموعة المحددة من العناوين الفرعية في حال توفّر مجموعات متعددة للّغة نفسها.
ttml string

عنوان URL اختياري لملف TTML الجانبي
webvtt string

عنوان URL اختياري لملف WebVTT الجانبي

الرمز

يحتوي الرمز على معلومات حول رمز نموذج عرض إعلانات فيديو (VAST).
تمثيل JSON
{
  "click_data": object(ClickData),
  "creative_type": string,
  "click_fallback_images": [object(FallbackImage)],
  "height": int32,
  "width": int32,
  "resource": string,
  "type": string,
  "x_position": string,
  "y_position": string,
  "program": string,
  "alt_text": string,
}
الحقول
click_data object(ClickData)

creative_type string

click_fallback_images [object(FallbackImage)]

height int32

width int32

resource string

type string

x_position string

y_position string

program string

alt_text string

ClickData

تحتوي ClickData على معلومات حول أحد رموز النقر.
تمثيل JSON
{
  "url": string,
}
الحقول
url string

FallbackImage

تحتوي الصورة الاحتياطية على معلومات حول صورة VAST الاحتياطية.
تمثيل JSON
{
  "creative_type": string,
  "height": int32,
  "width": int32,
  "resource": string,
  "alt_text": string,
}
الحقول
creative_type string

height int32

width int32

resource string

alt_text string

Wrapper

يحتوي الالتفاف على معلومات عن إعلان برنامج تضمين. ولا تتضمن معرف الصفقة إذا لم يكن موجودًا.
تمثيل JSON
{
  "system": string,
  "ad_id": string,
  "creative_id": string,
  "creative_ad_id": string,
  "deal_id": string,
}
الحقول
system string

معرّف نظام الإعلانات:
ad_id string

رقم تعريف الإعلان المستخدَم لإعلان الالتفاف:
creative_id string

رقم تعريف تصميم الإعلان المستخدَم في إعلان الالتفاف.
creative_ad_id string

رقم تعريف إعلان تصميم الإعلان المُستخدَم في إعلان الالتفاف.
deal_id string

رقم تعريف الصفقة الاختياري لإعلان التضمين.

إثبات الملكية

تحتوي عملية إثبات الملكية على معلومات بشأن القياس المفتوح، التي تسهِّل قياس إمكانية العرض والتحقق من جهة خارجية. في الوقت الحالي، لا يتم دعم سوى موارد JavaScript. يُرجى الاطّلاع على https://iabtechlab.com/standards/open-measurement-sdk/ .
تمثيل JSON
{
  "vendor": string,
  "java_script_resources": [object(JavaScriptResource)],
  "tracking_events": [object(TrackingEvent)],
  "parameters": string,
}
الحقول
vendor string

مورّد إثبات الملكية:
java_script_resources [object(JavaScriptResource)]

قائمة بموارد JavaScript لعملية إثبات الملكية
tracking_events [object(TrackingEvent)]

قائمة أحداث تتبُّع عملية إثبات الملكية
parameters string

سلسلة مبهمة تم تمريرها إلى رمز التحقّق من التمهيد.

JavaScriptResource

يحتوي JavaScriptResource على معلومات لإثبات الملكية عبر JavaScript.
تمثيل JSON
{
  "script_url": string,
  "api_framework": string,
  "browser_optional": boolean,
}
الحقول
script_url string

معرّف موارد منتظم (URI) لحمولة JavaScript
api_framework string

APIFramework هو اسم إطار عمل الفيديو الذي ينفِّذ رمز التحقّق.
browser_optional boolean

ما إذا كان يمكن تشغيل هذا النص البرمجي خارج متصفِّح أم لا.

TrackingEvent

يحتوي traceEvent على عناوين URL التي يجب أن يرسلها العميل في حالات معينة.
تمثيل JSON
{
  "event": string,
  "uri": string,
}
الحقول
event string

نوع حدث التتبّع، الخيار الوحيد المتاح حاليًا هو verificationNotExecuted" على النحو المحدّد في مواصفات VAST 4.1.
uri string

حدث التتبّع الذي سيتم إرسال إشعار إليه.

UniversalAdID

يتمّ استخدام UniversalAdID لتوفير معرّف تصميم إعلان فريد يتم الاحتفاظ به في جميع أنظمة الإعلانات.
تمثيل JSON
{
  "id_value": string,
  "id_registry": string,
}
الحقول
id_value string

رقم تعريف الإعلان العام لتصميم الإعلان الذي تم اختياره
id_registry string

سلسلة تُستخدَم لتحديد عنوان URL للموقع الإلكتروني الخاص بقاعدة بيانات المسجّلين حيث تتم فهرسة المعرّف العام للإعلان لتصميم الإعلان المحدّد.

الإعلان المصاحب

يحتوي الإعلان المصاحب على معلومات للإعلانات المصاحبة التي يمكن عرضها مع الإعلان.
تمثيل JSON
{
  "click_data": object(ClickData),
  "creative_type": string,
  "height": int32,
  "width": int32,
  "resource": string,
  "type": string,
}
الحقول
click_data object(ClickData)

بيانات النقرات لهذا الإعلان المصاحب
creative_type string

سمة CreativeType في العقدة <StaticResource> في نموذج عرض إعلانات الفيديو (VAST) إذا كان هذا العنصر مصاحبًا من النوع الثابت.
height int32

الارتفاع بالبكسل لهذا العنصر المصاحب.
width int32

العرض بالبكسل لهذا الإعلان المصاحب.
resource string

بالنسبة إلى الإعلانات المصاحبة الثابتة وإطارات iframe، سيكون هذا هو عنوان URL الذي سيتم تحميله وعرضه. بالنسبة إلى إعلانات HTML المصاحبة، سيكون هذا هو مقتطف HTML الذي يجب عرضه كإعلان مصاحب.
type string

نوع هذا الرفيق. ويمكن أن يكون العنوان ثابتًا أو إطار iframe أو HTML.

InteractiveFile

يحتوي ملف InteractiveFile على معلومات لتصميم الإعلان التفاعلي (أي SIMID) التي يجب عرضها أثناء تشغيل الإعلان.
تمثيل JSON
{
  "resource": string,
  "type": string,
  "variable_duration": boolean,
  "ad_parameters": string,
}
الحقول
resource string

عنوان URL لتصميم الإعلان التفاعلي
type string

نوع MIME للملف المقدَّم كمورد.
variable_duration boolean

ما إذا كان تصميم الإعلان هذا قد يطلب تمديد المدة أم لا.
ad_parameters string

قيمة عقدة <AdParameters> في نموذج عرض إعلانات الفيديو (VAST).