«انتخاب نشانی وب» به شما امکان میدهد بر اساس دادههای ذخیرهسازی مشترک کاربر، بدون افشای دادههای ذخیرهشدهی اصلی، انتخاب کنید که چه محتوایی به او نشان داده شود.
در مواردی که میخواهید محتوای مبتنی بر دادههای بین سایتی را به روشی که به حفظ حریم خصوصی کمک میکند، نمایش دهید، میتوانید از Select URL API استفاده کنید. Select URL API برای مواردی مانند موارد زیر به خوبی کار میکند:
- تست A/B محتوا برای ایجاد تجربه کاربری پایدار در سایتهای مختلف.
- نمایش دکمه ورود متفاوت برای کاربرانی که حساب کاربری دارند و کاربرانی که ندارند.
- چرخش تبلیغات خلاقانه برای محدود کردن تعداد دفعاتی که یک کاربر یک تبلیغ را در سایتهای مختلف میبیند.
رابط برنامهنویسی کاربردی انتخاب آدرس اینترنتی (Select URL API) چیست؟
رابط برنامهنویسی کاربردی Select URL به شما امکان میدهد بر اساس دادههای بینسایتی، از بین مجموعهای از URLها یکی را انتخاب کنید. این API بر پایه Shared Storage ساخته شده است و از SharedStorageWorklet برای خواندن دادههای بینسایتی موجود و انتخاب یکی از URLهای ارائه شده استفاده میکند. URL انتخاب شده به گونهای به فراخواننده بازگردانده میشود که از خوانده شدن آن به جز در یک فریم محصور جلوگیری میکند. URL همچنین میتواند حداقل تا سال 2026 در یک iframe رندر شود.

در نمودار قبلی، سایت shoes.example میتواند در سایتهای ناشر دیگری مانند news.example جاسازی شود و همچنان با استفاده از Select URL با Shared Storage به همان دادهها دسترسی داشته باشد تا محتوای مناسب برای جاسازی را انتخاب کند.
نحوه عملکرد Select URL
شما میتوانید از API انتخاب URL برای انتخاب یک URL جهت رندر شدن در یک frame یا iframe محصور شده با استفاده از دادههای بین سایتی استفاده کنید. از جاوا اسکریپت برای خواندن و نوشتن دادههای بین سایتی در Shared Storage استفاده کنید، سپس بر اساس دادههای ذخیره شده خود، یک URL را از لیست ارائه شده انتخاب کنید.

URL رندر شده میتواند شامل هر نوع محتوایی باشد: تبلیغات، مقالات، تصاویر، HTML، فراخوانهای عمل (مانند دکمهها) و موارد دیگر.
در این مثال، شما یک سایت مسافرتی را اداره میکنید و در حال اجرای یک کمپین تبلیغاتی با سه نوع تبلیغ مختلف هستید. شما میخواهید این تبلیغات را بر اساس تعاملات کاربر (مشاهده یا کلیک) ترتیب دهید.
وقتی سایتی برای اولین بار یک فضای تبلیغاتی موفق را مشاهده میکند، میتوانید یک شناسه و وضعیت کلیک برای آن تبلیغ خلاقانه را در Shared Storage ذخیره کنید.
برای مثال:
await sharedStorage.set('last-creative', 'globe');
await sharedStorage.set('click', 'true');
این یعنی وقتی در سایتهای دیگری که این کاربر از آنها بازدید میکند، در مزایدهی تبلیغات برنده میشوید، میتوانید بر اساس آن دادهها، تبلیغ متفاوتی را نمایش دهید.

