מידע על ארכיטקטורת המכרז של שירותי בידינג ומכרזים
סקירה כללית
שירותי בידינג ומכרזים (B&A) מספקים לקונים ולמוכרים של שטחי פרסום קבוצה של שירותים שפועלים בסביבת מחשוב אמינה (TEE) כדי להקל על מכרז של קהל מוגן (PA). בדף הזה מתוארות ההגדרות השונות של המכרזים שבהן אפשר להשתמש ב-B&A במכרז PA.
הגדרות
| מונח | תיאור |
|---|---|
| מכרז בשילוב עם Protected Audience API | מכרז פרסום שכולל נתונים מאתרים שונים |
| מכרז הקשרי | מכרז פרסום שלא כולל נתונים מאתרים שונים. המכרז הזה מתנהל במסלול הקיים של בידינג בזמן אמת (RTB). |
| בקשה מאוחדת למכרז | בקשה שנשלחת על ידי קוד ה-JavaScript של הספק מהדפדפן, וכוללת את המטען הייעודי (payload) של המכרז ב-Protected Audience ושל המכרז ההקשרי. |
| שירות המודעות של המוכר (SAS) | השירות שאחראי לטיפול בבקשה למכרז המאוחד מהדפדפן. יכול להיות שזה שרת מודעות RTB קיים של מוכר. מערכת SAS אחראית לניהול מכרזים של מודעות בהקשר וגם מכרזים של מודעות ב-Protected Audience. |
| שירות מודעות לקונים | השירות שאחראי לשליחת הצעת מחיר בהקשר במכרז. יכול להיות שזה שרת מודעות ORTB קיים של קונה. |
שירותים לקונים ולמוכרים
שירותי B&A מורכבים מארבעה שירותים לקונים ולמוכרים:
- לקונים, שירות הבידינג ושירות הקצה של הקונה (BFE) זמינים לשימוש.
- למוכרים, השירותים Auction Service ו-Seller Front-End (SFE) Service זמינים לשימוש.
| משתתף | שירות | תיאור |
|---|---|---|
| קונים | שירות ממשק קצה של קונה (BFE) | השירות מטפל בבקשה GetBids מSFE של מוכר. הוא אחראי לפענוח המטען הייעודי (payload), לאחזור האותות של זוגות מפתח/ערך ולקריאה ל-Bidding Service's GenerateBids. |
| Bidding Service | השירות מטפל בבקשת GenerateBids מ-BFE. הוא אחראי להפעלת לוגיקת הבידינג של הקונה וליצירת הצעת מחיר. |
|
| מפיץ | שירות ממשק קצה למוכרים (SFE) | השירות מטפל בבקשה SelectAd משירות המודעות של המוכר. הוא אחראי על פענוח המטען הייעודי (payload), קריאה לפעולה GetBids של BFE, אחזור האותות של K/V, קריאה לפעולה ScoreAd של Auction Service, ואז החזרת התוצאה המוצפנת של מכרז B&A ל-SAS.
אם השירות הוא חלק מהסט של המוכר ברמה העליונה במכרז מרובה מוכרים שמתנהל בשרת, השירות מטפל גם בבקשת |
| Auction Service | השירות מטפל בבקשה ScoreAd מ-SFE. הוא אחראי להפעלת לוגיקת הניקוד של המוכר ולמתן ציון הרצויות של הצעת מחיר. |
הארכיטקטורה של מכרז PA B&A לאינטרנט
בתרשים הבא מתואר תהליך בסיסי של מכרז ב-Protected Audience עם שירותי B&A, עם מוכר יחיד וקונה יחיד. התיבות העבות עם הקו האדום מייצגות שירותים שפועלים בסביבת TEE:
- קוד ה-JavaScript של פלטפורמת ה-SSP בדף של בעל התוכן הדיגיטלי יוצר את נתוני המכרז המוצפנים של B&A על ידי קריאה ל-
navigator.getInterestGroupAdAuctionData().- המטען הייעודי המוצפן הזה מכיל את נתוני הקונה, ואפשר לפענח אותו רק בתוך SFE בסביבת מחשוב אמינה (TEE).
- קוד ה-JavaScript של פלטפורמת ה-SSP שולח בקשה מאוחדת למכרז אל שירות המודעות של אתר המכירה.
- בקשה מאוחדת למכרז מכילה גם את מטען הייעודי (payload) של מכרז ORTB בהקשר וגם את מטען הייעודי (payload) של מכרז B&A המוצפן.
- שרת המודעות של המוכר הוא שרת המודעות הקיים שלכם, והוא לא פועל בסביבת TEE.
- שירות המודעות של המוכר קורא לשירות ה-RTB של ה-DSP כדי לבקש את הצעת המחיר במכרז ההקשרי ואת האותות של הקונה שיועברו למכרז הבא של PA.
- זה יכול להיות שלב שבו הקונה מציין את הכוונה שלו להשתתף במכרז של PA.
- אחרי שהמכרז ההקשרי מסתיים, SAS שולח את הבקשה
SelectAdלשירות SFE.- הצעת המחיר הזוכה במכרז ההקשרי והאותות של הקונה מתווספים למטען הייעודי (payload) של הבקשה
SelectAd.
- הצעת המחיר הזוכה במכרז ההקשרי והאותות של הקונה מתווספים למטען הייעודי (payload) של הבקשה
- שירות ה-SFE של פלטפורמת ה-SSP קורא לשירות ה-BFE של פלטפורמת ה-DSP עם הבקשה
GetBids. - ה-BFE של ה-DSP קורא ל-Bidding Service עם הבקשה
GenerateBids. - אחרי ש-SFE מקבל את הצעת המחיר, מתבצעת קריאה ל-
ScoreAdאל שירות המכרזים.- הצעת המחיר עם הציון הכי גבוה של רצון המפרסם מוחזרת ל-SAS ואז מועברת לקוד JavaScript בדף.
- המכרז מסתיים בדפדפן על ידי העברת התוצאה המוצפנת של המכרז של B&A אל הקריאה
navigator.runAdAuction().
הגדרות של מכרזים
אפשר להגדיר מכרז בשילוב עם Protected Audience API ועם שירותי B&A בדרכים הבאות:
- מכרז עם מוכר יחיד וקונים של B&A
- מכרז במצב משולב עם קונים במכשיר וקונים ב-B&A
- מכרז עם כמה מוכרים שיכול להתנהל במכשיר או בשרת
משתתפים
כדי לתאר כל הגדרה של מכרז, נעשה במדריך הזה שימוש במשתתפים הבאים:
| משתתף | תיאור |
|---|---|
DSP-A |
קונה במכשיר |
DSP-B |
קונה במכשיר |
DSP-X |
קונה B&A |
DSP-Y |
קונה B&A |
SSP-TOP |
מוֹכר ברמה העליונה |
SSP-OD |
מוכר שפועל רק במכשיר |
SSP-BA |
מוכר שמוכר רק מוצרים מסוג B&A |
SSP-MIX |
בית עסק שמשלב אמצעי תחבורה |
יש ארבע פלטפורמות DSP:
DSP-Aו-DSP-Bמשתתפים רק במכרזים במכשיר-
DSP-Xו-DSP-Yמשתתפים במכרזים במכשיר ובמכרזים של B&A
יש ארבע פלטפורמות SSP, ולכל מוכר יש הגדרת מכרז שונה:
-
SSP-ODמפעילה מכרז שמתבצע רק במכשיר SSP-BAמפעיל מכירה פומבית של מודעות בית בלבד- מערכת
SSP-MIXמפעילה מכרז במצב משולב -
SSP-TOPמפעיל מכרז עם מספר אתרי מכירה:SSP-OD/BA/MIXמשתתפים כמוכרי רכיבים במכרז מרובה אתרי מכירה שלSSP-TOP
מכרז יחיד של קנייה ומכירה
בהגדרה של אתר מכירה יחיד, מוכר אחד מפעיל מכרז שמשתתפים בו כמה קונים. אם המוכר מפעיל מכרז B&A, הקונים צריכים להפעיל את חבילת השירותים של B&A לקונים כדי להגיש הצעת מחיר למכרז. הקונים והמוכרים לא צריכים להשתמש באותו ספק ענן.
בהגדרה שלמעלה, SSP-BA מפעיל מכרז B&A שבו DSP-X ו-DSP-Y משתתפים באמצעות חבילת השירותים של B&A Services לקונים. שירות המודעות של המוכר מריץ קודם מכרז הקשרי עבור DSP-X ו-DSP-Y, ואז מריץ מכרז של Protected Audience על ידי שליחת הבקשה SelectAd לשירות SFE של המוכר. הצעת המחיר המנצחת במכרז ההקשרי והאותות של כל קונה מועברים לקריאה SelectAd. לאחר מכן, שירות ה-SFE שולח בקשות GetBids אל ה-BFE של DSP-X ושל DSP-Y, שיפעיל את שירות הבידינג שלהם כדי ליצור הצעת מחיר.
תוצאת המכרז המוצפנת של B&A מוחזרת ללקוח ומועברת לקריאה runAdAuction(). הגדרה של מכרז עם מוכר יחיד נראית כך:
await navigator.runAdAuction({
seller: 'https://ssp-ba.example',
requestId: 'g8312cb2-da2d-4e9b-80e6-e13dec2a581c',
serverResponse: Uint8Array(560) [193, 120, 4, …] // Encrypted B&A auction result
})
הערך requestId מגיע מהקריאה getInterestGroupAdAuctionData() בצד הלקוח, והנתונים serverResponse מגיעים מהמכרז של B&A בצד השרת.
מכרז במצב מעורב
בשיטת ההגדרה המשולבת, הקונים יכולים להשתתף במכרז של המוכר מתוך המכשיר או מ-B&A. החיצים הכחולים מייצגים את הנתיב של המכרז במכשיר, והחיצים האדומים מייצגים את הנתיב של המכרז של B&A:
בהגדרה הזו, DSP-A ו-DSP-B הם קונים ששולחים את הצעות המחיר שלהם במכשיר, ו-DSP-X ו-DSP-Y הם קונים ששולחים את הצעות המחיר שלהם באמצעות B&A. הקונים במכשיר משתתפים במכרז PA במכשיר בדפדפן, והקונים ב-B&A משתתפים במכרז B&A שמתואר בקטע מכרז של מוכר יחיד.
המכרז ההקשרי מופעל קודם לכל הקונים כדי לאסוף את הצעת המחיר הזוכה במכרז ההקשרי ואת האותות של הקונים. לאחר מכן, מתנהל המכרז של B&A והאותות של הקונה מהמכרז ההקשרי מועברים אל הבקשה SelectAd אל SFE. תוצאת המכרז המוצפנת של B&A שמוחזרת מ-SFE מועברת לדפדפן. אחרי מכרז ה-B&A, התוצאה שלו מוזנת למכרז במכשיר שבו משתתפים הקונים במכשיר.
הגדרת מכירה פומבית במצב מעורב של מוכר יחיד בחלק של המכירה הפומבית שמתבצע במכשיר נראית כך:
await navigator.runAdAuction({
seller: 'https://ssp-mix.example',
decisionLogicURL: 'https://ssp-ba.example/score-ad.js',
componentAuctions: [
// B&A auction
{
seller: 'https://ssp-mix.example',
requestId: 'f5135cb2-da2d-4e9b-80e6-e13dec2a581c',
serverResponse: Uint8Array(560) [133, 20, 14, …]
},
// On-device auction
{
seller: 'https://ssp-mix.example',
interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'],
decisionLogicURL: 'https://ssp-mix.example/on-device-score-ad.js',
}
]
})
הפעלה מקבילה של מכרזים במכשיר ומכרזים של B&A
ללא מקביליות, המכרזים מופעלים ברצף: קודם המכרז ההקשרי, אחר כך המכרז של המותגים והאפליקציות, ולבסוף המכרז במכשיר. אחרי שמטמיעים את ההפעלה המקבילית, המכרז ההקשרי מופעל שוב ראשון, אבל התוצאה והאותות שלו מועברים חזרה ללקוח בסטרימינג כדי להתחיל את המכרז במכשיר במקביל לפני שהמכרז של B&A מסתיים.
קוד ה-JavaScript בלקוח שולח את הבקשה למכרז המאוחד אל SAS, ו-SAS מתחיל את המכרז ההקשרי ואת המכרז של PA B&A. כש-SAS מקבל תגובה משרת ה-RTB של הקונה, אפשר להזרים חזרה לדפדפן את האותות של הקונה לגבי המכרז במכשיר, יחד עם המשתתף שזכה במכרז ההקשרי אחרי שכל הצעות המחיר מתקבלות. אותות הקונים שמוזרמים משמשים ליצירת הצעת מחיר במכשיר, והזוכה במכרז ההקשרי משמש כהצעה מינימלית כשמדרגים את הצעות המחיר.
ב-SAS, המוכר יוצר UUID nonce שמוגדר בכותרת התגובה Ad-Auction-Result-Nonce כשנתוני המכרז ההקשרי מועברים בסטרימינג לדפדפן. אותו מספר חד-פעמי משמש בקריאה SelectAd אל SFE למכרז B&A, והמספר החד-פעמי הזה נכלל בתגובה SelectAd שמוחזרת מ-SFE. במהלך שלב המכרז בצד הלקוח, הדפדפן מאמת שהערך של ה-nonce בכותרת התגובה Ad-Auction-Result-Nonce זהה לערך של ה-nonce במטען הייעודי (payload) של תוצאת המכרז המוצפנת.
במאמר הזה מוסבר על מקביליות במצב מעורב.
מכרז עם כמה מוכרים
יש שתי דרכים להפעיל מכרז PA עם כמה מוכרים באמצעות B&A:
- מכרז שמתנהל במכשיר, שבו הקריאה לשירות המודעות של כל מוכר רכיבים מגיעה מהדפדפן
- מכרז שמתנהל על ידי שרת, שבו הקריאה לשירות המודעות של כל מוכר רכיבים מגיעה משירות המודעות של המוכר ברמה העליונה
מכרז עם מספר אתרי מכירה שמתנהל במכשיר
במכרז שבו המכשיר מתאם בין כמה אתרי מכירה, כל אתר מכירה שמשתתף במכרז יכול להפעיל אותו בהגדרה שהוא בוחר. כל המוכרים במכשיר, מוכרי B&A ומוכרים במצב מעורב יכולים להשתתף במכרז ברמה העליונה.
בתרשים הזה, SSP-TOP מפעיל מכירה פומבית של מוכרים מרובים שמתנהלת בשרת, וSSP-BA-X ו-SSP-BA-Y משתתפים בה.
בקשה אחת מאוחדת למכרז, שמכילה את מטען הייעוד של המכרזים ההקשריים ומכרזי ה-PA עבור כל המשתתפים, נשלחת מהדפדפן לשירות הפרסום של המוכר ברמה העליונה. לאחר מכן, SAS מבצעת קריאה ל-SFE עם מטען הייעודי (payload).GetComponentAuctionCiphertexts מערכת SFE תפענח את המטען הייעודי (payload), תפריד את המטענים הייעודיים לפי כל מוכר רכיבים ותחזיר את המטענים הייעודיים המוצפנים מחדש אל SAS של המוכר ברמה העליונה.
הגדרות הפרוטו לבקשת GetComponentAuctionCiphertexts ולתגובה הן:
// Request sent from the top-level seller's ad service to SFE
message GetComponentAuctionCiphertextsRequest {
bytes protected_auction_ciphertext = 1; // Generated in the browser
repeated string component_sellers = 2; // The list of all component sellers
}
// Response returned from SFE to the top-level seller's ad service
message GetComponentAuctionCiphertextsResponse {
// A map of component sellers and their re-encrypted payloads
map<string, bytes> seller_component_ciphertexts = 1;
}
בכל מטען ייעודי (payload) של מוכר רכיבים, קריאות ה-SAS של המוכר ברמה העליונה מפעילות את ה-SAS של מוכרי הרכיבים, וכל SAS של רכיב מפעיל את המכירה הפומבית של הרכיב שלו. לאחר מכן, התוצאות של המכרזים על הרכיבים מוחזרות ל-SFE של המוכר ברמה העליונה, והצעות המחיר במכרזים על הרכיבים מקבלות ניקוד על ידי שירות המכרזים של המוכר ברמה העליונה. הצעת המחיר עם הציון הכי גבוה של רצון טוב מוחזרת ל-SFE, והמטען הייעודי (payload) המוצפן הזה נשלח ל-SAS כדי שיוחזר ללקוח. בדפדפן, המוכר ברמה העליונה מסיים את המכרז על ידי קריאה ל-navigator.runAdAuction() והוספת מטען הייעודי (payload) של תוצאת המכרז המוצפנת בשרת.
השלבים הבאים
אחרי שתקראו את המדריך הזה, תוכלו לבצע את השלבים הבאים:
מידע נוסף
- כדי להבין לעומק איך פועל ניתוח B&A של קהלים מוגנים, אפשר לעיין בהסברים הבאים ב-GitHub:
- כדי להתנסות ב-Protected Audience באמצעות B&A, אפשר לפעול לפי ההוראות ב-codelab בנושא בדיקות מקומיות מקצה לקצה.
- למידע על שילוב של מוכרים, אפשר לעיין במאמר שילוב עם B&A בתור מוכר.
יש לך שאלות?
- כדי לשאול שאלות לגבי שירותי בידינג ומכרזים, פותחים בעיה במאגר B&A Services.