מודעות מותאמות ב-Android

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

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

התמיכה במודעות באנר בזמן הריצה ל-SDK מתבצעת באמצעות SurfaceControlViewHost API. התכונה הזו מאפשרת ל-SDK להציג רכיבי ממשק משתמש מתהליך זמן הריצה ל-SDK בלי שהאפליקציה של הלקוח תשבש את התהליך. משתמשים במצבי SurfaceView Z above או Z below כדי לקבוע אם השטח שבו ממשק המשתמש של ה-SDK מעובד נמצא מעל או מתחת לחלון של אפליקציית הלקוח. כשמודעה מוצגת באמצעות מצב Z מעל, ערכת ה-SDK מקבלת MotionEvents מאינטראקציה של משתמשים, אבל התצוגות של אפליקציית הלקוח לא גלויות מעל המודעה. כשמודעה מעובדת במצב Z מתחת, האפליקציה מציגה את התצוגות שלה מעל המודעה, אבל MotionEvents מאינטראקציות של משתמשים עם המודעה מועברות לאפליקציה ולא ל-SDK.

ספריות Jetpack של privacysandbox.ui יכולות לשמש את ה-SDK ואת בעל התוכן הדיגיטלי כדי ליצור ולתחזק סשן של ממשק משתמש.

מאגר תגים בבעלות האפליקציה

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

תרשים שמראה איך הנתונים זורמים בין בעל התוכן הדיגיטלי לבין ה-SDK.
תרשים זרימת הבקרה של מודעות מותאמות מוצעות.

התראות על מצב המודעה

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

בנוסף, בעל האתר יוכל להוסיף תגים ספציפיים לתצוגה (מחרוזות) לכל שותף משני שנוסף ל-NativeAdContainer. התגים האלה יכולים לשמש כדי להודיע ל-SDK לאיזה נכס מודעה כל שותף משני מתאים.

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

הצהרות

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

  1. אימות התקינות של המכשיר: אפשר להשתמש בממשקי API של הפלטפורמה כמו Key Attestation כדי לקבוע את תקינות המכשיר.
  2. זהות ה-APK: כדי לאמת את זהות ה-APK, אפשר להשתמש בממשקי API של SdkSandbox כמו SdkSandboxController.getClientPackageName ובממשקי API של PackageManager כמו requestChecksum.
  3. VerifiedMotionEvents: בגרסאות עתידיות של Android, אנחנו בודקים אפשרות לאפשר לאפליקציית הלקוח להעביר את המיקוד של המגע לכל מחוות המשתמש בחלקים של המודעה המקורית שנמצאים בבעלות ה-SDK, כדי שה-SDK יטפל בהן. אפשר להמיר את MotionEvents ל-VerifiedMotionEvents באמצעות ממשקי API של המערכת. אם הם רוצים, ה-SDK יכול להציג ממשק משתמש משלו בתגובה לאינטראקציה של המשתמש.

שאלות פתוחות

  1. האם עדיף ש-SDK ייצור את VerifiedMotionEvents בעצמו, או שספריית ממשק המשתמש של הספק תעשה זאת בשביל ה-SDK?
  2. האם עדיף שערכת ה-SDK תאפשר לבעל האתר להיות הבעלים של תצוגות שמכילות סרטון, או להיות הבעלים של התצוגות האלה בעצמו?
  3. אילו מאפיינים היית רוצה לכלול באובייקט AppOwnedAdContainerInfo?
  4. כמה מודעות או רכיבי מודעות בבעלות ה-SDK צפויים להופיע במסך בו-זמנית?