הרבה מפיקי תוכן ומפרסמים רוצים לדעת כמה אנשים ייחודיים צפו בתוכן שלהם. אפשר להשתמש ב-Shared Storage כדי לתעד את הפעם הראשונה שמשתמש צפה במודעה, בסרטון מוטמע או בפרסום שלכם, וכך למנוע ספירה כפולה של אותו משתמש באתרים שונים. לאחר מכן תוכלו להשתמש ב-Private Aggregation API כדי ליצור דוח סיכום של היקף החשיפה.
Shared Storage API הוא הצעה של ארגז החול לפרטיות לאחסון כללי בין אתרים, שתומך בהרבה תרחישי שימוש אפשריים. Private Aggregation API הוא פלט שזמין ב-Shared Storage ומאפשר לצבור נתונים מאתרים שונים. כדי לקבל מידע נוסף על שיטות להטמעה של מדידת הנתונים האלה, כדאי לקרוא את הסקירה המפורטת בנושא היקף החשיפה.
כדאי לנסות מדידה של היקף החשיפה למשתמשים ייחודיים
כדי להתנסות במדידת פוטנציאל החשיפה הייחודית באמצעות Shared Storage ו-Private Aggregation, צריך לוודא שאתם משתמשים ב-Chrome M107 ואילך. מפעילים את כל ממשקי ה-API לשמירה על פרטיות בפרסום בקטע chrome://settings/adPrivacy.
אפשר גם להפעיל את האחסון המשותף באמצעות הדגל --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames בשורת הפקודה.
התנסות בדוגמאות קוד
יכול להיות שתרצו לעקוב אחרי מספר המשתמשים הייחודיים שצפו בתוכן שלכם באתרים שונים. בדוגמה הזו, מאפיין מזהה התוכן מקודד במפתח הצבירה (bucket), והספירה משמשת כערך שניתן לצבירה. דוח הסיכום יכיל מידע כמו 'כ-391 משתמשים צפו בתוכן עם מזהה 123'.
בדוגמה הזו:
- הדף
unique-reach-measurement.jsנטען באמצעות פריים, והוא אחראי לטעינת ה-worklet של האחסון המשותף. -
unique-reach-measurement-worklet.jsהוא worklet של אחסון משותף שבודק את הדגל באחסון המשותף ושולח דוח באמצעות Private Aggregation API.
async function measureUniqueReach() {
// Load the Shared Storage worklet
await window.sharedStorage.worklet.addModule('reach-measurement-worklet.js');
// Run the reach measurement operation
await window.sharedStorage.run('reach-measurement', { data: { contentId: '1234' } });
}
measureUniqueReach();
// Learn more about noise and scaling from the Private Aggregation fundamentals
// documentation on Chrome blog
const SCALE_FACTOR = 65536;
function convertContentIdToBucket(contentId) {
return BigInt(contentId);
}
class ReachMeasurementOperation {
async run(data) {
const { contentId } = data;
// Read from Shared Storage
const key = 'has-reported-content';
const hasReportedContent = (await sharedStorage.get(key)) === 'true';
// Don't report if a report has been sent already
if (hasReportedContent) {
return;
}
// Generate the aggregation key and the aggregatable value
const bucket = convertContentIdToBucket(contentId);
const value = 1 * SCALE_FACTOR;
// Send an aggregatable report using the Private Aggregation API
privateAggregation.contributeToHistogram({ bucket, value });
// Set the report submission status flag
await sharedStorage.set(key, true);
}
}
// Register the operation
register('reach-measurement', ReachMeasurementOperation);
השתתפות ושיתוף משוב
שימו לב שההצעה לגבי Shared Storage API נמצאת כרגע בתהליכי דיון ופיתוח, ויכול להיות שהיא תשתנה.
נשמח לשמוע מה דעתכם על Shared Storage API.
- הצעה: כדאי לעיין בהצעה המפורטת.
- דיון: הצטרפו לדיון הפעיל כדי לשאול שאלות ולשתף תובנות.