יצירת פרופיל של מכרז Protected Audience

אפשר לנתח מכרזים של Protected Audience (חזותית או באמצעות שאילתה ב-SQL באמצעות Perfetto. טכנולוגיות הפרסום יכולות להשתמש ביצירת פרופילים באמצעות Perfetto כדי למדוד את הביצועים של מכרזים של קהלים מוגנים, כולל:

  • זמן המעבד (CPU) של סקריפט הבידינג והניקוד
  • זמן האחזור של בקשות HTTP, כמו שירות מפתח/ערך
  • ההשפעה על הביצועים של מטמון קר לעומת מטמון חם
  • יותר קהלים בהתאמה אישית לעומת פחות קהלים בהתאמה אישית
  • קבוצות גדולות יותר לעומת קבוצות קטנות יותר של אותות
  • סקריפטים שונים של לוגיקה של בידינג לכל קהל מותאם אישית, בהשוואה לשימוש באותו סקריפט לכל הבידינג

הגדרה

  1. משכפלים את המאגרים של Perfetto ושל ארגז החול לפרטיות.

    git clone https://android.googlesource.com/platform/external/perfetto
    git clone https://github.com/android/privacy-sandbox-samples
  2. ב-Android Studio, פותחים את אפליקציית הדוגמה של Protected Audience מהספרייה privacy-sandbox-samples/Fledge/FledgeKotlin.

  3. יוצרים ומתקינים את האפליקציה לדוגמה במכשיר הבדיקה או במהדמטור.

הרצת מכרז וביצוע מעקב (trace) ב-Perfetto

  1. הגדרה ופריסה של נקודות קצה (endpoint) לבדיקה מסוג HTTPS חשוב לזכור את כתובת ה-URL של נקודות הקצה המארחות, כי הן נדרשות כדי שהאפליקציה לדוגמה של Protected Audience תפעל.
  2. מריצים את אפליקציית הדגמה עם כתובת URL של נקודת קצה לבדיקה. מחליפים את <test-endpoint-url> בכתובת URL של נקודת קצה (endpoint) מתארחת שתועדתם בשלב הקודם.

    adb shell am start -n com.example.adservices.samples.fledge.sampleapp/.MainActivity \
      -e baseUrl "<test-endpoint-url>"
  3. מפעילים או משביתים את האפשרות 'קהל מותאם אישית של נעליים' כדי לוודא שיש לפחות קהל מותאם אישית אחד פעיל.

    ה-CA של Shoes הופעל באפליקציית הדגמה.
    אפליקציית הדגמה של Protected Audience
  4. מתעדים מעקב באמצעות קובץ trace_config.textproto מהמאגר של Privacy Sandbox DevTools ב-GitHub:

    ./perfetto/tools/record_android_trace \
      -c path/to/trace_config.textproto
  5. מקישים על הלחצן 'הפעלת בחירת מודעות' וממתינים לתוצאות המכרז. בסיום המכרז, תוצג בפלט הודעה כמו 'המודעה מ-http://example.com/bidding/render_shoes תוצג'.

  6. כדי לסיים את המעקב, מקישים על CTRL+C כדי לסיים את התוכנית record_android_trace במסוף. ממשק המשתמש של Perfetto ייפתח בדפדפן עם נתוני המעקב טעונים.

ניתוח חזותי של נתוני מעקב ב-Perfetto

  1. מחפשים את RunOnDeviceAdSelection באמצעות סרגל הכתובות בחלק העליון של ממשק המשתמש. לוחצים על Enter כדי להשלים את החיפוש ולהציג את התוצאות:

    ממשק המשתמש של Perfetto מציג את המכרז של Protected Audience API. אירועים כמו RunOnDeviceAdSelection ו-RunBidding גלויים.
    מכרז Protected Audience עם קונה יחיד ב-Perfetto.
  2. לוחצים על מעקב כדי לבדוק אותו. כאן תוכלו למצוא פרטים כמו זמן האחזור של הביצוע.

    ממשק המשתמש של Perfetto בודק קטע נתיב. פרטי זמן האחזור גלויים.
    בדיקת מקטע ב-trace.

פלחי מעקב ספציפיים לקהל מוגן

המכרז של Protected Audience API הוא תהליך מורכב, ויש הרבה פלחים שונים שאפשר לתעד באמצעות המעקב של Perfetto. בטבלה הזו מוסבר מה מייצג כל מקטע ב-trace.

שעה Segment תיאור תדירות
מכרז מקדים RunOnDeviceAdSelection מכרז מקצה לקצה לכל מכרז
בידינג (צד הקונה) FilterContextualAds ביצוע סינון של מודעות להתקנת אפליקציות ומכסות תדירות במודעות לפי הקשר לכל מכרז
GetBuyersCustomAudience טעינת הקהל המותאם אישית של הקונה ממסד נתונים לכל קונה
FilterCustomAudiences ביצוע סינון של התקנות אפליקציות ומכסות תדירות בקהלים מותאמים אישית לכל מכרז
GetTrustedBiddingSignals טעינת אותות הבידינג של הקונים לכל קונה
RunBiddingPerCustomAudience בידינג על מודעות לקהל מותאם אישית יחיד לכל קהל בהתאמה אישית
GetBuyerDecisionLogic טעינת JavaScript של הקונה מהרשת או ממסד הנתונים, אם הוא שמור במטמון לכל קהל בהתאמה אישית
RunBidding הרצה של JavaScript לקונה לכל קונה
GenerateBids הרצת JavaScript לקהל בהתאמה אישית לכל קהל בהתאמה אישית
ציון (צד המוכר) GetTrustedScoringSignals טעינת אותות למתן ציונים של מוכרים לכל בית עסק
RunAdScoring ביצוע JavaScript לצורך ניקוד לכל מכרז
ScoreAd ביצוע JavaScript במודעה לכל מודעה
GetAdSelectionLogic טעינת הלוגיקה של בחירת המודעות של המוכר לכל מכרז
RunAdOutcomeSelection סינון סופי לכל מכרז
אחרי המכרז PersistOnDeviceAdSelection כתיבת תוצאת המכרז במסד נתונים לכל מכרז

שליחת שאילתה לגבי זמן האחזור הממוצע לביצוע

Perfetto יכול להשתמש בשאילתות SQL כדי לקבל מדידה מדויקת של מה שקורה בתוך מעקב מסוים.

בקטע הזה מוסבר איך למדוד את זמן האחזור הממוצע לביצוע של קוד JavaScript.

  1. ב-Perfetto, עוברים אל 'שאילתה (SQL)' בחלונית הניווט הימנית.
  2. מזינים את השאילתה הבאה:

    SELECT AVG(dur)
    FROM slice
    WHERE slice.name GLOB 'FetchPayload';
    
  3. מריצים את השאילתה ובודקים את התוצאות.

    תוצאות של שאילתות SQL. זמן האחזור הממוצע הוא 17693688 ננושניות.
    תוצאות של שאילתות SQL בנאונודיות.