با نحوه عملکرد شناسههای گزارشدهی در حراج مخاطب محافظتشده آشنا شوید
نمای کلی
شناسههای گزارش، شناسههای مرتبط با یک آگهی هستند که برای استفاده در ارائه پیشنهاد، امتیاز دادن به پیشنهاد و گزارش در دسترس هستند. شناسههای گزارش توسط خریدار در پیکربندی گروه علاقهمند ارائه میشوند و در generateBid()
، scoreAd()
، reportResult()
و reportWin()
تحت شرایط مختلفی که در این راهنما مورد بحث قرار گرفتهاند، در دسترس قرار میگیرند.
شناسههای گزارش به شما امکان میدهند یک شناسه برای یک آگهی گزارش دهید، و همچنین موارد استفاده مانند معاملات را فعال کنید.
سه شناسه گزارش از دو نوع وجود دارد:
- شناسه های گزارش غیر قابل انتخاب
-
buyerReportingId
(یک رشته) -
buyerAndSellerReportingId
(یک رشته)
-
- شناسه های گزارش قابل انتخاب
-
selectableBuyerAndSellerReportingIds
(آرایه ای از رشته ها)
-
شناسههای گزارشدهی بسته به اینکه از شناسههای گزارش قابل انتخاب استفاده میشوند، رفتار متفاوتی دارند. وقتی فقط از شناسه های گزارش غیر قابل انتخاب استفاده می شود، آن شناسه ها فقط در داخل توابع گزارش در دسترس می شوند. هنگامی که از شناسه های گزارش قابل انتخاب، همراه با شناسه های گزارش غیر قابل انتخاب در صورت نیاز استفاده می شود، تمام شناسه های تعریف شده در داخل generateBid()
و scoreAd()
نیز موجود می شوند.
شناسه های گزارش غیر قابل انتخاب
buyerReportingId
و buyerAndSellerReportingId
شناسه های گزارش غیر قابل انتخاب هستند که در پیکربندی گروه علاقه تعریف شده اند و در عملکردهای گزارش خریدار و فروشنده در دسترس هستند. عملکردهای گزارش خریدار و فروشنده فقط برای آگهی برنده اجرا می شوند و توابع شناسه های گزارش تعریف شده برای آن آگهی برنده را دریافت خواهند کرد.
هنگامی که بدون شناسه های گزارش قابل انتخاب استفاده می شود، تابع گزارش خریدار بسته به رفتار رونویسی، buyerReportingId
یا buyerAndSellerReportingId
را دریافت می کند، و تابع گزارش فروشنده buyerAndSellerReportingId
دریافت می کند. اگر نه buyerReportingId
و نه buyerAndSellerReportingId
در پیکربندی گروه علاقه تعریف نشده باشند، تابع reportWin()
نام گروه علاقه ( interestGroupName
) پیشنهاد برنده را دریافت می کند.
شناسههای غیرقابل انتخاب در داخل generateBid()
و scoreAd()
در دسترس نیستند اگر همراه با شناسههای گزارش قابل انتخاب استفاده نشوند.
گزارش شناسه ها در گروه های ذینفع
شناسه های گزارش توسط خریدار برای هر آگهی در یک گروه علاقه تعریف می شود:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
// buyerAndSellerReportingId goes to the buyer and seller reporting functions
buyerAndSellerReportingId: 'bsrid123',
// buyerReportingId is defined here as an example, but
// is not used due to the overwrite rules described later
buyerReportingId: 'brid123',
}]
});
گزارش فروشنده
در مرحله گزارش فروشنده، مقدار buyerAndSellerReportingId
برای reportResult()
در دسترس قرار می گیرد:
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId // 'bsrid123'
} = browserSignals;
sendReportTo(`https://seller.example/report?bsrid=${buyerAndSellerReportingId}`);
}
قبل از اینکه شناسه در داخل reportResult()
در دسترس قرار گیرد، از نظر k-ناشناس بودن با مالک گروه علاقه، URL اسکریپت پیشنهادی، URL رندر و اندازه تبلیغ بررسی می شود (اندازه آگهی حداقل تا سه ماهه اول 2025 از این بررسی مستثنی است). اگر k-anonymous نباشد، تابع reportResult()
همچنان اجرا خواهد شد، اما مقدار شناسه گزارش در داخل تابع در دسترس نخواهد بود.
گزارش خریدار
در طول مرحله گزارش خریدار از حراج، یک شناسه گزارش برای reportWin()
در دسترس قرار می گیرد. اگر بیش از یک شناسه گزارش در گروه ذینفع تعریف شده باشد، یک قانون رونویسی اعمال میشود که buyerAndSellerReportingId
buyerReportingId
بازنویسی میکند:
- اگر
buyerAndSellerReportingId
وbuyerReportingId
هر دو تعریف شده باشند،buyerAndSellerReportingId
buyerReportingId
بازنویسی می کند وbuyerAndSellerReportingId
در داخلreportWin()
موجود خواهد بود. - اگر فقط
buyerReportingId
تعریف شده باشد،buyerReportingId
در دسترس خواهد بود. - اگر نه
buyerAndSellerReportingId
و نهbuyerReportingId
تعریف نشده باشند،interestGroupName
در دسترس خواهد بود.
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId // 'bsrid123'
} = browserSignals;
sendReportTo(`https://seller.example/report?bsrid=${buyerAndSellerReportingId}`);
}
شناسه گزارشی که در داخل reportWin()
موجود میشود، از نظر k-ناشناس بودن با مالک گروه علاقهمند، URL اسکریپت پیشنهادی، URL رندر و اندازه آگهی بررسی میشود (اندازه آگهی حداقل تا سه ماهه اول 2025 از این بررسی مستثنی است). اگر در بررسی k-anonymity ناموفق بود، reportWin()
همچنان اجرا میشود، اما مقدار شناسه گزارش در داخل تابع موجود نخواهد بود.
فقط buyerReportingId
تعریف شده است
اگر فقط buyerReportingId
در پیکربندی گروه علاقه تعریف شده باشد:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerReportingId: 'brid123',
}]
});
سپس buyerReportingId
در داخل reportWin()
موجود است:
function reportWin(..., browserSignals, ...) {
const {
buyerReportingId, // 'brid123'
} = browserSignals;
}
قبل از در دسترس قرار گرفتن برای reportWin()
، buyerReportingId
از نظر k-ناشناس بودن با مالک گروه علاقه، URL اسکریپت پیشنهادی، URL رندر و اندازه تبلیغ بررسی می شود (اندازه آگهی حداقل تا سه ماهه اول 2025 از این بررسی مستثنی است).
فقط buyerAndSellerReportingId تعریف شده است
اگر فقط buyerAndSellerReportingId
در پیکربندی گروه علاقه تعریف شده باشد:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerAndSellerReportingId: 'bsrid123',
}]
});
سپس buyerAndSellerReportingId
در داخل reportWin()
موجود است:
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
} = browserSignals;
}
قبل از در دسترس قرار گرفتن در reportWin()
، buyerAndSellerReportingId
از نظر k-ناشناس بودن با مالک گروه علاقه مند، URL اسکریپت پیشنهادی، URL رندر و اندازه تبلیغ بررسی می شود (اندازه آگهی حداقل تا سه ماهه اول 2025 از این بررسی مستثنی است).
هر دو buyerAndSellerReportingId
و buyerReportingId
تعریف شده اند
اگر هر دو buyerAndSellerReportingId
و buyerReportingId
در پیکربندی گروه علاقه تعریف شده باشند:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerReportingId: 'brid123',
buyerAndSellerReportingId: 'bsrid123',
}]
});
سپس فقط buyerAndSellerReportingId
در داخل reportWin()
به دلیل رفتار رونویسی موجود است:
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
} = browserSignals;
}
قبل از در دسترس قرار گرفتن در reportWin()
، buyerAndSellerReportingId
از نظر k-ناشناس بودن با مالک گروه علاقه مند، URL اسکریپت پیشنهادی، URL رندر و اندازه تبلیغ بررسی می شود (اندازه آگهی حداقل تا سه ماهه اول 2025 از این بررسی مستثنی است).
نه buyerAndSellerReportingId
و نه buyerReportingId
تعریف نشده اند
اگر هیچ شناسه گزارشی در پیکربندی گروه علاقه تعریف نشده باشد:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
}]
});
سپس name
گروه ذینفع در داخل reportWin()
موجود است:
function reportWin(..., browserSignals, ...) {
const {
interestGroupName, // 'example-interest-group'
} = browserSignals;
}
قبل از در دسترس قرار گرفتن برای reportWin()
، نام گروه علاقه ( interestGroupName
) از نظر k-ناشناس بودن با مالک گروه علاقه، URL اسکریپت پیشنهاد، URL رندر و اندازه تبلیغ بررسی می شود (اندازه آگهی حداقل تا سه ماهه اول 2025 از این بررسی مستثنی است. ).
شناسه های گزارش قابل انتخاب
شناسههای گزارش قابل انتخاب به خریدار اجازه میدهد تا در طول تولید پیشنهاد، یک شناسه را انتخاب کند و مرورگر مقدار انتخابشده را در دسترس عملکردهای scoreAd()
و گزارش قرار میدهد. مقدار selectableBuyerAndSellerReportingIds
، که آرایهای از رشتهها است، برای generateBid()
ارائه میشود، و خریدار میتواند یک شناسه انتخابشده را بهعنوان selectedBuyerAndSellerReportingId
برگرداند.
توابع generateBid()
و scoreAd()
برای هر تبلیغ تعریف شده در پیکربندی گروه علاقه اجرا می شود و شناسه های گزارش برای هر تبلیغ را دریافت می کند. عملکردهای گزارش خریدار و فروشنده فقط برای آگهی برنده اجرا می شوند و توابع شناسه های گزارش تعریف شده برای آن آگهی برنده را دریافت خواهند کرد.
هنگامی که شناسه های گزارش غیر قابل انتخاب همراه با شناسه های گزارش قابل انتخاب استفاده می شوند، رفتار آنها نسبت به گردش کار توضیح داده شده در بخش قبل تغییر می کند. بر خلاف رفتار اولیه شناسه های گزارش غیر قابل انتخاب که فقط در داخل توابع گزارش در دسترس هستند، شناسه های گزارش قابل انتخاب، شناسه های گزارش غیر قابل انتخاب را قادر می سازند تا در داخل generateBid()
و scoreAd()
نیز در دسترس باشند.
گروه علاقه مندی
فیلد شناسههای گزارش قابل انتخاب - selectableBuyerAndSellerReportingIds
- آرایهای از رشتههایی است که توسط خریدار در گروه مورد علاقه برای یک آگهی تعریف شده است. شناسه های گزارش غیر قابل انتخاب نیز می توانند در کنار شناسه های گزارش قابل انتخاب تعریف شوند:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerReportingId: 'brid123',
buyerAndSellerReportingId: 'bsrid123',
selectableBuyerAndSellerReportingIds: ['sbsrid1', 'sbsrid2', 'sbsrid3']
}]
});
تولید پیشنهاد خریدار
اگر selectableBuyerAndSellerReportingIds
در پیکربندی گروه علاقه تعریف شده باشد، در داخل generateBid()
به همراه سایر شناسه های گزارشی تعریف شده در دسترس می شود.
function generateBid(interestGroup, ...) {
const [{
buyerReportingId, // 'brid123'
buyerAndSellerReportingId, // 'bsrid123'
selectableBuyerAndSellerReportingIds // ['sbsrid1', 'sbsrid2', 'sbsrid3']
}] = interestGroup.ads;
return {
bid: 1,
render: 'https://buyer.example/ad.html',
selectedBuyerAndSellerReportingId: 'sbsrid2' // Buyer returns the selected ID
};
}
خریدار میتواند یکی از شناسهها را از آرایه selectableBuyerAndSellerReportingIds
در generateBid()
انتخاب کند و شناسه انتخابی را به عنوان selectedBuyerAndSellerReportingId
برگرداند. اگر مقدار انتخاب شده در آرایه selectableBuyerAndSellerReportingIds
نباشد، پیشنهاد رد می شود. اگر selectableBuyerAndSellerReportingIds
در پیکربندی گروه علاقه تعریف شده باشد، و خریدار selectedBuyerAndSellerReportingId
از generateBid()
برنگرداند، شناسه های گزارش به رفتار توصیف شده برای شناسه های گزارش غیر قابل انتخاب برمی گردند.
پیشنهادی با مقدار برگشتی برای selectedbuyerAndSellerReportingId
تنها در صورتی برنده حراج خواهد شد که ارزش selectedbuyerAndSellerReportingId
به طور مشترک k-ناشناس همراه با buyerAndSellerReportingId
(در صورت وجود)، buyerReportingId
(در صورت وجود)، مالک گروه علاقه مند، URL اسکریپت پیشنهاد، URL رندر، اندازه آگهی (اندازه آگهی حداقل تا سه ماهه اول 2025 از این بررسی مستثنی است).
امتیاز آگهی فروشنده
برای فروشنده، selectedBuyerAndSellerReportingId
BuyerAndSellerReportingId که توسط خریدار از generateBid()
برگردانده شده بود، در scoreAd()
همراه با buyerAndSellerReportingId
در صورتی که در پیکربندی گروه علاقه تعریف شده باشد، در دسترس قرار می گیرد.
function scoreAd(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId, // 'sbsrid2'
} = browserSignals;
// ...
}
گزارش فروشنده
برای گزارش فروشنده، selectedBuyerAndSellerReportingId
BuyerAndSellerReportingId که توسط خریدار از generateBid()
برگردانده شده است، در reportResult()
به همراه buyerAndSellerReportingId
در دسترس می شود، اگر در گروه علاقه تعریف شده باشد.
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId // 'sbsrid2'
} = browserSignals;
// ...
}
اگر selectableBuyerAndSellerReportingIds
در پیکربندی گروه علاقه تعریف شده باشد، و selectedBuyerAndSellerReportingId
از generateBid()
برگردانده شده باشد، نمی تواند در حراج برنده شود مگر اینکه selectedBuyerAndSellerReportingId
و buyerAndSellerReportingId
(در صورت وجود) k-اسکریپت، مالک اسکریپت، نشانی اینترنتی علاقه مندرج مجدد باشند. و اندازه آگهی (اندازه آگهی حداقل تا سه ماهه اول 2025 از این بررسی مستثنی است) و reportResult()
برای آن پیشنهاد اجرا نخواهد شد. بنابراین، اگر reportResult()
با یک مقدار برای selectedBuyerAndSellerReportingId
فراخوانی شود، به این معنی است که شناسه های گزارش از بررسی k-anonymity عبور کرده اند و همه شناسه های گزارش تعریف شده در داخل reportResult()
موجود خواهند بود.
گزارش خریدار
اگر selectableBuyerAndSellerReportingIds
در پیکربندی گروه علاقه تعریف شده بود، و selectedBuyerAndSellerReportingId
از generateBid()
برگردانده شد، آنگاه همه شناسه های گزارشی که در پیکربندی گروه علاقه تعریف شده بودند در دسترس خواهند بود. توجه داشته باشید که مشابه گزارش فروشنده، اگر شناسههای گزارشدهی k-ناشناس نباشند، نمیتوانند در حراج برنده شوند و reportWin()
برای آن پیشنهاد اجرا نمیشود.
function reportWin(..., browserSignals, ...) {
const {
buyerReportingId, // 'brid123'
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId // 'sbsrid2'
} = browserSignals;
// ...
}
بازنویسی قوانین
در اینجا قوانین رونویسی را برای شناسههای گزارش غیرقابل انتخاب و شناسههای گزارش قابل انتخاب خلاصه میکنیم. کدام یک از selectableBuyerAndSellerReportingIds
، buyerAndSellerReportingId
، buyerReportingId
، و نام گروه علاقه به reportWin()
منتقل می شود توسط مرورگر با منطق زیر تعیین می شود:
- اگر
selectedBuyerAndSellerReportingId
از یک پیشنهاد بازگردانده شود،selectedBuyerAndSellerReportingId
،buyerAndSellerReportingId
(اگر در گروه علاقه تعریف شده باشد)، وbuyerReportingId
(اگر در گروه علاقه تعریف شده باشد) همگی برای گزارش در دسترس هستند. - در غیر این صورت، اگر
buyerAndSellerReportingId
در گروه علاقه تعریف شده باشد، فقطbuyerAndSellerReportingId
برای گزارش در دسترس است. - در غیر این صورت، اگر
buyerReportingId
در گروه علاقه تعریف شده باشد، فقطbuyerReportingId
برای گزارش در دسترس است. - در غیر این صورت، فقط
name
گروه ذینفع برای گزارش در دسترس است.
جدول زیر رفتار رونویسی را توضیح می دهد:
آیا شناسه های گزارش در پیکربندی گروه علاقه تعریف شده اند؟ | شناسه های گزارش در دسترس است | |||
selectableBuyerAnd | buyerAndSeller | buyerReportingId | reportWin() | reportResult() |
بله ، و انتخاب شده است در generateBid() | اختیاری | اختیاری | 1) selectableBuyerAnd 2) buyerAndSeller (در صورت تعریف)3) buyerReportingId (در صورت تعریف) | 1) selectableBuyerAnd 2) buyerAndSeller (در صورت تعریف) |
نه، یا انتخاب نشده است در generateBid() | بله | نادیده گرفته شد | buyerAndSeller | buyerAndSeller |
نه، یا انتخاب نشده است در generateBid() | خیر | بله | buyerReportingId | هیچ کدام |
نه، یا انتخاب نشده است در generateBid() | خیر | خیر | interestGroupName | هیچ کدام |
مشارکت کنید و بازخورد را به اشتراک بگذارید
- برای کسب اطلاعات بیشتر درباره شناسه های گزارش، به بخش شناسه گزارش توضیح مخاطب محافظت شده مراجعه کنید.
- GitHub : سوالاتی را مطرح کنید و بحث را در مورد مسائل موجود در مخزن API دنبال کنید .
- W3C : موارد استفاده صنعت را در فراخوان WICG مورد بحث قرار دهید.
- اطلاعیه ها : به لیست پستی بپیوندید یا مشاهده کنید.
- پشتیبانی از برنامهنویس Privacy Sandbox : سؤال بپرسید و به بحثها در مخزن پشتیبانی توسعهدهنده Privacy Sandbox بپیوندید .
- Chromium : یک اشکال Chromium را برای پرسیدن سوالاتی در مورد پیاده سازی موجود برای آزمایش در Chrome، ثبت کنید .