IMA SDK ל-iOS כולל את Open Measurement (OM) SDK, תקן מקובל בתחום שפותח על ידי Interactive Advertising Bureau (IAB) כדי לאפשר מדידת ניראות ואימות על ידי צד שלישי. כשמשתמשים ב-IMA SDK ל-iOS, ערכת ה-OM SDK שכלולה בו מנתחת באופן אוטומטי את התג <AdVerifications> בתגי המודעות של VAST ושולחת נתוני ניראות לספקי המדידה שצוינו באמצעות OMID API. IMA SDK תומך ב-OM SDK בגרסה 1.6, בתוספים של GAM AdVerifications ב-VAST בגרסה 2 ומעלה ובצומת AdVerifications ב-VAST בגרסה 4 ומעלה.כדי להשתמש ב-Open Measurement, חשוב לזכור את הנקודות הבאות:
כדי להשתמש ב-Open Measurement, צריך להתקין את גרסה 3.9.0 ומעלה של IMA SDK ל-iOS.
אם משתמשים ב-VAST בגרסה 4.1 ומעלה, צריך להגדיר את המודעות כך שיעבירו את
<AdVerifications>ב-VAST שלהן בהתאם למפרט של VAST 4.1. אחרת, צריך להשתמש ב-<Extension type="AdVerifications">.אל תכסו את
AdDisplayContainerבשכבות-על (שקופות או אטומות), כי הן יסומנו כחסימות על ידי OM SDK ויפחיתו את הניראות.
דרישות מוקדמות
- אם ניהול הטראפיק של המודעות מתבצע דרך Ad Manager, הגדירו ספק נתוני ניראות ברשת Ad Manager והקצו את ספק נתוני הניראות הזה לפריט.
בדיקה
כדי לבדוק את Open Measurement באמצעות IMA SDK, צריך להשתמש בגרסה של IMA שתומכת ב-OM SDK, יחד עם תג מודעה לבדיקה.
הערך <AdVerifications> אמור להופיע בתגובת ה-VAST.
רישום חסימות של שכבת-העל של כפתורי הווידאו
פקדי וידאו כמו כפתורי השהיה או סרגלי התקדמות מספקים למשתמשים מידע חיוני על ההפעלה ופעולות. בניידים, בגלל לחיצות לא מדויקות וציפיות של המשתמשים, נהוג להציג פקדים גדולים ונוחים למגע מעל רכיב המדיה. הפקדים האלה בדרך כלל מופיעים ונעלמים כשהמשתמש לוחץ על המסך, והם לא מוצגים ברוב זמן ההפעלה.
כדי לראות דוגמה לשכבת-על של פקדי וידאו, עיינו בתמונה הבאה של פקדי העיבוד באפליקציית YouTube:

כשמשתמשים ב-IMA SDK, רוב בעלי האפליקציות מטמיעים את אמצעי הבקרה האלה על ידי הוספת תצוגה מעל מאגר המודעות, שהיא שקופה ברובה. בדרך כלל, הפקדים הם רכיבי צאצא של התצוגה הזו, שמסתירה לחלוטין את נגן הווידאו שמתחתיה. שכבת העל השקופה הזו משמשת כדי לתעד אירועי הקשה, ואז להציג את הפקדים למשתמשים כשהם מקישים.
כשמחשבים את ניראות המודעות באמצעות Open Measurement SDK למדידות, כל התצוגות שמופיעות מעל רכיב המדיה נחשבות לחסימות ומפחיתות את שיעור הניראות. אם שכבת-על שקופה ללחיצה ממוקמת מעל כל מאגר התצוגה של המודעה, יכול להיות שמלאי שטחי הפרסום יוגדר כלא ניתן לצפייה בכלל.
ה-SDK של Open Measurement כולל הוראות שמאפשרות להגדיר את פקדי הווידאו כחסימות "ידידותיות" שחיוניות לחוויית המשתמש. אחרי שרושמים את הפקדים האלה כרכיבים ידידותיים, הם לא נכללים במדידת הניראות של המודעות.
עם התמיכה של IAB ו-MRC, ערכת ה-IMA SDK מציגה API לרישום שכבות-העל האלה ב-Open Measurement SDK למדידות. אמצעי הבקרה האלה חייבים להיות שכבות-על שקופות לחלוטין או כפתורים קטנים. אין לרשום תצוגות אחרות שלא קשורות לפקדי הווידאו.
| כדאי להירשם | אל תירשמו |
|---|---|
|
|
הקוד לדוגמה הבא מראה איך לרשום שכבות-על של פקדי וידאו בקונטיינר להצגת מודעות:
UIView *myTransparentTapOverlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 250)];
UIButton *myPauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 10)];
// Replace myTransparentTapOverlay and myPauseButton with your own elements
// that function as video control overlays.
// Make sure to register before ad playback starts.
IMAFriendlyObstruction *overlayObstruction =
[[IMAFriendlyObstruction alloc] initWithView:myTransparentTapOverlay
purpose:IMAFriendlyObstructionPurposeNotVisible
detailedReason:@"This overlay is transparent"];
IMAFriendlyObstruction *pauseButtonObstruction =
[[IMAFriendlyObstruction alloc] initWithView:myPauseButton
purpose:IMAFriendlyObstructionPurposeMediaControls
detailedReason:@"This is the video player pause button"];
[displayContainer registerFriendlyObstruction:overlayObstruction];
[displayContainer registerFriendlyObstruction:pauseButtonObstruction];
כשתסיימו להשתמש בהם, תוכלו להסיר את החסימות האלה באמצעות קריאה ל-method הבא:
Objective-C
- (void)unregisterObstructionsForContainer:(IMAAdDisplayContainer *)displayContainer {
// This removes all previously registered friendly obstructions from the container.
[displayContainer unregisterAllFriendlyObstructions];
}
Swift
func unregisterObstructions(displayContainer: IMAAdDisplayContainer) {
// This removes all previously registered friendly obstructions from the container.
displayContainer.unregisterAllFriendlyObstructions()
}