סקירה כללית על Topics API לנייד

שליחת משוב

מידע על Topics API

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

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

Topics API מסיק אותות לגבי תחומי עניין בפירוט גס במכשיר על סמך השימוש של המשתמש באפליקציה. האותות האלה, שנקראים נושאים (topics), ישותפו עם המפרסמים, וכך יתמכו באותות רציפים ובאותות מאינטראקציה ישירה (First-Party), בלי שיידרש מעקב אחרי המשתמשים הבודדים בכל האפליקציות.

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

מושגים מרכזיים

  • נושא הוא נושא עניין שהמשתמש הזה יכול לקרוא, והוא חלק מהטקסונומיה של Topics.
  • נושא נצפה על ידי מבצע הקריאה החוזרת (אפליקציה או SDK של צד שלישי שנעשה בו שימוש באפליקציה), אם המתקשר ביצע בקשת Topics API מאפליקציה שמשויכת לנושא הזה במהלך 3 התקופות האחרונות.
  • תקופה של זמן מערכת היא תקופה של חישוב נושא, למשל שבוע.

איך זה עובד

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

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

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

הפלטפורמה משתמשת במודל מסווג כדי להסיק את הנושאים. ההטמעה של Topics API והשימוש במסווג יהיו חלק מפרויקט הקוד הפתוח של Android, וישתפר עם הזמן.

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

// Initialize the Topics API.
…
topicsFuture = AdvertisingTopicsClient.getTopics();

// Retrieve Topics and use them in Ad request.
Futures.addCallback(
    topicsFuture,
    new FutureCallback<AdvertisingTopicsInfo>() {
        @Override
        public void onSuccess(@Nullable AdvertisingTopicsInfo topicsInfo) {
            // Sanitize Topics result.
            ...
            // Initialize ad request with Topics obtained.
            AdRequest adRequest = AdRequest.initialize(topicsInfo);
        }

        @Override
        public void onFailure(Throwable t) {
            // Handle error.
            ...
        }
});

על מנת להבין טוב יותר איך פועל מודל המסווג, אפשר לבדוק איך נתוני אפליקציות שונים מגיבים במערכת באמצעות Android Topics Classifier Colab.

קבלת גישה לממשקי API של Topics

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