جاوا اسکریپت شما برای بازیابی این اطلاعات در یک SharedStorageWorklet اجرا میشود، اما کد شما نمیتواند با خارج از iframe یا frame محصور شده در صفحه والد تعامل داشته باشد یا ارتباط برقرار کند.
به عنوان مثالی دیگر، ممکن است بخواهید آزمایش کنید که کدام مقاله در یک زمینه جاسازیشده عملکرد بهتری دارد. برای آزمایش این موضوع، میتوانید وقتی کاربری را در سایت خود مشاهده میکنید، آن کاربر را به یک گروه آزمایشی اختصاص دهید، سپس شناسه آن گروه را در Shared Storage ذخیره کنید تا در یک زمینه بین سایتی به آن دسترسی داشته باشید. در سایت دیگری، میتوانید از API Select URL برای انتخاب مناسبترین URL برای رندر شدن در یک قاب محصور، بر اساس گروه آزمایشی آن کاربر که در Shared Storage ذخیره شده است، استفاده کنید.
استفاده از Select URL به شما امکان میدهد بدون به اشتراک گذاشتن اطلاعات کاربر (مانند تاریخچه مرورگر یا سایر اطلاعات شخصی) با یک سایت جاسازیکننده یا انتقال دادهها به سرورهای خودتان، بر اساس دادههای بین سایتی، تصمیمات آگاهانهای بگیرید.
بودجهها
برای کاهش خطر نشت دادههای بین سایتی، رابط برنامهنویسی کاربردی Select URL از یک سیستم بودجهبندی با ترکیبی از بودجههای بلندمدت و کوتاهمدت استفاده میکند:
- بودجه بلندمدت : بودجه بلندمدت در صورت استفاده از
selectURL()برای هر سایت تماسگیرنده، ۱۲ بیت در روز است. این بودجه فقط در صورتی محاسبه میشود که فریم میزبان URL انتخابشده، پیمایش سطح بالا را انجام دهد، که در آن هزینه به صورتlog2(number of URLs)محاسبه میشود. بنابراین، اگر ۸ URL برای انتخاب ارائه دهید، هزینه ۳ بیت است. بودجه باقیمانده برای روز به صورت12 - (sum of bits deducted in the last 24 hours)محاسبه میشود. اگر بودجه کافی باقی نمانده باشد، URL پیشفرض (اولین URL در لیست) بازگردانده میشود و اگر URL پیشفرض پیمایش شود، ۱ بیت ثبت میشود. بودجههای کوتاهمدت : بودجههای کوتاهمدت، محدودیتهای اضافی بر اساس بارگذاری هر صفحه هستند تا زمانی که فریمهای حصارکشیشده بهطور کامل اجرا شوند و گزارشگیری در سطح رویداد در دسترس باشد. بودجهای معادل ۶ بیت برای هر سایت فراخوانی، به ازای هر بار بارگذاری صفحه وجود دارد که میزان نشت اطلاعات یک سایت فراخوانی واحد را با استفاده از
selectURL()محدود میکند. همچنین یک بودجه کلی ۱۲ بیتی برای هر بار بارگذاری صفحه وجود دارد که یک محدودیت ترکیبی برای همه سایتهای فراخوانی در یک صفحه است.کوئریهای ذخیرهشده به شما امکان میدهند از نتیجهی قبلی
selectURL()در همان صفحه دوباره استفاده کنید و مصرف بودجهی کوتاهمدت را کاهش دهید. وقتیselectURL()برای اولین بار با نام کوئری ذخیرهشده فراخوانی میشود، شاخص حاصل برای کل طول عمر صفحه ذخیره میشود. وقتیselectURL()با همان نام کوئری ذخیرهشده برای فراخوانیهای بعدی فراخوانی میشود، شاخص ذخیرهشده بازگردانده میشود و عملیات ثبتشده اجرا نمیشود. در این حالت، بودجه فقط در اولین استفاده محاسبه میشود، اما در هیچ استفادهی مجددی در همان بارگذاری صفحه محاسبه نمیشود، زیرا هیچ اطلاعات جدیدی در شبکه آشکار نمیشود.شما میتوانید کوئریهای ذخیرهشده را با اضافه کردن ویژگی savedQuery به همراه نام کوئری انتخابی خود به شیء options پیادهسازی کنید، همانطور که در این مثال نشان داده شده است.
const topProductUrls = [ { url: 'https://ad.example/default-top-product.html' }, { url: 'https://ad.example/experiment-top-product.html' }]; const relatedProductUrls = [ { url: 'https://ad.example/default-related-product.html' }, { url: 'https://ad.example/experiment-related-product.html' }]; // This is the first call to `selectURL()` with `savedQuery: 'control_or_experiment'` // on this page, so it will be charged to both per-page budgets. const topProductsConfig = await sharedStorage.selectURL( 'productExperiment', topProductUrls, { savedQuery: 'control_or_experiment', keepAlive: true, resolveToConfig: true }); document.getElementById('topProductsFencedFrame').config = topProductsConfig; // This next call with this savedQuery won't charge either of the per-page budgets. const relatedProductConfig = await sharedStorage.selectURL( 'productExperiment', relatedProductUrls, { savedQuery: 'control_or_experiment', resolveToConfig: true }); document.getElementById("relatedProductFencedFrame").config = relatedProductConfig;
موارد استفاده از API URL را انتخاب کنید
اگر در حال ساخت وبسایتی با ویژگیهایی هستید که نیاز به کار در دامنههای مختلف دارند، ممکن است یکی از موارد استفاده زیر را داشته باشید:
- چرخش آگهیهای تبلیغاتی : با ذخیره دادههایی مانند شناسه آگهی، تعداد بازدیدها و تعامل کاربر، تعداد دفعات مشاهده یک آگهی مشابه توسط کاربر در چندین سایت را محدود کنید تا مشخص شود کاربران کدام آگهیهای تبلیغاتی را در سایتهای مختلف مشاهده میکنند. این به شما امکان میدهد بازدیدها را متعادل کنید و از اشباع بیش از حد محتوای خاص جلوگیری کنید تا یک تجربه کاربری منفی احتمالی را محدود کنید. برای اطلاعات بیشتر در مورد این مورد استفاده، به چرخش آگهیهای تبلیغاتی مراجعه کنید.
- انتخاب آگهی خلاقانه بر اساس فراوانی : تعداد بازدیدهای مرورگر را در فضای ذخیرهسازی مشترک ذخیره کنید تا تعداد دفعاتی که یک کاربر آگهی یکسانی را در چندین سایت مشاهده میکند، محدود شود. برای اطلاعات بیشتر در مورد این مورد استفاده، به «انتخاب آگهی خلاقانه بر اساس فراوانی» مراجعه کنید.
- سفارشیسازی تجربه کاربری برای مشتریان شناختهشده : تجربهای یکسان در دامنههای مختلف خود ارائه دهید. محتوای سفارشی و فراخوانهای اقدام را بر اساس وضعیت ثبتنام کاربر یا سایر وضعیتهای کاربر به اشتراک بگذارید و تجربهای یکسان در دامنههای مختلف خود ارائه دهید. برای اطلاعات بیشتر در مورد این مورد استفاده، به سفارشیسازی تجربه کاربری برای مشتریان شناختهشده مراجعه کنید.
- اجرای تست A/B : تست A/B دو یا چند نسخه از یک پیکربندی را با هم مقایسه میکند تا مشخص شود کدام یک بهترین عملکرد را دارد. میتوانید یک کاربر را به یک گروه آزمایشی اختصاص دهید، سپس آن گروه را برای دسترسی بین سایتی در فضای ذخیرهسازی مشترک ذخیره کنید. این به شما امکان میدهد بدون ردیابی افراد، بینشهایی در مورد رفتار کاربر در شبکه سایتهای خود جمعآوری کنید. برای اطلاعات بیشتر در مورد این مورد استفاده، به اجرای تست A/B مراجعه کنید.
رابط برنامهنویسی کاربردی Select URL با فضای ذخیرهسازی مشترک به شما امکان میدهد با دسترسی به فضای ذخیرهسازی یکسان در سایتهای سطح بالای مختلف، این موارد استفاده را توسعه دهید.
با نسخه آزمایشی آزمایش کنید
شما میتوانید با استفاده از نسخه آزمایشی Shared Storage، Select URL را آزمایش کنید.
این نسخه آزمایشی از دیدگاه یک تبلیغکننده، تکنسین تبلیغات، توزیعکننده محتوا یا سایر سرویسهای شخص ثالث ساخته شده است که میخواهد اطلاعات را در سایتهای ناشران مختلف ذخیره کند. در نسخه آزمایشی، کد شخص ثالث یکسانی برای هر مورد استفاده، روی هر دو سایت ناشر A و ناشر B اجرا میشود. برای مشاهده نحوه اشتراکگذاری دادهها در یک زمینه بین سایتی، به صفحه هر ناشر مراجعه کنید.
همچنین میتوانید کد مربوط به نسخه آزمایشی را در گیتهاب بررسی کنید.
وضعیت API
رابط برنامهنویسی کاربردی Select URL به صورت عمومی در دسترس است. برای استفاده از رابط برنامهنویسی کاربردی Select URL یا فعالسازی آن برای توسعه محلی، دستورالعملهای ثبتنام در Privacy Sandbox را دنبال کنید.
| Proposal | Status |
|---|---|
Event-level reporting for Content Selection (selectURL()) |
Available until at least 2026 |
| Per-site budgeting Explainer |
Available in M119 |
| Debugging Shared Storage worklets with DevTools Section |
Available in M120 |
Engage and share feedback
Note that the Select URL API proposal is under active discussion and development and subject to change.
We're eager to hear your thoughts on the Select URL API.
- Proposal: Review the detailed proposal.
- Discussion: Join the ongoing discussion to ask questions and share your insights.