وقتی یک مزایده مخاطب محافظتشده، یک کاندید تبلیغ را برمیگرداند، میتواند یا به صورت یک URN مات برگردانده شود که برای رندر کردن تبلیغ در یک iframe استفاده میشود، یا به صورت یک FencedFrameConfig برگردانده شود که برای رندر کردن تبلیغ در یک قاب محصور استفاده میشود.
این راهنما توضیح میدهد که قاب حصارکشیشده چیست و چرا مورد نیاز است، و همچنین نحوهی ارائهی آگهی با استفاده از هر دو روش را شرح میدهد. برای بررسی عمیقتر قابهای حصارکشیشده، اطلاعات بیشتر را در این راهنما یا در پیشنهاد بیابید.
قابهای حصارکشی شده چیستند؟
یک قاب محصور ( <fencedframe> ) یک عنصر HTML برای محتوای جاسازیشده است، مشابه iframe . برخلاف iframe ها، یک قاب محصور ارتباط با زمینه جاسازیشده خود را محدود میکند تا به قاب اجازه دهد بدون به اشتراک گذاشتن دادههای بینسایتی با زمینه جاسازی، به دادههای بینسایتی دسترسی داشته باشد. به طور مشابه، هیچ داده شخص ثالثی در زمینه جاسازیشده نمیتواند با قاب محصور به اشتراک گذاشته شود.
برای مثال، فرض کنید news.example (زمینه جاسازی) یک تبلیغ از shoes.example را در یک قاب محصور جاسازی میکند. news.example نمیتواند دادهها را از تبلیغ shoes.example استخراج کند و shoes.example نمیتواند دادههای شخص ثالث را از news.example یاد بگیرد.
قابهای نردهای چگونه کار میکنند؟
فریمهای حصارکشیشده از شیء FencedFrameConfig برای پیمایش استفاده میکنند. این شیء را میتوان از یک حراج مخاطب محافظتشده بازگرداند. سپس، شیء پیکربندی به عنوان ویژگی config در عنصر فریم حصارکشیشده تنظیم میشود. این با یک iframe که در آن یک URL یا URN مات به ویژگی src اختصاص داده میشود، متفاوت است. شیء FencedFrameConfig دارای یک ویژگی url فقط خواندنی است. با این حال، از آنجایی که موارد استفاده فعلی نیاز به پنهان بودن URL واقعی منبع داخلی دارند، این ویژگی هنگام خواندن، رشته مات را برمیگرداند.
یک فریم حصارکشی شده نمیتواند postMessage برای ارتباط با جاسازیکنندهاش استفاده کند. با این حال، یک فریم حصارکشی شده میتواند postMessage با iframe های داخل فریم حصارکشی شده استفاده کند.
فریمهای حصارکشیشده به روشهای دیگری از ناشر جدا میشوند. ناشر به DOM داخل یک فریم حصارکشیشده دسترسی نخواهد داشت و فریم حصارکشیشده نمیتواند به DOM ناشر دسترسی داشته باشد. علاوه بر این، ویژگیهایی مانند name که میتوانند به هر مقداری تنظیم شوند و توسط ناشر مشاهده شوند، در فریمهای حصارکشیشده در دسترس نیستند.
فریمهای حصارکشیشده مانند یک زمینه مرور سطح بالا (مانند یک تب مرورگر) رفتار میکنند. اگرچه یک فریم حصارکشیشده در موارد استفاده خاص (مانند opaque-ads ) میتواند حاوی دادههای بینسایتی (مانند یک گروه علاقهمندی API مخاطب محافظتشده) باشد، اما این فریم نمیتواند به فضای ذخیرهسازی پارتیشنبندی نشده یا کوکیها دسترسی داشته باشد. یک فریم حصارکشیشده opaque-ads میتواند به یک کوکی و پارتیشن ذخیرهسازی منحصر به فرد و مبتنی بر nonce دسترسی داشته باشد.
ویژگیهای قابهای حصارکشیشده در توضیحدهنده با جزئیات بیشتری شرح داده شده است.
یک تبلیغ را در یک قاب حصارکشی شده ارائه دهید
یک FencedFrameConfig از یک مزایدهی Protected Audience بازگردانده میشود، مشروط بر اینکه پارامتر resolveToConfig از AuctionConfig روی true تنظیم شده باشد:
const frameConfig = await navigator.runAdAuction({
// ...auction configuration
resolveToConfig: true
});
پس از دریافت پیکربندی، میتوانید آن را به ویژگی config یک فریم حصارکشیشده اختصاص دهید تا فریم به منبعی که توسط پیکربندی نمایش داده میشود، هدایت شود. نسخههای قبلی کروم از ویژگی resolveToConfig پشتیبانی نمیکنند، بنابراین قبل از پیمایش، باید تأیید کنید که promise به یک FencedFrameConfig تبدیل شده است:
if (window.FencedFrameConfig && frameConfig instanceof FencedFrameConfig) {
const frame = document.createElement('fencedframe');
frame.config = frameConfig;
}
نمایش تبلیغ در iframe
اگر AuctionConfig به طور صریح resolveToConfig تنظیم نکند یا اگر روی false تنظیم شده باشد، runAdAuction() یک URN مات برمیگرداند. این URN میتواند به عنوان src یک iframe برای رندر کردن تبلیغ تنظیم شود.