בחירת קריאייטיב לפי תדירות

מריצים worklet של Shared Storage כדי לבחור כתובת URL ולעבד אותה במסגרת מגודרת.

Shared Storage API הוא הצעה של ארגז חול לפרטיות לשימוש כללי, אחסון באתרים שונים, שתומך בהרבה תרחישים אפשריים של שימוש. דוגמה אחת היא בקרת התדירות, שזמינה לבדיקה ב-Chrome בטא 104.0.5086.0 ואילך.

מריצים סקריפט worklet כדי לבחור כתובת URL מרשימה נתונה, על סמך הנתונים המאוחסנים, ולאחר מכן מעבדים את כתובת ה-URL במסגרת מגודרת. ניתן להשתמש באפשרות הזו כדי לבחור מודעות חדשות או תוכן אחר לאחר ההגעה למכסת התדירות.

בדיקה של בחירת הקריאייטיב לפי תדירות

כדי לבדוק את בחירת הקריאייטיב לפי תדירות עם 'אחסון משותף' ו-Fenced Frames, עליכם לוודא שאתם משתמשים ב-Chrome בגרסה 104.0.5086.0 ואילך. לאחר מכן מפעילים את הדגל ניסוי של ממשקי API של ארגז החול לפרטיות ב-chrome://flags/#privacy-sandbox-ads-apis.

הפעלת הניסוי של ממשקי ה-API של מודעות ארגז החול לפרטיות כך שאפשר יהיה להשתמש בהם

ניתן להפעיל אחסון משותף גם באמצעות הדגל --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames בשורת הפקודה.

ניסוי עם דוגמאות קוד

כדי לבחור וליצור כתובת URL אטומה, צריך לרשום מודול worklet כדי לקרוא נתוני אחסון משותפים. מחלקת worklet מקבלת רשימה של עד שמונה כתובות URL ואז מחזירה את האינדקס של כתובת ה-URL שנבחרה.

כשהלקוח מבצע קריאה ל-sharedStorage.selectURL(), ה-worklet מבצע ומחזיר כתובת URL אטומה שצריך לעבור רינדור למסגרת מגודרת.

נניח שאתם רוצים לבחור מודעה או תוכן אחרים שיוצגו על סמך התדירות של מספר הפעמים שמשתמש ראה אותם בעבר. אתם יכולים לספור כמה פעמים משתמש מסוים ראה תוכן, ולאחסן את הערך באחסון המשותף. לאחר השמירה, הערך של האחסון המשותף זמין לכם במקורות שונים.

לאחר מכן, worklet של האחסון המשותף קורא את הערכים של האחסון המשותף ומגדילים את המונה בכל תצוגה נוספת. אם הספירה לא הגיעה למגבלה שהוגדרה מראש, יוחזר התוכן שברצונך לעבד (אינדקס 1). אחרת, תוחזר כתובת ברירת המחדל (אינדקס 0).

בדוגמה הזו:

  • creative-selection-by-frequencyjs נטען דרך ה-iframe של מפיק התוכן או המפרסם, והוא אחראי לטעינת ה-worklet של האחסון המשותף ולרינדור של המקור האטום שהוחזר למסגרת מגודרת.
  • creative-selection-by-frequency-worklet.js הוא worklet של האחסון המשותף שקורא את מספר התדירות כדי לקבוע איזו כתובת URL מוחזרת עבור תוכן או קריאייטיב של מודעה.

creative-selection-by-frequency.js

// The first URL is the default content or ad to be rendered when the frequency limits reached.
const CONTENT_URLS = [
  { url: `https://${contentProducerUrl}/default-content.html` },
  { url: `https://${contentProducerUrl}/example-content.html` },
];

async function injectAd() {
  // Load the worklet module.
  await window.sharedStorage.worklet.addModule('creative-selection-by-frequency-worklet.js');

  // Set the initial frequency count
  window.sharedStorage.set('frequency-count', 0, {
    ignoreIfPresent: true,
  });

  // Run the URL selection operation to choose an ad based on the frequency count in shared storage.
  const fencedFrameConfig = await window.sharedStorage.selectURL('creative-selection-by-frequency', CONTENT_URLS, {
    resolveToConfig: true
  });

  // Render the opaque URL into a fenced frame
  document.getElementById('content-slot').config = fencedFrameConfig;
}

