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

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

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

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

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

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

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

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

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

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

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

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

הצהרות

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

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

שאלות פתוחות

ניתן לשלוח משוב על הנושאים הבאים:

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