הגדרת מכסת תדירות היא שיטה לפרסום שמגבילה את מספר המודעות מקטגוריה מסוימת שמוצגות למשתמש במהלך תקופת זמן נתונה. הגדרת מכסת תדירות משפרת את חוויית משתמש הקצה על ידי שמירה על חשיפות של מודעות מעניינות ורעננות, ומסייעת למפרסמים לנהל את ההוצאות על מודעות.
בהצעה הזו נסביר איך אפשר להשתמש ב-Protected Audience ב-Android כדי להטמיע פונקציונליות של הגבלת תדירות באופן מדויק ושומר על הפרטיות.
כדי להטמיע מכסת תדירות, התכונה Protected Audience משלבת בין שתי תכונות: אחסון במכשיר של ספירה של אירועים ספציפיים למודעות, והיכולת לסנן מודעות לפי קבוצה מוגדרת מראש של אסטרטגיות סינון. מכסות תדירות מאפשרות למפרסמים לציין ערך סף למונה על סמך סכום הערכים של ההיסטוגרמה בפרק זמן נתון.
מונים הם ייחודיים לכל שילוב של פרופיל מכשיר, טכנולוגיית פרסום ומפתח מונה. כל מודעה צריכה להכיל קבוצה של מפתחות מונים לשימוש במקרה של רישום צפייה או חשיפת מודעה. לכל מפתח, Protected Audience שומר קבוצה של ספירות, וכל ספירה מסכמת את כל האירועים הספציפיים למודעה שמתרחשים בפרק זמן ספציפי. המונים במכשיר מוסיפים נתונים כשמתרחשת חשיפה או צפייה, ונתוני המונים נשמרים במכשיר. משך הזמן המדויק של השמירה ייקבע בהמשך.
ללוגיקה של סינון המודעות בתהליך העבודה של בחירת המודעות ב-Protected Audience יש גישה למונים, למודעות רימרקטינג ולמודעות לפי הקשר, כך שהתקרה של מספר הפעמים שמודעה מוצגת ב-Protected Audience יכולה לפעול עם כל סוגי הבקשות להצגת מודעות האלה.
הערה: סינון מודעות זמין רק ב-Privacy Sandbox ב-Android. ההטמעה של Protected Audience ב-Chrome לא כוללת מנגנון לסינון מודעות שלא מיועדות לקהלים מוגנים, שמבוססות על טירגוט לפי הקשר. ההצעה הזו כוללת תמיכה בצד הקונה בלבד. אם תהיה ביקוש, נוסיף תמיכה בצד המכירה בשלב מאוחר יותר.
מכסת התדירות של קהלים מוגנים תומכת במגוון רחב של דרישות, כולל:
- סינון בזמן אמת, עם עיכוב מינימלי בצד השרת כשהמכשירים מעדכנים את המונים.
- היררכיה גמישה של מפתחות, כולל מודעות ספציפיות, קמפיינים או כל קיבוץ אחר.
- תאימות לשיטות אחרות של הגבלת תדירות, ללא תלות ב-AdID.
- פועל באפליקציות שונות בפרופיל המשתמש של מכשיר נתון.
- ספירות מדויקות ומלאות.
- תמיכה בהגדרות מותאמות אישית של אירועי מודעות, כמו צפיות או חשיפות.
- פונקציה אחת גם לרימרקטינג וגם למודעות לפי הקשר.
כדי להגדיר מכסת תדירות:
שלב 1: מוסיפים פרטים על הגבלת התדירות למודעות
מודעות לפי הקשר ומודעות רימרקטינג מציינות את ספירת ההיסטוגרמות הרלוונטית לעדכון במקרה של צפייה או חשיפת מודעה, באמצעות השדה ad_counter_keys
שמכיל רשימה של מספר שלם שרירותי. השדה לא נכלל בשדה metadata
שלא עובר ניתוח על ידי Protected Audience.
בדוגמה הבאה מוצג פורמט הנתונים של השדה adsData
ב-AdSelectionConfig
. לצורכי רימרקטינג, הפורמט של רשימת המודעות של קהל מותאם אישית נתון תואם לתוכן של השדה ads
שמוצג בדוגמה הבאה:
'adsData': [
{
"buyer": "ads.example.com",
"ads": [
{
'render_url': 'exampleUrl',
'metadata': {...}, /* metadata are opaque to Protected Audience are
required to be in valid JSON format */
'ad_counter_keys': [1234, 5678]
}]
}]
}
שלב 2: רישום צפייה או חשיפת מודעה
טכנאי הפרסום יכולים להפעיל את השיטה updateAdCounterHistogram
כדי לרשום אירועים שמשמשים למכסת התדירות. אפשר להפעיל שיטה שוב ושוב באותו אירוע עבור מפתחות שצוינו ב-eventType
של המודעה הזוכה.
void updateAdCounterHistogram(@EventType eventType, long adSelectionId)
קלט:
eventType
: מזהה אם אירוע נספר כצפייה, כחשיפה, כקליק או כאירוע שזכה בתהליך בחירת המודעה.adSelectionId
: ערכי מזהה באובייקטAdSelectionOutcome
שמוחזרים על ידי קריאותselectAds
.
הקריאה ל-updateAdCounterHistogram
מעדכנת את ההיסטוגרמה של קבוצת המפתחות שמוגדרת כחלק מהמודעות לרימרקטינג שאוחזרו על ידי CustomAudience
או מהמודעות לפי הקשר שכלולות בפרמטר AdSelectionConfig
של selectAds
.
אם נניח שהמודעה בשלב 1 היא הזוכה ב-AdSelection
עם ערך id
של 9999
, קריאה ל-updateAdCounterHistogram(FrequencyCapFilters.AD_EVENT_TYPE_VIEW,
adSelectionId: 999)
תגדיל את המונים של שלושת המפתחות הראשיים הבאים:
{'ads.example.com', 1234, VIEW}
{'ads.example.com', 5678, VIEW}
שם ספקי טכנולוגיות הפרסום נלקח מהשדה של הקונה, ממודעות לפי הקשר או מקהלים מותאמים אישית, בהתאם למקור של המודעות הזוכות.
התכונה Protected Audience ל-Android מגדילה באופן אוטומטי את כל המונים שצוינו למעלה עבור סוג האירוע FrequencyCapFilters.AD_EVENT_TYPE_WIN
במודעות שמוחזרות על ידי קריאה ל-API selectAds
. מבחינה פונקציונלית, הקוד הזה זהה להוספת הארגומנט prev_wins
ל-browser_signals
ב-generateBid
בהטמעה של Protected Audience ב-Chrome.
שלב 3: הטמעת סינון של מכסות תדירות באמצעות פילטרים
כדי להגיע לביצועים אופטימליים, פונקציית הסינון של מכסת התדירות פועלת בתוך AdServices
. כדי להבין אם צריך לסנן הודעה, Protected Audience קורא את שדה המסננים באובייקט AdsData
. רשימת המסננים מצוינה ב-frequency_cap
. הערכים של המפתח, event_type
ו-interval_in_seconds
משמשים לאחזור תרשים היסטוגרמה של אירועים שמשמשים לסינון ול-Protected Audience.
אפשר לציין את פרטי הסינון למודעות רימרקטינג שמתקבלות מקהלים מותאמים אישית ולמודעות לפי הקשר כחלק מהאובייקט AdSelectionConfig
.
במודעות לפי הקשר עם מסננים של מכסת תדירות, המודעות מועברות באמצעות השדה ads באובייקט AdSelectionConfig
. המודעות מסוננות והמודעה עם הצעת המחיר הגבוהה ביותר מוחזרת כתוצאה מהקריאה ל-selectAds
.
במודעות רימרקטינג עם מסננים של מכסת תדירות, המודעות מסוננות לפני שמפעילים את פונקציית ה-JavaScript generateBid()
שסופקה על ידי הקונה.
בדוגמה הבאה מוצגת הודעה עם סינון לפי מכסת תדירות:
{
'render_url': 'url',
'metadata': {...}, /* metadata are opaque to Protected Audience and assumed
to be in valid JSON format */
'ad_counter_keys': [1234, 5678],
"filters": {
"frequency_cap": {
"view": [
{
"ad_counter_key": 1234
"max_count": 10,
"interval_in_seconds": 86400
},
{
"ad_counter_key": 5678
"max_count": 10,
"interval_in_seconds": 86400
},
],
"win": [
{
"ad_counter_key": 1234
"max_count": 5,
"interval_in_seconds": 604800
},
{
"ad_counter_key": 5678
"max_count": 5,
"interval_in_seconds": 345600
},
]
},
// This field is only required in contextual ads and is used in
// reportImpression calls to fetch the reportWin function.
'reportingJS': "https://ads.example.com?reportWin.js"
}
שלב 4: דיווח על המודעות הזוכות
בסיום תהליך בחירת המודעה, המערכת מחזירה אובייקט AdSelectionOutcome
שמכיל את renderUri
ו-adSelectionId
, מזהה מספרי של קריאת ה-selectAds
. אפשר להשתמש במזהה הזה כדי להפעיל את ה-API של reportImpression
שתומך בדיווח ברמת האירוע. בגרסת הבטא 1, השיטה הזו תומכת בדיווח על מודעות רימרקטינג, והיא תורחב לדיווח על מודעות לפי הקשר בגרסה מאוחרת יותר. במודעות לפי הקשר, הקונה צריך לציין איפה אפשר לאחזר את הפונקציה reportWin
במהלך קריאה ל-reportImpression
באמצעות שדה נוסף שנקרא reportingJS
במבנה המודעה, כפי שמוצג בדוגמה הקודמת.
שיטות מומלצות לבחירת מודעות מועמדות
Protected Audience מעביר את האכיפה של מכסת התדירות מהשרת למכשיר. אמנם הצעות המחיר הזוכות מדווחות באמצעות ארגז החול לפרטיות, אבל המפתחים לא ידעו למה מודעה מסוימת לא מוצגת. יכול להיות שהמודעות לא יוצגו בגלל הצעת מחיר שהפסדתם או בגלל מכסת תדירות. מכיוון שאין לכם גישה מלאה לנתונים לגבי הסיבות לכך שמודעות מסוימות לא זוכות, מערכות הבידינג דורשות עבודה נוספת כדי להבטיח שהמודעות האופטימליות יוצגו. השיטות המומלצות האלה יעזרו לכם להבטיח הצגת מודעות אופטימלית באמצעות Protected Audience.
שליחת מספיק מודעות רימרקטינג
אי אפשר לבצע אופטימיזציה של מודעות רימרקטינג לכל משתמש. אם משתמש רואה מספר משמעותי של מודעות מקהל מותאם אישית והמגבלות על המודעות נמוכות, יכול להיות שכל המודעות יסוננו. מודעות הרימרקטינג מתעדכנות מדי פעם, לכן צריך להעביר מספיק מלאי שטחי פרסום דרך מכסת התדירות כדי להבטיח שהמודעות לרימרקטינג ימשיכו להופיע. צריך לאזן את הנתונים האלה עם המגבלות על גודל המודעות שאפשר לציין בקריאה ל-joinCustomAudience
ובמהלך העדכון היומי של הקהל המותאם אישית. הקונים צריכים לקחת בחשבון שעשויה להיות עלייה בזמן האחזור במהלך שלב הבידינג. כדי לצמצם את ההשפעה של הבעיות האלה, המסנן של מכסת התדירות פועל לפני הקריאה ל-generateBid
.
שמירת ספירת האירועים לפי הקשר בשרת
בעזרת אומדנים בצד השרת, למפתחים יש אומדנים גסים לגבי המועד שבו מכסת התדירות עשויה להיות פעילה. האומדנים האלה יכולים להצביע על כך שמודעה הגיעה לסף של מכסת התדירות, ולכן צריך לשלוח מודעות נוספות או להסיר אותה לגמרי.
שליחת כמה מועמדות למודעות בתגובה לפי הקשר
לפני מכרז של קהל מוגן, כדאי לשלוח כמה מועמדות למודעות עם תגובה לפי הקשר. כך מובטח שאם כמה מודעות מסוננות, מודעות אחרות עדיין יוצגו. אפשר לתת עדיפות למודעות מועמדות כך שחלק מהמודעות יוצגו כגיבוי.
מאחר שההפעלה מוגבלת בזמן, צריך לבחור את המודעות לפי הסבירות שלהן לזכות במכרז ולא להסתנן.
מגבלות
אלה המגבלות הידועות של מכסת התדירות של קהלים מוגנים:
- הגבלת התדירות של מודעות לקהל מוגן פועלת ברמת פרופיל המשתמש במכשיר, ללא ספירה משותפת במכשירים ובפרופילים אחרים. אם צריך, צריך לשלב באופן ידני את העליות במספר המודעות שמוצגות ממכשירים אחרים.
- המונים של המכשיר מאוחסנים במכשיר ואפשר לגשת אליהם דרכו. צריך לנהל את המונים בצד השרת בנפרד.
- מאחר שהטיפול במכסות התדירות ובסינון המודעות הקשור מתבצע במכשיר, לפלטפורמות של טכנולוגיות הפרסום אין שליטה ישירה על הפעולות האלה. כדי לעקוף את הסף של הגבלת התדירות במכשיר, פלטפורמות טכנולוגיות הפרסום יכולות לשלוח כמה מודעות מועמדות עם מסננים שונים.
- אין תמיכה בהתאמות של הצעות מחיר שמבוססות על תדירות מתועדת. הפונקציות
generateBid
לא יכולות להציג את ספקי האירועים של התדירות.
מומלץ עבורך
- הערה: טקסט הקישור מוצג כש-JavaScript מושבת
- Protected Audience: מדריך לשילוב Protected Audience API למפתחים ב-Android
- תמיכה בטירגוט לפי קהל מותאם אישית באמצעות Protected Audience API