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

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

  • זמן 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. מבצעים Build ומתקינים את האפליקציה לדוגמה במכשיר הבדיקה או באמולטור.

הפעלת מכרז ויצירת נתוני מעקב ב-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. מעבירים את המתג לצד 'Shoes CA' כדי לוודא שיש לפחות קהל מותאם אישית אחד פעיל.

    ההגדרה &#39;נעליים&#39; מופעלת באפליקציית ההדגמה.
    Protected Audience Demo App
  4. מתעדים מעקב באמצעות הקובץ trace_config.textproto ממאגר 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 שבו נבדק קטע של עקבות. פרטי ההשהיה גלויים.
    בדיקת פלח של מעקב.

פלחי עקבות ספציפיים ל-Protected Audience

מכרז בשילוב עם 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, עוברים אל Query (SQL) (שאילתה (SQL)) בחלונית הניווט הימנית.
  2. מזינים את השאילתה הבאה:

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

    תוצאות של שאילתת SQL. זמן האחזור הממוצע הוא 17,693,688 ננו-שניות.
    תוצאות של שאילתת SQL בננו-שניות.