تتيح لك واجهة برمجة التطبيقات 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 لمصدر المحتوى ومعرّف الفيديو المحدّدَين.
تنشئ بث 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 |
إجراء اختياري | اضبط القيمة على |
معلَمات استهداف مواضع الإعلانات | إجراء اختياري | معلمات استهداف إضافية. |
إلغاء مَعلمات مصدر البيانات | إجراء اختياري | إلغاء القيم التلقائية لمَعلمة إنشاء مصدر البيانات |
مصادقة 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). |