injectAd();

creative-selection-by-frequency-worklet.js

const FREQUENCY_LIMIT = 5;

class CreativeSelectionByFrequencyOperation {
  async run(urls, data) {
    // Read the current frequency limit in shared storage
    const count = parseInt(await this.sharedStorage.get('frequency-count'));

    // Check if the frequency limit has been reached.
    if (count === FREQUENCY_LIMIT) {
      console.log('Frequency limit has been reached, and the default content will be rendered.');
      return 0;
    }

    // Set the new frequency count in shared storage
    await this.sharedStorage.set('frequency-count', count + 1);
    return 1;
  }
}

// Register the operation as 'creative-selection-by-frequency'.
register('creative-selection-by-frequency', CreativeSelectionByFrequencyOperation);

תרחישים לדוגמה

אלה רק חלק מהתרחישים לדוגמה האפשריים של אחסון משותף. נמשיך להוסיף דוגמאות כשתקבל משוב ונגלה תרחישים חדשים לדוגמה.

בחירת תוכן

אפשר לבחור ולהציג תוכן שונה באתרים שונים במסגרות מגודרות על סמך המידע שנאסף באחסון המשותף. שער הפלט עבור תרחישים לדוגמה האלה הוא בחירת כתובות URL.

  • סבב קריאייטיב: אחסון של נתונים כמו מזהה קריאייטיב, ספירת צפיות ואינטראקציה של משתמשים כדי לקבוע אילו פריטי קריאייטיב יראו באתרים שונים.
  • A/B Testing: אפשר להקצות משתמש לקבוצת ניסוי, ואז לאחסן את הקבוצה באחסון משותף ולאפשר גישה אליה באתרים שונים.
  • חוויות משתמש בהתאמה אישית: שיתוף תוכן וקריאות לפעולה בהתאמה אישית על סמך סטטוס ההרשמה של המשתמש או מצבי משתמש אחרים

הפקת דוחות סיכום

איסוף מידע באמצעות 'נפח אחסון משותף' והפקת דוח סיכום מצטבר ורועש. שער הפלט לתרחישים לדוגמה האלה הוא Private Aggregation API.

  • מדידת היקף החשיפה למשתמשים ייחודיים: יוצרים ומפרסמים רבים של תוכן רוצים לדעת כמה אנשים ייחודיים ראו את התוכן שלהם. אפשר להשתמש באחסון משותף כדי לתעד את הפעם הראשונה שבה משתמש ראה את המודעה, את הסרטון המוטמע או את אתר החדשות שלכם, ולמנוע ספירה כפולה של אותו משתמש באתרים שונים. לאחר מכן אפשר להשתמש ב-Private Aggregation API כדי להפיק דוח סיכום לגבי היקף החשיפה.
  • מדידת הדמוגרפיה: לעיתים קרובות יצרני תוכן רוצים להבין את הדמוגרפיה של הקהל שלהם. אפשר להשתמש באחסון משותף כדי לתעד נתונים דמוגרפיים של משתמשים בהקשר שבו הם נמצאים, למשל באתר של צד ראשון, ולהשתמש בדיווח מצטבר כדי לדווח על הנתונים האלה באתרים רבים אחרים, כמו תוכן מוטמע.
  • מדידת התדירות ב-K+: לעיתים קרובות יש מספר מינימלי של צפיות לפני שהוא יזהה תוכן מסוים או יזכור אותו (לרוב בהקשר של צפיות במודעה). אפשר להשתמש בנפח אחסון משותף כדי ליצור דוחות של משתמשים ייחודיים שראו קטע תוכן לפחות K פעמים.

עניין ושיתוף משוב

ההצעה לנפח אחסון משותף נמצאת בדיון פעיל והיא כפופה לשינויים בעתיד. אם ניסית את ה-API הזה ויש לך משוב, נשמח לשמוע אותו.