פרטים

  • פעם בשבוע (למשל, פעם בשבוע), 5 הנושאים המובילים של המשתמש מחושבים על סמך מידע שנמצא במכשיר.

    • כשמפעילים את Topics API, הפלטפורמה בודקת אם נושא מוקצה לאפליקציה שמפעילה את ה-API. אם לא הוקצה נושא כלשהו, אחד הנושאים ייבחר באופן הבא והנושא שייבחר יוקצה לאפליקציה עד סוף התקופה.
      • עם הסתברות של 95%, נושא נבחר באקראי מתוך רשימת 5 הנושאים המובילים שחושבו עבור תקופה זו.
      • עם הסתברות של 5%, הנושא נבחר באופן אקראי מתוך הטקסונומיה.
      • מבצע הקריאה החוזרת (caller) יכול לציין שהוא רוצה לאחזר נושאים בלי לשנות את המצב על ידי קריאה ל-getTopics באמצעות הפרמטר shouldRecordObservation = false. המשמעות היא שאפשר להחזיר נושאים, אבל השיחה לא תיכלל בחישוב השבועי של הפעילות השבועית, וגם רשימת הנושאים שתועדה עבור המתקשר לא תתעדכן.
    • הסיבה לכך שכל אפליקציה מקבלת אחד ממספר נושאים היא לוודא שאפליקציות שונות מקבלות נושאים שונים, מה שמקשה על אפליקציות לקשר בין אותו משתמש.
      • לדוגמה, יכול להיות שאפליקציה א' תקבל את נושא T1 עבור המשתמש, אבל יכול להיות שבאפליקציה ב' יופיע נושא T2. לכן קשה יותר לשתי האפליקציות לזהות שהמידע הזה משויך לאותו משתמש.
  • ה-Topics API מחזיר רשימה של עד 3 נושאים, אחד בכל אחת משלוש התקופות האחרונות.

    • כשמספקים עד 3 נושאים, לאפליקציות שנעשה בהן שימוש לעתים רחוקות יוצגו מספיק נושאים כדי למצוא מודעות רלוונטיות, אבל אפליקציות בשימוש בתדירות גבוהה ילמדו נושא חדש אחד לכל היותר בשבוע.
    • פרטי הנושא שמוחזרים כוללים מזהה נושא (int) שתואם לרשומה בטקסונומיה, גרסת טקסונומיה וגרסת מודל מסווג.
    • רק מתקשרים שראו את המשתמש משתמשים באפליקציה שמשויכת לנושא הנדון ב-3 התקופות האחרונות יכולים לקבל את הנושא.
    • כל הנושאים שמוחזרים מייצגים את תחומי העניין של המשתמש, ואפשר לבחור כל אחד מהנושאים האלה או את כולם להתאמה אישית של מודעות בבקשה להצגת מודעה.
  • אחרי הקצאה של נושא לאפליקציה שמפעילה את Topics API, הפלטפורמה תקבע אם המתקשר יכול לקבל את הנושא הזה.

    • רק מתקשרים שצפו בהתעניינות משתמשים באפליקציה שמשויכת לנושא הנדון ב-3 התקופות האחרונות יכולים לקבל את הנושא.
    • אם מבצע הקריאה החוזרת לא קרא ל-API בעבר עבור אותו משתמש באפליקציה שקשורה לנושא, הנושא לא ייכלל ברשימה שמוחזרת על ידי ה-API.
    • אם המתקשר לא קיבל נושאים ב-3 התקופות האחרונות, ה-Topics API יחזיר רשימה ריקה.

    לדוגמה, נניח שלמשתמש יש 7 אפליקציות שמותקנות במכשיר: A, B, C, D, E, F ו-G. נניח שסיווג הנושאים של האפליקציה וערכות ה-SDK של טכנולוגיות הפרסום באפליקציות האלה הם:

    קידום אפליקציות סיווג נושאים SDK של פרסום דיגיטלי
    A T1, T5 ad-sdk1, ad-sdk2
    B T2 ad-sdk2
    C T3, T6 ad-sdk3, ad-sdk4
    D T1, T4 ad-sdk1
    ה. T5 ad-sdk4, ad-sdk5
    F T6 ad-sdk2, ad-sdk3, ad-sdk4
    G T7 ad-sdk2
    • סוף שבוע 1: Topics API יוצר את 5 הנושאים המובילים של המשתמש בתקופה הזו.
    נושא מוביל מתקשרים שיכולים לקבל מידע על הנושא
    T1 ad-sdk1, ad-sdk2
    T2 ad-sdk2
    T3 ad-sdk3, ad-sdk4
    T4 ad-sdk1
    T5 ad-sdk1, ad-sdk2, ad-sdk4, ad-sdk5
    • בשבוע 2, אם מתקשר באפליקציה כלשהי קורא ל-API, רשימת הנושאים שמוחזרת תכלול רק נושאים שעבורם הקורא מופיע בעמודה 'Callers שיכולים ללמוד על הנושא' של הנושא הזה באותה תקופה.
    • חלון ההיסטוריה שנכלל בחישוב הנושאים הזמינים לכל מתקשר הוא 3 תקופות של זמן מערכת (או 3 שבועות).
    • המערכת משתמשת רק בנושאים שמשויכים לאפליקציות שמפעילות את Topics API דרך ערכות SDK של מודעות. כלומר, אם אפליקציה לא כוללת ערכות SDK של מודעות שקוראות ל-Topics API, הנושאים שמשויכים לאפליקציה לא נכללים במאגר הנושאים שאליהם ערכות ה-SDK של מודעות יכולות לגשת.
    • האפליקציה יכולה גם לבטל באופן מוצהר את השימוש ב-Topics API באמצעות רכיבי מניפסט ו-XML חדשים, כדי למנוע מערכות SDK של מודעות להשתמש ב-API של אותה אפליקציה. נושאים המשויכים לאפליקציות שלא אישרו את השימוש בהן לא יתרמו לחישוב השבועי של הנושאים. נעדכן את המסמך הזה כדי שיכלול את פרטי ההטמעה הרלוונטיים.
  • אם היקף השימוש באפליקציה לא מאפשר למערכת להסיק 5 נושאים, הפלטפורמה עשויה לשקול אפשרויות כמו יצירה אקראית של נושאים שנותרו.

