این راهنما نحوه درج تبلیغات موقت با استفاده از روش Ad pod Timing Metadata (ATM) را برای دریافت زمان و مدت زمان دقیق تبلیغات موقت، از جمله تبلیغات پیش از پخش، شرح میدهد.
برای درج تبلیغات پیش از پخش و مدیریت بازگشت به محتوا پس از وقفههای تبلیغاتی میانبرنامه، توصیه میکنیم APIهای زیر را فراخوانی کنید:
- API فراداده زمانبندی Ad pod (ATM) : جستجوی نتایج تصمیمگیری Ad pod، شامل مدت زمان تبلیغ و فهرست برنامهها.
- نقطه پایانی بخش تبلیغات : درخواست بخشهای تبلیغاتی یا فهرستبندی با امکان خاتمه دادن به پاد تبلیغاتی فعلی.
به صورت اختیاری، برای رویدادهای پخش زنده با همزمانی بالا، توصیه میکنیم API اطلاعرسانی زودهنگام تبلیغات (EABN) را برای برنامهریزی تصمیمات مربوط به تبلیغات قبل از شروع تبلیغات فراخوانی کنید.
پیشنیازها
برای شروع، به یک رویداد پخش زنده برای نوع درج آگهی پویا (DAI) در Pod Serving Redirect نیاز دارید. یکی از روشهای زیر را انتخاب کنید:
- رابط کاربری مدیر تبلیغات: یک پخش زنده برای DAI تنظیم کنید .
- رابط برنامهنویسی کاربردی مدیریت تبلیغات: از یک کتابخانه کلاینت ( گزینههای موجود ) برای فراخوانی متد
LiveStreamEventService.createLiveStreamEventsاستفاده کنید. پارامترLiveStreamEvent.dynamicAdInsertionTypeرا رویPOD_SERVING_REDIRECTتنظیم کنید.
بازیابی جریان محتوا
وقتی کاربر یک رویداد پخش زنده را انتخاب میکند، برنامهی کلاینت یک درخواست پخش زنده به Google Ad Manager ارسال میکند. در پاسخ پخش زنده، برنامه شناسهی جلسهی Google DAI و فراداده را برای گنجاندن در درخواست مانیفست پخش زنده استخراج میکند.
مثال زیر یک شناسه نشست Google DAI را به یک کنترلکننده مانیفست ارسال میکند:
https://MANIFEST_MANIPULATOR_URL/manifest.m3u8?DAI_stream_ID=SESSION_ID&network_code=NETWORK_CODE&DAI_custom_asset_key=CUSTOM_ASSET_KEY
هنگام پردازش درخواست پخش محتوای ویدیویی، شناسه جلسه Google DAI و CUSTOM_ASSET_KEY را از درخواست ذخیره کنید تا برای ادغام تبلیغات آماده شود.
بازیابی فرادادههای زمانبندی پاد تبلیغات
برای بازیابی زمانبندی پاد تبلیغات، مراحل زیر را دنبال کنید:
- یک توکن HMAC ایجاد کنید .
- API دستگاه خودپرداز را با توکن HMAC فراخوانی کنید.
درخواست فراداده زمانبندی برای تبلیغات پیش از پخش
با استفاده از گزینههای زیر، تنظیمات پیش از پخش زنده رویداد خود را تأیید کنید:
برای بازیابی نتایج تصمیمگیری در مورد تبلیغات پیش از پخش، درخواستی به API ATM ارسال کنید.
مثال زیر یک درخواست ATM برای تبلیغات پیش از پخش ایجاد میکند:
curl "https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/pod.json?stream_id=SESSION_ID&ad_break_id=preroll&auth-token=your_signed_HMAC_token"
درخواست فراداده زمانبندی برای تبلیغات میاندورهای
برای بازیابی متادیتای ad pod برای میانردهها، این مراحل را دنبال کنید:
- مانیفست پخش زنده را تجزیه کنید تا نشانگرهای تبلیغاتی که شامل زمان و مدت زمان هر تبلیغ در میان برنامه هستند را پیدا کنید.
- برای درخواست مدت زمان دقیق ad pod و slate، با نقطه پایانی ATM API تماس بگیرید. API یک شیء JSON حاوی نتایج تصمیمگیری ad pod برمیگرداند.
مثال زیر یک درخواست ATM برای تبلیغات میانپرده ایجاد میکند:
curl "https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/pod.json?stream_id=SESSION_ID&ad_break_id=AD_BREAK_ID&pd=AD_BREAK_DURATION&auth-token=your_signed_HMAC_token"
در صورت موفقیت، خروجی مشابه شیء JSON زیر را مشاهده خواهید کرد:
{
"status": "final",
"ads": [
{
"duration_ms": 5046,
"variants": {
"devrel1428000": {
"segment_extension": "ts",
"segment_durations": {
"timescale": 1000,
"values": [
5045
]
}
},
"devrel1928000": {
"segment_extension": "ts",
"segment_durations": {
"timescale": 1000,
"values": [
5045
]
}
}
}
}
],
"slate": {
"duration_ms": 0,
"variants": {
"devrel1428000": {
"segment_extension": "ts",
"segment_durations": {
"timescale": 1000,
"values": [
5005,
...
5046
]
}
},
"devrel1928000": {
"segment_extension": "ts",
"segment_durations": {
"timescale": 1000,
"values": [
5005,
...
5046
]
}
}
}
}
}
تبلیغات را به محتوای مانیفست اضافه کنید
بخشهای بعدی شما را در نحوهی تغییر مانیفست پخش زنده و افزودن بخشهای تبلیغاتی راهنمایی میکنند.
بخشهای مربوط به تبلیغات را شناسایی کرده و ناپیوستگیها را وارد کنید
همانطور که هر مانیفست متغیر را پردازش میکنید، برچسبهای EXT-X-CUE-IN و EXT-X-CUE-OUT را در جریان خود شناسایی کنید که نشان دهنده شروع و پایان یک وقفه تبلیغاتی است.
تگهای EXT-X-CUE-IN و EXT-X-CUE-OUT را با عناصر EXT-X-DISCONTINUITY جایگزین کنید تا پخشکننده ویدیوی کلاینت بتواند بین محتوا و تبلیغات جابجا شود.
مانیفست مثال زیر جایگزین تگهای EXT-X-CUE-IN و EXT-X-CUE-OUT میشود:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXT-X-CUE-OUT:15.000
#EXTINF:5.000,
contentorigin.com/3.ts
#EXTINF:5.000,
contentorigin.com/4.ts
#EXTINF:5.000,
contentorigin.com/5.ts
#EXT-X-CUE-IN
#EXTINF:5.000,
contentorigin.com/6.ts
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4
مثال زیر یک مانیفست جایگزین شده را نشان میدهد:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXTINF:5.000,
#EXT-X-DISCONTINUITY
{... Insert ad segments here ...}
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/6.mp4
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4
بخشهای تبلیغاتی Google DAI رمزگذاری نشدهاند. اگر محتوای شما رمزگذاری شده است، با وارد کردن عنصر EXT-X-KEY:METHOD=NONE قبل از اولین بخش تبلیغاتی هر تبلیغ، رمزگذاری را حذف کنید. در پایان تبلیغ، با وارد کردن EXT-X-KEY مناسب، رمزگذاری را دوباره اضافه کنید.
زمان شروع، مدت زمان و فهرست آگهیهای تبلیغاتی آینده را پیگیری کنید.
ساخت URL های بخش تبلیغات
بخشهای محتوایی بین تگهای EXT-X-DISCONTINUITY را با URLهای مربوط به هر بخش تبلیغاتی جایگزین کنید. برای تعیین تعداد بخشهای تبلیغاتی که باید درج شوند، از ads.segment_durations.values ارائه شده در پاسخ JSON از API ATM استفاده کنید.
برای پایان دادن زودهنگام به یک پاد تبلیغاتی هنگام شناسایی برچسب EXT-X-CUE-IN ، پارامتر d= را به URL بخش نهایی تبلیغ اضافه کنید. این پارامتر بخش را کوتاه میکند تا از تأثیر بر جدول زمانی پخشکننده ویدیوی کلاینت جلوگیری شود.
مثال زیر یک URL از پیش بارگذاری شده برای بخش تبلیغات مانیفست را مونتاژ میکند. توجه داشته باشید که بخشهای تبلیغات از یک شاخص مبتنی بر صفر استفاده میکنند:
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/preroll/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
مثال زیر یک URL مربوط به بخش تبلیغات میانی را برای مانیفست آماده میکند:
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
مثال زیر بخشهای تبلیغاتی را به مانیفست اضافه میکند:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.00,
contentorigin.com/1.ts
#EXTINF:5.00,
contentorigin.com/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/1.ts?stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/2.ts?stream_id=SESSION_ID
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
contentorigin.com/6.mp4
#EXTINF:5.00,
contentorigin.com/7.mp4
#EXTINF:5.00,
contentorigin.com/8.mp4
ساخت قطعات تخته سنگ
برای پر کردن فاصله بین تبلیغ و محتوا، بخشهای slate را وارد کنید. از آرایه slates.segment_durations.values از پاسخ JSON رابط برنامهنویسی ATM برای تعیین مدت زمان هر بخش slate استفاده کنید. در صورت نیاز، توالی مدت زمانهای بخش را برای پر کردن کل فضای تبلیغ، حلقه کنید.
مثال زیر یک قطعه تخته سنگ را مونتاژ میکند:
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/slate/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
عدد slate/0 در مثال، شماره تکرار slate را نشان میدهد. برای تعیین اینکه آیا از 0 شروع کنید و این عدد را برای هر حلقه slate افزایش دهید، یا آن را برای همه تکرارها روی 0 نگه دارید، به قابلیت سازگاری و ذخیرهسازی پخشکننده ویدیوی کلاینت خود مراجعه کنید.
مدیریت بازگشت به محتوا
پس از وارد کردن تمام بخشها از پاد تبلیغاتی، یکی از روشهای زیر را برای بازگشت به جریان محتوای خود انتخاب کنید:
| روش | توضیحات | تأثیرات روی پخشکننده ویدیوی کلاینت |
|---|---|---|
| با قطعات تخته سنگ پر کنید | بخشهای slate را وارد میکند و slate را حلقه میکند. مدت زمان را پر میکند و عناصر EXT-X-DISCONTINUITY را بین هر تکرار slate وارد میکند. | هیچ اثری ندارد. پخشکننده ویدیو بدون تغییر جدول زمانی، به محتوا برمیگردد. |
| با یک قطعه تخته سنگ دوباره تراز کنید | یک بخش slate واحد درج میکند. از پارامتر d= برای پر کردن مدت زمان تا شروع محتوا استفاده میکند. | هیچ اثری ندارد. پخشکننده ویدیو بدون تغییر جدول زمانی، به محتوا برمیگردد. |
| بازگشت فوری | بخشهای محتوا را وارد کنید. | جدول زمانی پخشکننده ویدیو تغییر کرده است. پخشکننده ویدیوی کلاینت شما باید جدول زمانی تغییر یافته را مدیریت کند. |
اختیاری: زمان پخش تبلیغات را تنظیم کنید
برای افزایش نرخ پر شدن، یک اعلان اولیه تبلیغات (EABN) با مدت زمان پخش تبلیغات، پارامترهای هدفگیری سفارشی و دادههای سیگنال SCTE-35 ارسال کنید. برای جزئیات بیشتر، به ارسال اعلانهای اولیه تبلیغات مراجعه کنید.