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

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

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

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

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

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

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

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

התראות על סטטוס המודעה

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

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

כשהמשתמש לוחץ על תצוגות בבעלות ה-SDK, ספריית ממשק המשתמש מעבירה את ה-MotionEvent עם המאפיינים שתורגמו למרחב הקואורדינטות של ה-SDK ל-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 של מערכת. אם רוצים, אפשר להציג ממשק משתמש משלו בתגובה לאינטראקציה של המשתמש.

שאלות פתוחות

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