טקסונומיה

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

מסווג נושאים

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

  • כשמודל המסווג משמש להֶקֵּשׁ כדי לחשב את הנושאים של תקופה נתונה, קבוצת האותות שבה נעשה שימוש נשארת במכשיר. קבוצת האותות הזו עשויה לכלול אפליקציות שהותקנו או היו בשימוש לאחרונה, והיא עשויה להתרחב בהמשך כדי לכלול אותות נוספים.
  • המודלים הראשוניים יעברו אימון על ידי Google, ונתוני האימון כוללים תוויות שנאספו על ידי בני אדם עבור מידע על אפליקציות שזמין לכולם. המודל יהיה זמין בחינם לאפליקציות לבדיקה כדי לראות לאילו נושאים האפליקציה מסווגת.
  • המודלים הראשוניים יעברו אימון על סמך מידע שזמין לציבור על אפליקציות ממספר מוגבל של חנויות אפליקציות, כמו חנות Google Play.
  • יכול להיות שאפליקציה לא ממופה ליותר מנושא אחד, לא כוללת נושאים, או שהיא לא מתווספת להיסטוריית הנושאים של המשתמש. במקרה שאפליקציה ממופה ליותר מנושא אחד בטקסונומיה, מספר הנושאים שנבחרו לאפליקציה הזו יוגבל ל-3 הנושאים המובילים.

פקדי משתמש

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

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

//Button that launches settings UI
private Button mSettingsAppButton;
private static final String RB_SETTING_APP_INTENT = "android.adservices.ui.SETTINGS";


//Does setup for button on screen that will launch settings UI to observe Topics
private void registerLaunchSettingsAppButton() {
    mSettingsAppButton.setOnClickListener(
        new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                Context context = getApplicationContext();
                Intent activity2Intent = new Intent(RB_SETTING_APP_INTENT);
                activity2Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(activity2Intent);
            }
        });
}

רישום של פלטפורמת פרסום דיגיטלי

כדי לקבל גישה ל-Topics API, כל הפלטפורמות של פרסום דיגיטלי (כולל Google) צריכות להשלים תהליך הרשמה.

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

הצפנה של נושאים שהוחזרו

פלטפורמות טכנולוגיות פרסום רשומות שקוראות ל-Topics API גם נדרשות לספק מפתחות הצפנה, כדי לוודא שהנושאים המוחזרים יהיו קריאים רק למתקשר.

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

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

פרטי ההצפנה

עם השקת ההצפנה, קריאות ל-'GetTopics()' ייצרו תשובה עם רשימת אובייקטים מסוג 'EncryptedTopic'. במקרה של פענוח התוצאות האלה, ייווצר אובייקט בפורמט JSON זהה לזה של האובייקט Topic הקודם.

Topics API תומך בהטמעת תמונה אחת של HPKE (הצפנת מפתח ציבורי היברידי). אנחנו מצפים שהמתקשר הרשום יארח מפתח ציבורי של 32 ביט בנקודת הקצה הציבורית של כתובת ה-URL להצפנה שסופקה במהלך ההרשמה. המפתחות האלה צפויים להיות בקידוד Base64.

באובייקט EncryptedTopic יש 3 שדות. ניתן לקבל את רשימת הנושאים שמוחזרים באמצעות המפתח הפרטי המתאים למפתח הציבורי.

למטרות פיתוח, תוכלו לבדוק את ההצפנה של Topics API על ידי השבתה של בדיקת הרישום. במצב כזה, ה-API יאלץ להשתמש במפתח הציבורי לבדיקה כדי להצפין את התשובות שלכם. אפשר לפענח את הנושאים המוצפנים באמצעות המפתח הפרטי המתאים.