במדריך הזה מוסבר איך להגדיר את הכלי לשינוי מניפסט כדי לבקש פלחים של מודעות או של לוחות מידע באמצעות השיטה pod segment של מודעות.
בוחרים פרוטוקול סטרימינג:
דרישות מוקדמות
לפני שממשיכים, צריך להגדיר אירוע בשידור חי עבור סוג ההפניה האוטומטית של הצגת פודים ופרופילי קידוד של DAI (הוספת מודעות דינמית). כדי להגדיר אירוע בשידור חי, בוחרים אחת מהשיטות הבאות:
- ממשק המשתמש של Ad Manager: הגדרת שידור חי ל-DAI.
- Ad Manager API: משתמשים בספריית לקוח כדי לקרוא לשיטה
LiveStreamEventService.createLiveStreamEvents. מגדירים את הפרמטרLiveStreamEvent.dynamicAdInsertionTypeלערךPOD_SERVING_REDIRECT.
אחרי שמגדירים את אירוע השידור החי, מאחזרים את פרופילי הקידוד של האירוע
מממשק המשתמש או מ-API של Ad Manager באמצעות קריאה לשיטה
DaiEncodingProfileService.getDaiEncodingProfilesByStatement.
אחזור מקור נתוני התוכן
כשמשתמש בוחר אירוע בשידור חי, אפליקציית הלקוח שולחת בקשת סטרימינג אל 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 מהבקשה כדי להתכונן להוספת מודעות.
זיהוי פלחים של הפסקות פרסום והוספת אי-רציפות
במהלך העיבוד של כל מניפסט של וריאנט, צריך לזהות את התגים 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 לא מוצפנים. אם התוכן מוצפן, צריך להסיר את ההצפנה על ידי הוספת רכיב EXT-X-KEY:METHOD=NONE לפני פלח המודעה הראשון של כל הפסקה לפרסומות. בסוף הפסקת הפרסומות, מוסיפים שוב הצפנה על ידי הוספת תג EXT-X-KEY מתאים.
כדאי לעקוב אחרי שעת ההתחלה, משך הזמן והאינדקס של הפסקת הפרסומות הקרובה.
יצירת טוקן של קוד אימות הודעות המבוסס על גיבוב (HMAC)
כל בקשה לפלח שנוצרת באמצעות שרת של פוד להפניה לפלח חייבת לכלול אסימון חתום ב-HMAC לצורך אימות.
צריך לחשב את הטוקן הזה פעם אחת לכל הפסקה לפרסומות ולשתף את הטוקן בכל סשן של סטרימינג.
איסוף פרמטרים של טוקנים
כדי לאכלס את גוף הטוקן, אוספים את הנתונים הבאים מההפסקה הנוכחית למודעה:
| פרמטרים של טוקנים | ||
|---|---|---|
custom_asset_key
|
חובה | מפתח הנכס של השידור החי המותאם אישית מ-Google Ad Manager. |
cust_params
|
אופציונלי | פרמטרים מותאמים אישית לטירגוט. cust_params.
|
exp
|
חובה | חותמת הזמן של התפוגה של הטוקן הנוכחי בשניות. |
network_code
|
חובה | קוד הרשת של Ad Manager 360. |
pod_id
|
חובה | המזהה של ההפסקה המסחרית. מספר שלם שמתחיל ב-1. המזהה הזה גדל באחד בכל הפסקה לפרסומות.
הערך הזה חייב להיות זהה אצל כל המשתמשים שצופים באותה הפסקה לפרסומות באירוע הנוכחי. |
pd
|
חובה, למעט אירועים שבהם מופעלות הפסקות פרסום ללא משך זמן. | משך ההפסקה למודעה באלפיות השנייה. הופנית מכתובת ad_pod_duration.
|
scte35
|
אופציונלי | אות SCTE-35 בקידוד Base64. מערכת Google DAI תמיד מעתיקה את האות להפסקת הפרסום שנוצרה, גם אם האות שגוי.
אם הערך שגוי, תקבלו הודעה בכותרת ה-HTTP X-Ad-Manager-Dai-Warning בתגובה, והאות עדיין ימשיך ליצור הפסקה פרסומית. לפרטים על האופן שבו DAI משתמש באות SCTE-35, אפשר לעיין בסמני המודעות הנתמכים.
|
יצירת מחרוזת טוקן
כדי ליצור מחרוזת של טוקן, צריך לרשום כל פרמטר בסדר אלפביתי, בפורמט NAME=VALUE, ולהפריד בין כל זוג שם-ערך באמצעות תו טילדה ~.
לפרמטרים אופציונליים שלא בשימוש, צריך להשתמש במחרוזת ריקה כערך, או להסיר את הפרמטר לחלוטין.
בדוגמה הבאה מוצג פורמט של מחרוזת אסימון:
custom_asset_key=CUSTOM_ASSET_STRING~exp=EXPIRATION~network_code=NETWORK_CODE~pd=POD_DURATION~pod_id=AD_POD_INDEX~scte35=SCTE35_MESSAGE
יצירת חתימת HMAC
חתימת ה-HMAC היא גיבוב SHA-256 של מחרוזת האסימון בפורמט HEX. המפתח הסודי הוא מפתח אימות HMAC שמשויך לאירוע השידור החי שלכם ב-Google Ad Manager.
מחרוזת טוקן חתימה
אחרי שיוצרים את חתימת ה-HMAC, מוסיפים את החתימה למחרוזת הטוקן בפורמט הבא:
~hmac=HMAC_SIGNATURE
קידוד מחרוזת הטוקן
כדי להעביר את האסימון כפרמטר של כתובת URL, צריך לקודד את כתובת ה-URL כדי להגן עליה.
בדוגמה הבאה נוצר אסימון HMAC חתום ומקודד, שבו פרמטרים אופציונליים שלא בשימוש הם מחרוזות ריקות:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~cust_params=~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=
Secret key:
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F
HMAC signature:
86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88
Signed token:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~cust_params=~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=~hmac=86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88
URL-encoded signed token:
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~cust_params%3D~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~scte35%3D~hmac%3D86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88
בדוגמה הבאה נוצר אסימון HMAC חתום ומקודד ללא פרמטרים אופציונליים לא בשימוש:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g3~exp=1489680000~network_code=6062~pd=180000~pod_id=5
Secret key:
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F
HMAC signature:
6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
Signed token:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~pod_id=5~hmac=6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
URL-encoded signed token:
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~hmac%3D6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
יצירת כתובות URL של פלחים לפרסום
מחליפים כל פלח תוכן בין התגים EXT-X-DISCONTINUITY בכתובת URL שמפנה לשיטת פלח חבילת המודעות.
בדוגמה הבאה מוצג תהליך ההרכבה של פלח של בלוק מודעות. שימו לב שפלחים של מודעות משתמשים באינדקס מבוסס-אפס:
https://dai.google.com/linear/pods/v1/seg/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=AD_SEGMENT_DURATION&pd=AD_BREAK_DURATION&stream_id=SESSION_ID&auth-token=HMAC
בדוגמה הבאה, פלחים של חבילת מודעות מוכנסים למניפסט:
#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/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=5000&so=0&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/1.ts?sd=5000&so=5000&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/2.ts?sd=5000&so=10000&pd=15000&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
אופציונלי: תזמון של הפסקה למודעה
כדי לשפר את שיעור המילוי, צריך לשלוח הודעה על הפסקת פרסום מוקדמת (EABN) עם משך בלוק הפרסום, פרמטרים מותאמים אישית של טירגוט ונתוני אותות SCTE-35. פרטים נוספים זמינים במאמר בנושא שליחת התראות מוקדמות על הפסקות לפרסומות.