כשמכרז של קהל מוגן מחזיר מועמד למודעה, הוא יכול להיות מוחזר כ-URN אטום, שמשמש לעיבוד מודעה ב-iframe, או כ-FencedFrameConfig שמשמש לעיבוד המודעה ב-fenced frame.
במדריך הזה נסביר מהו פריים מוגבל ולמה הוא נחוץ, וגם איך להציג מודעה באמצעות כל אחת מהשיטות. מידע נוסף על fenced frames זמין במדריך הזה או בהצעה.
מהן מסגרות בלי שיתוף נתונים?
מסגרת מגודרת (<fencedframe>) היא רכיב HTML לתוכן מוטמע,
בדומה ל-iframe. בניגוד ל-iframes, fenced frame מגביל את התקשורת עם ההקשר של ההטמעה שלו כדי לאפשר ל-frame גישה לנתונים מאתרים שונים בלי לשתף אותם עם ההקשר של ההטמעה. באופן דומה, אי אפשר לשתף עם המסגרת המוגבלת נתונים מאינטראקציה ישירה (First-Party) בהקשר של ההטמעה.
לדוגמה, נניח ש-news.example (הקשר של ההטמעה) מטמיע מודעה מ-shoes.example בתוך fenced frame. news.example לא יכולה להעביר נתונים מshoes.example המודעה, וshoes.example לא יכולה ללמוד נתונים מאינטראקציה ישירה מnews.example.
איך פועלים פריימים מגודרים?
מסגרות מגודרות משתמשות באובייקט FencedFrameConfig לניווט. אפשר להחזיר את האובייקט הזה ממכרז בשילוב עם Protected Audience API. לאחר מכן, אובייקט ההגדרה מוגדר כמאפיין config באלמנט של המסגרת המגודרת. המאפיין הזה שונה ממאפיין iframe
שמוקצית לו כתובת URL או URN אטום.src לאובייקט FencedFrameConfig יש מאפיין url לקריאה בלבד. עם זאת, מכיוון שתסריטי השימוש הנוכחיים דורשים הסתרה של כתובת ה-URL בפועל של המשאב הפנימי, המאפיין הזה מחזיר את המחרוזת opaque כשקוראים אותו.
אי אפשר להשתמש ב-postMessage ב-fenced frame כדי לתקשר עם האתר שמטמיע אותו.
עם זאת, במסגרת מגודרת אפשר להשתמש ב-postMessage עם iframe בתוך המסגרת המגודרת.
מסגרות מגודרות יבודדו מהאתר של בעל התוכן הדיגיטלי בדרכים אחרות. לבעל האתר לא תהיה גישה ל-DOM בתוך fenced frame, ול-fenced frame לא תהיה גישה ל-DOM של בעל האתר. בנוסף, מאפיינים כמו name, שאפשר להגדיר להם כל ערך ובעל האתר יכול לראות אותם, לא זמינים ב-Fenced Frames.
מסגרות מגודרות מתנהגות כמו הקשר גלישה ברמה העליונה (למשל כרטיסיית דפדפן). למרות שמסגרת מגודרת בתרחישי שימוש מסוימים (כמו opaque-ads) יכולה להכיל נתונים מאתרים שונים (כמו קבוצת תחומי עניין ב-Protected Audience API), המסגרת לא יכולה לגשת לאחסון או לקובצי Cookie שלא חולקו למחיצות. ל-opaque-ads fenced
frame יש גישה למחיצת אחסון ולקובץ Cookie ייחודי שמבוססים על nonce.
במאמר הזה יש הסבר מפורט על המאפיינים של fenced frames.
איך מעבדים מודעה ב-Fenced Frame
הפונקציה מחזירה את הערך FencedFrameConfig ממכרז בשילוב עם Protected Audience API, בתנאי שהפרמטר AuctionConfig של resolveToConfig הוגדר כ-true:
const frameConfig = await navigator.runAdAuction({
// ...auction configuration
resolveToConfig: true
});
אחרי שמקבלים את ההגדרה, אפשר להקצות אותה למאפיין config של מסגרת מוגבלת כדי לנווט את המסגרת למשאב שמיוצג על ידי ההגדרה.
גרסאות קודמות של Chrome לא תומכות במאפיין resolveToConfig, ולכן עדיין צריך לוודא שההבטחה נפתרה ל-FencedFrameConfig לפני הניווט:
if (window.FencedFrameConfig && frameConfig instanceof FencedFrameConfig) {
const frame = document.createElement('fencedframe');
frame.config = frameConfig;
}
רינדור מודעה ב-iframe
אם AuctionConfig לא מגדיר במפורש את resolveToConfig או אם הוא מוגדר כ-false, הפונקציה runAdAuction() מחזירה URN אטום. אפשר להגדיר את ה-URN הזה כiframe של src כדי להציג את המודעה.