במסמך הזה מופיעה סקירה כללית ברמה גבוהה של הפעלת מכרז עם נתוני Protected Audience עבור מוכר יחיד, כפי שהם משמשים בגרסה הנוכחית של Protected Audience API. אפשר להפעיל מכרז עם מוכר יחיד כחלק ממכרז מורכב יותר שכולל כמה מוכרים. במקרה כזה, המכרז של המוכר היחיד נקרא 'מכרז רכיבים', והוא יכול לספק מועמדות למודעות ל'מכרז ברמה העליונה' שבו משתתפים כמה מוכרים.
במדריך למפתחים מוסבר על מחזור החיים המלא של Protected Audience API, ובהסבר על Protected Audience API מוסבר בפירוט איך מוכרים מפעילים מכרזים במכשיר.
שישה שלבים במכרז של מודעות ב-Protected Audience API

- משתמש מבקר באתר שבו מוצגות מודעות.
- הקוד של המוכר מפעיל את
navigator.runAdAuction()
. כאן מצוין איזה שטח פרסום למכירה ומי יכול להגיש הצעות מחיר. בנוסף, המוכרים צריכים לכלול סקריפט שמעניק לכל הצעה ניקוד,scoreAd()
. - הקוד של הקונה המורשה מופעל כדי ליצור הצעת מחיר, כתובת URL לנכס קריאייטיב רלוונטי של מודעה ונתונים אחרים. סקריפט הבידינג יכול לשלוח שאילתה לשירות המפתח/ערך של הקונה כדי לקבל נתונים בזמן אמת, כמו יתרת התקציב של קמפיין הפרסום.
- הקוד של המוכר מקצה ניקוד לכל הצעת מחיר ובוחר את הזוכה. הלוגיקה הזו משתמשת בערך הצעת המחיר ובנתונים אחרים כדי להחזיר את מידת הרצוי של הצעת המחיר. מודעות שלא מצליחות לנצח את המודעה הזוכה לפי הקשר נדחות. המוכרים יכולים להשתמש בשירות מפתח/ערך משלהם לנתונים בזמן אמת.
- המודעה הזוכה מוחזרת כערך אטום, שמוצג במסגרת מוקפת. גם המוכר וגם בעל התוכן הדיגיטלי לא יוכלו לראות את הערך הזה.
- הדיווח על המכרז נשלח למוכר ולקונים הזוכים.
מכרז יכול להתרחש כשמשתמש מנווט לדף שבו מוצגת מודעה. ייתכן שהמכרזים יתקיימו מראש כדי שהקריאייטיב של המודעה יהיה מוכן כשהמיקום של המודעה יופיע.
המוכרים מפעילים את מכרז המודעות, מעניקים ניקוד למודעות המועמדות באמצעות לוגיקה מותאמת אישית שסופקה כפונקציית scoreAd()
, והם אחראים לדווח על תוצאות המכרז לעצמם וגם לקונה המנצח. בנוסף, המוכרים יכולים לאכוף כללי בעלים של תוכן דיגיטלי ולסנן לפי איכות מודעות באמצעות הפונקציה scoreAd()
.
מוכרים יכולים להפנות ל:
- בעלי תוכן דיגיטלי, שפועלים בעצמם כדי לארח תוכן של מודעות באתר שלהם
- פלטפורמות לספקים (SSP), שפועלות עם בעל התוכן הדיגיטלי ומספקות שירותים אחרים
- סקריפטים של צד שלישי, שפועלים בשם בעלי תוכן דיגיטלי כדי לאפשר להם להשתתף במכרזים של מודעות.
דרישות מוקדמות להפעלת מכרז
כדי להפעיל מכרז, המוכר צריך להגדיר שתי פונקציות JavaScript:
scoreAd()
, שמעניק ניקוד למודעת מועמדתreportResult()
, שמטפל בדיווח על תוצאת המכרז לבעל העסק עצמו
צריך להציג את הסקריפטים האלה מנקודת קצה אחת בבעלות המוכר.
scoreAd()
המוכר צריך להגדיר פונקציית scoreAd()
שמוצגת מנקודת קצה שבבעלותו. נקודת הקצה מצוינה בהגדרת המכרז בתור decisionLogicUrl
. לחתימה של הפונקציה scoreAd()
יש את הצורה הבאה:
scoreAd(
adMetadata,
bid,
auctionConfig,
trustedScoringSignals,
browserSignals,
directFromSellerSignals)
הפרמטרים של scoreAd()
הם:
adMetaData
, שהוא מטא-נתונים שרירותיים לגבי הקריאייטיב של המודעה שסופקו על ידי הקונה. זהו אובייקט JSON שניתן לסריאליזציה, שמוכרים וקונים יצטרכו להגדיר ולהסכים על המבנה שלו.bid
, שהוא ערך מספרי שמייצג את הצעת המחיר.auctionConfig
, שהיא הגדרת המכרז ששימשה לביצוע המכרז.trustedScoringSignals
, שהם אותות שנקראים בזמן המכרז משרת המפתחות/הערכים של המוכר. הפלטפורמה תשתמש ב-renderUrl
של מודעת המועמדת כמפתח לחיפוש הזה.browserSignals
, שהוא אובייקט שנוצר על ידי הדפדפן, כולל מידע שהדפדפן יודע ושהסקריפט של המכרז של המוכר עשוי לרצות לאמת.directFromSellerSignals
הוא אובייקט שעשוי להכיל את השדות הבאים: **sellerSignals
: כמוauctionConfig.sellerSignals
, אבל מועבר באמצעות המנגנוןdirectFromSellerSignals
. **auctionSignals
: כמוauctionConfig.auctionSignals
, אבל מועבר באמצעות המנגנוןdirectFromSellerSignals
.
הדוגמה הבאה היא של browserSignals
. הערה: הערך של renderUrl
של המודעה המועמדת זמין באמצעות האותות הבאים:
{ 'topWindowHostname': 'www.example-publisher.com',
'interestGroupOwner': 'https://www.example-buyer.com',
'renderURL': 'https://cdn.com/render_url_of_bid',
'renderSize': {width: 100, height: 200}, /* if specified in the bid */
'adComponents': ['https://cdn.com/ad_component_of_bid',
'https://cdn.com/next_ad_component_of_bid',
...],
'biddingDurationMsec': 12,
'bidCurrency': 'USD', /* bidCurrency returned by generateBid, or '???' if none */
'dataVersion': 1, /* Data-Version value from the trusted scoring signals server's response */
}
reportResult()
המוכר צריך להגדיר פונקציית reportResult()
שמוצגת מנקודת קצה שבבעלותו. נקודת הקצה מצוינה בהגדרת המכרז בתור decisionLogicUrl
. לחתימה של הפונקציה reportResult()
יש את הצורה הבאה:
reportResult(auctionConfig, browserSignals) {
...
return signalsForWinner;
}
הפרמטרים של reportResult()
הם:
auctionConfig
, שהיא הגדרת המכרז ששימשה לביצוע המכרז.browserSignals
, שהוא אובייקט שנוצר על ידי הדפדפן, כולל מידע שהדפדפן יודע ושהסקריפט של המכרז של המוכר עשוי לרצות לאמת. זהו אותו אובייקט שהוענק לפונקציהscoreAds()
.
הפונקציה reportResult()
מחזירה את הערך signalsForWinner
, שהוא אובייקט JSON שרירותי שמוענק לפונקציית הדיווח של הקונה המנצח. המידע הזה צריך לכלול כל מידע רלוונטי שהמוכר יכול לספק לגבי המכרז, שהקונה זקוק לו לצורך הדיווח שלו.
הפעלת מכרז של Protected Audience API
יש ארבעה שלבים עיקריים שמוכרים צריכים לבצע כדי להפעיל מכרז. חשוב לזכור שהשלבים האלה מבוססים על ההנחה שלמוכר יש נקודת קצה מוגדרת להחזרת ה-JavaScript הנדרש שצוין קודם במדריך הזה.
- מגדירים את המכרז. השלב הזה כולל יצירת אובייקט
auctionConfig
. כך המוכר יכול לציין אילו קונים ישתתפו במכרז, וגם לספק אותות שעשויים להיות רלוונטיים במהלך יצירת הצעות המחיר או במהלך הניקוד של המודעות. - מריצים את המכרז באמצעות קריאה לפונקציה
navigator.runAdAuction()
, ומעבירים את ההגדרות שנוצרו בשלב הקודם. הפעולה הזו מפעילה את שרשרת הקונים שיוצרים הצעות מחיר ולאחר מכן נותנים להם ניקוד. התוצאה הסופית של השלב הזה היא מודעת 'מועמדת' שאפשר ליצור ממנה גרפיקה כדי להציג מודעה. - מריצים רינדור של המודעה הזוכה במסגרת מוקפת או ב-iframe.
- מדווחים על תוצאת המכרז. יש פונקציה,
navigator.sendReportTo()
, שתפעיל את הדיווח. המוכר תמיד יקבל דוח על תוצאות המכרז. רק הקונה שזכה במכרז יקבל דוח. הדיווח מתבצע באמצעותreportResult()
של המוכר, כפי שמתואר למעלה במדריך הזה.