איך מזהים של דוחות פועלים במכרז עם Protected Audience
סקירה כללית
מזהים לצורכי דיווח הם מזהים שמשויכים למודעה, ואפשר להשתמש בהם ליצירת הצעת מחיר, לדירוג הצעת מחיר ולדיווח. המזהים לצורכי דיווח סופקו על ידי הקונה בהגדרה של קבוצת תחומי העניין, והם הופכים לזמינים ב-generateBid()
, ב-scoreAd()
, ב-reportResult()
וב-reportWin()
בתנאים שונים שמפורטים במדריך הזה.
מזהי דיווח מאפשרים לכם לדווח על מזהה של מודעה, וגם מאפשרים תרחישים לדוגמה כמו מבצעים.
יש שלושה סוגים של מזהי דיווח:
- מזהי דיווח שלא ניתן לבחור
buyerReportingId
(מחרוזת)buyerAndSellerReportingId
(מחרוזת)
- מזהי דיווח שניתן לבחור
selectableBuyerAndSellerReportingIds
(מערך של מחרוזות)
אופן הפעולה של המזהים לצורכי דיווח משתנה בהתאם לשימוש במזהים לצורכי דיווח שאפשר לבחור. כשנעשה שימוש רק במזהים לצורכי דיווח שלא ניתן לבחור, המזהים האלה הופכים לזמינים בפונקציות הדיווח בלבד. אם משתמשים במזהים לצורכי דיווח שאפשר לבחור יחד עם מזהי דיווח שלא ניתן לבחור אם צריך, כל המזהים שהוגדרו יהיו זמינים גם ב-generateBid()
וב-scoreAd()
.
מזהי דיווח שלא ניתן לבחור
buyerReportingId
ו-buyerAndSellerReportingId
הם מזהי דיווח שלא ניתנים לבחירה ומוגדרים בהגדרה של קבוצת תחומי העניין, שיהיו זמינים בפונקציות הדיווח של קונים ושל בתי עסק. פונקציות הדיווח על קונים ומוכרים יפעלו רק עבור המודעה הזוכה, והפונקציות יקבלו את מזהי הדיווח שהוגדרו עבור המודעה הזוכה.
כשמשתמשים ב-Reporting-ID בלי לבחור אותו, פונקציית הדיווח של הקונה מקבלת את הערך 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 לפחות). אם הוא לא אנונימי, הפונקציה 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-אנונימיות, 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;
}
לפני שהכלי buyerReportingId
הופך לזמין ל-reportWin()
, מתבצעת בדיקה של k-אנונימיות עם הבעלים של קבוצת תחומי העניין, כתובת ה-URL של סקריפט הבידינג, כתובת ה-URL לעיבוד וגודל המודעה (גודל המודעה הוחרג מבדיקה זו עד הרבעון הראשון של 2025 לפחות).
רק קונהAndSellerReportingId מוגדר
אם רק 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;
}
לפני שהכלי buyerAndSellerReportingId
הופך לזמין ל-reportWin()
, מתבצעת בדיקה של 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;
}
לפני שהכלי buyerAndSellerReportingId
הופך לזמין ל-reportWin()
, מתבצעת בדיקה של 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
) נבדק אם קיימת אנונימיזציה של בעלי קבוצת תחומי העניין, כתובת ה-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(..., browserSignals, ...) {
const {
buyerReportingId, // 'brid123'
buyerAndSellerReportingId, // 'bsrid123'
selectableBuyerAndSellerReportingIds // ['sbsrid1', 'sbsrid2', 'sbsrid3']
} = browserSignals;
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
שהוחזר על ידי הקונה מ-generateBid()
יהיה זמין בscoreAd()
, יחד עם buyerAndSellerReportingId
, אם הוא הוגדר בתצורה של קבוצת תחומי העניין.
function scoreAd(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId, // 'sbsrid2'
} = browserSignals;
// ...
}
דוחות על בתי עסק
בדיווח על בתי עסק, הערך של selectedBuyerAndSellerReportingId
שהוחזר על ידי הקונה מ-generateBid()
יהיה זמין בreportResult()
, יחד עם buyerAndSellerReportingId
, אם הוא הוגדר בקבוצת האינטרס.
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId // 'sbsrid2'
} = browserSignals;
// ...
}
אם המדיניות selectableBuyerAndSellerReportingIds
הוגדרה בהגדרה של קבוצת תחומי העניין, ו-selectedBuyerAndSellerReportingId
הוחזר מ-generateBid()
, היא לא יכולה לזכות במכרז, אלא אם selectedBuyerAndSellerReportingId
ו-buyerAndSellerReportingId
(אם קיימים) מוגדרים כ-k-אנונימיים עם הבעלים של קבוצת תחומי העניין, כתובת ה-URL של סקריפט הבידינג, כתובת ה-URL לעיבוד וגודל המודעה (גודל המודעה לא ייכלל בבדיקה הזו עד הרבעון הראשון של 2025 לפחות), ו-reportResult()
לא יופעל עבור הצעת המחיר הזו. לכן, אם קוראים לפונקציה reportResult()
עם ערך של selectedBuyerAndSellerReportingId
, המשמעות היא שהמזהים לצורכי דיווח עברו את בדיקת ה-k-anonymity וכל המזהים לדיווח שהוגדרו יהיו זמינים בדומיין reportResult()
.
דיווח על קונים
אם selectableBuyerAndSellerReportingIds
הוגדר בהגדרה של קבוצת תחומי העניין, וselectedBuyerAndSellerReportingId
הוחזר מ-generateBid()
, כל המזהים לצורכי דיווח שהוגדרו בהגדרה של קבוצת תחומי העניין הופכים לזמינים. הערה: בדומה לדיווח על אתרי מכירה, אם המזהים לצורכי דיווח אינם אנונימיים, הם לא יכולים לזכות במכרז, והמערכת של 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() |
כן | Ignored (דפים שהמערכת מתעלמת מהם) | buyerAndSeller |
buyerAndSeller |
לא, או לא נבחרה ב- generateBid() |
לא | כן | buyerReportingId |
ללא |
לא, או לא נבחר ב- generateBid() |
לא | לא | interestGroupName |
ללא |
יצירת מעורבות ושיתוף משוב
- מידע נוסף על מזהי דיווח זמין בקטע 'מזהה דיווח' במאמר ההסבר על קהלים מוגנים.
- GitHub: פרסום שאלות ועקוב אחרי הדיונים בבעיות במאגר ה-API.
- W3C: אפשר לדון בתרחישים לדוגמה בתחום בשיחת ה-WICG.
- הודעות: הצטרפות לרשימת התפוצה או הצגה שלה.
- תמיכה למפתחים בארגז החול לפרטיות: פרסום שאלות והצטרפות לדיוני במאגר התמיכה למפתחים של ארגז החול לפרטיות.
- Chromium: אפשר לדווח על באג ב-Chromium כדי לשאול שאלות לגבי ההטמעה שזמינה לבדיקה ב-Chrome.