IMA SDK สำหรับ iOS มี Open Measurement (OM) SDK ซึ่งเป็นมาตรฐานอุตสาหกรรมที่พัฒนาโดยสำนักงานโฆษณาเชิงโต้ตอบ (IAB) เพื่อเปิดใช้การวัดการมองเห็นและการยืนยันของบุคคลที่สาม เมื่อใช้ IMA SDK สำหรับ iOS, OM SDK ที่รวมอยู่จะแยกวิเคราะห์แท็ก <AdVerifications> ภายในแท็กโฆษณา VAST โดยอัตโนมัติ และส่งข้อมูลการมองเห็นโฆษณาไปยังผู้ให้บริการวัดผลที่ระบุโดยใช้ OMID API IMA SDK รองรับ
OM SDK v1.6, ส่วนขยาย AdVerifications ของ GAM ใน VAST 2 ขึ้นไป
และโหนด AdVerifications ใน VAST 4 ขึ้นไป หากต้องการใช้ประโยชน์จากการวัดผลแบบเปิด
โปรดคำนึงถึงสิ่งต่อไปนี้
หากต้องการใช้การวัดผลแบบเปิด คุณต้องมี IMA SDK สำหรับ iOS เวอร์ชัน 3.9.0 ขึ้นไป
ต้องกำหนดค่าโฆษณาให้แสดงผล
<AdVerifications>ใน VAST ตามข้อกำหนด VAST 4.1 หากใช้ 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 การวัดแบบเปิดมีข้อกำหนดสำหรับส่วนควบคุมวิดีโอเพื่อให้ถือเป็นสิ่งกีดขวางที่ "เป็นมิตร" ซึ่งจำเป็นต่อประสบการณ์ของผู้ใช้ เมื่อลงทะเบียนเป็นมิตรแล้ว ระบบจะไม่รวมการควบคุมเหล่านี้ในการวัด การมองเห็นโฆษณา
IMA SDK ได้เปิดตัว API สำหรับลงทะเบียนภาพซ้อนทับเหล่านี้กับ Open Measurement SDK การวัดผล โดยได้รับการสนับสนุนจาก IAB และ MRC การควบคุมเหล่านี้ต้องเป็นภาพซ้อนทับหรือปุ่มขนาดเล็กที่โปร่งใสโดยสมบูรณ์ การดูอื่นๆ ที่ไม่เกี่ยวข้องกับการควบคุมวิดีโอต้อง ไม่ได้รับการบันทึก
| DO register | อย่าลงทะเบียน |
|---|---|
|
|
โค้ดตัวอย่างต่อไปนี้แสดงวิธีลงทะเบียนภาพซ้อนทับของตัวควบคุมวิดีโอ ในคอนเทนเนอร์ที่แสดงโฆษณา
Objective-C
- (void)registerObstructionsForContainer:(IMAAdDisplayContainer *)displayContainer {
UIView *transparentTapOverlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 250)];
UIButton *myPauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 10)];
IMAFriendlyObstruction *overlayObstruction =
[[IMAFriendlyObstruction alloc] initWithView:transparentTapOverlay
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];
}
Swift
func registerObstructions(displayContainer: IMAAdDisplayContainer) {
let transparentTapOverlay = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 250))
let myPauseButton = UIButton(frame: CGRect(x: 0, y: 0, width: 50, height: 10))
let overlayObstruction = IMAFriendlyObstruction(
view: transparentTapOverlay,
purpose: .notVisible,
detailedReason: "This overlay is transparent")
let pauseButtonObstruction = IMAFriendlyObstruction(
view: myPauseButton,
purpose: .mediaControls,
detailedReason: "This is the video player pause button")
displayContainer.register(overlayObstruction)
displayContainer.register(pauseButtonObstruction)
}
เมื่อใช้งานเสร็จแล้ว คุณสามารถนำสิ่งกีดขวางเหล่านี้ออกได้โดยเรียกใช้เมธอดต่อไปนี้
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()
}