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

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