פלטפורמת Google Mobile Ads SDK תומכת עכשיו בגרסת בטא של MRAID v3, שמבוססת על תמיכה קיימת ב-MRAID v2. כך מפרסמים יכולים להציג נכסי קריאייטיב ב-MRAID v3 לבעלי תוכן דיגיטלי ב-Ad Manager. במדריך הזה מוסברים פרטים על הטמעה של MRAID שלא היו ברורים וניתנים לפרשנות במפרט MRAID v3. קהל היעד של המדריך הוא יוצרים של נכסי קריאייטיב ב-MRAID v3.
דרישות מוקדמות
בעלי תוכן דיגיטלי צריכים להשתמש באחת מהגרסאות הבאות:
- גרסה 15.0.0 של Google Play Services ואילך ל-MRAID v3
- Google Play Services בגרסה 7.8 ואילך ל-MRAID v2
חומרי מבוא מועילים
אם אתם לא מכירים את MRAID, תוכלו לקרוא מידע נוסף בדף MRAID של IAB. אפשר גם להוריד את המסמך MRAID v3 Definitions, שכולל פרטים על כל הפרמטרים שמפורטים בהמשך, וגם את פוסט הבלוג של IAB בנושא MRAID v3.
פרטי ההטמעה של MRAID גרסה 3 (בטא)
ניראות – אירוע exposureChange
האירוע הזה נתמך, ומומלץ להשתמש ב-listener לאירוע החדש exposureChange במקום באירוע viewableChange שהוצא משימוש.
גם השיטה mraid.isViewable() הוצאה משימוש. התמיכה ב-methods האלה שהוצאו משימוש נמשכת כדי לשמור על תאימות לאחור.
הגדרת האירוע exposureChange נשלחת בכל פעם שתצוגת המודעה משתנה. ל-SDK יש מנגנון של בדיקת סטטוס כדי להימנע מיצירה של יותר מדי אירועים.
המצב הראשוני נשלח באופן אסינכרוני אחרי שהמודעה רושמת מאזין.
הקריאה החוזרת כוללת את הפרמטר exposed_percentage שהוא מספר נקודה צפה בין 0.0 ל-100.0.
דוגמאות לשימוש מפורטות במפרט MRAID v3.
זיהוי ואתחול של MRAID ותכונות MRAID_ENV
ה-SDK תואם לפרוטוקול האתחול כפי שמוגדר במפרט MRAID v3.
באובייקט MRAID_ENV, ה-SDK לא שולח את IDFA, limitAdTracking, מזהה האפליקציה או COPPA (שהם אופציונליים). הוא מספק את כל המשתנים הנדרשים באובייקט MRAID_ENV, כולל גרסת MRAID, שם ה-SDK וגרסת ה-SDK.
מדידת השמיעות
הוספנו אירוע חדש (audioVolumeChange) כדי לזהות אם אפשר לשמוע את האודיו ומתי עוצמת הקול משתנה.
לאירוע audioVolumeChange יש פרמטר אחד: volume_percentage.
הערך הוא אחוז מעוצמת הקול המקסימלית של הפעלת האודיו. זהו מספר נקודה צפה (floating-point) בין 0.0 לבין 100.0 (0.0 אם אי אפשר להפעיל את התוכן) או null אם אי אפשר לקבוע את עוצמת הקול.
דוגמאות לשימוש מפורטות במפרט MRAID v3.
mraid.getLocation()
מכיוון שאין תמיכה ב-mraid.getLocation(), תמיד מוחזר הערך -1.
mraid.unload()
אפשר להפעיל את השיטה הזו בכל שלב, וה-SDK יגיב בהסרת המודעה, בהקצאת המשאבים ואז בהסרת תצוגת האינטרנט או בהחלפתה במסמך אחר או במודעה חדשה.
כשהקריאייטיב קורא ל-unload(), השכבה המקורית מגיבה באופן הבא
לסוגי הקריאייטיב השונים:
| סוג | התנהגות של unload() |
|---|---|
| Banner | שליחת בקשה חדשה להצגת מודעה עם אותם פרמטרים של הבקשה כמו במודעה הנוכחית. |
| Interstitial | סוגרים את המודעה הביניים. |
VPAID (הגדרת ממשק בין מודעות לבין נגן וידאו)
Google Mobile Ads SDK לא תומך ב-VPAID. mraid.supports('vpaid')
returns false.
mraid.useCustomClose()
יכול להיות שאין תמיכה ב-mraid.useCustomClose(), בהתאם לפורמט ולסוג הקריאייטיב.
פרטי הטמעה של MRAID v2
mraid.getVersion()
mraid.getVersion() לא מחזירה 2.0 עד שהקריאייטיב נטען. לא בודקים את גרסת MRAID בזמן ש-mraid.getState() מחזירה loading.
mraid.resize()
כשקוראים ל-mraid.resize(), הבאנר המקורי מוחלף בתמונה של צילום המסך של הבאנר. הבעיה הזו בולטת אם המודעה שגודלה שונה לא מכסה את שטח להצגת מודעות המקורי.
גם מודעות שגודלן שונה לא פועלות לפי מסגרת הבאנר המקורית. אם מודעת באנר מוצבת בתצוגה נגללת, המודעה שגודלה שונה לא נגללת עם הבאנר.
mraid.setResizeProperties()
כל הקריאות אל mraid.setResizeProperties() צריכות לכלול רשימה מלאה של מאפייני חובה. אם מאפייני השינוי לא תקינים, הם יוחזרו לערכי ברירת המחדל שלהם, וכל הקריאות הבאות אל mraid.resize() ייכשלו עד שתתבצע שוב קריאה אל mraid.setResizeProperties() עם פרמטרים תקינים.
mraid.getMaxSize()
אפשר להשתמש בערך mraid.getMaxSize() רק כדי לקבוע את הגודל המקסימלי של מודעות שגודלן שונה. כדי לקבוע את הגודל של מודעה הניתנת להרחבה, משתמשים ב-mraid.getScreenSize().
mraid.setOrientationProperties()
כשמתקשרים אל mraid.setOrientationProperties() עם המאפיין allowOrientationChange שמוגדר לערך true, הגדרת המאפיין forceOrientation לא תעשה כלום.
קריאייטיבים שרוצים לכפות כיוון צריכים להגדיר את allowOrientationChange לערך false.
mraid.isViewable()
אם צפייה מסתירה מודעה שמוצגת בדרך אחרת, הפונקציה mraid.isViewable() עדיין תחזיר את הערך true. תוכן האפליקציה לא יכול לכסות מודעות גלויות.
mraid.getCurrentPosition()
כשמודעה מתרחבת שמורכבת משני חלקים נמצאת במצב מורחב, קריאה ל-mraid.getCurrentPosition() בחלק הראשון תחזיר את גודל המסך.
mraid.storePicture()
כדי שאפליקציה תתמוך ב-mraid.storePicture(), היא צריכה לכלול את ההרשאה android.permission.WRITE_EXTERNAL_STORAGE.