iOS 專用 IMA SDK 包含 Open Measurement (OM) SDK,這是互動廣告協會 (IAB) 制定的業界標準,可啟用第三方可視度和驗證評估。使用 iOS 版 IMA SDK 時,內含的 OM SDK 會自動剖析 VAST 廣告代碼中的 <AdVerifications> 標記,並使用 OMID API 將可視度資料傳送給指定的評估供應商。IMA SDK 支援 OM SDK 1.6 版、VAST 2 以上版本的 GAM AdVerifications 擴充功能,以及 VAST 4 以上版本的 AdVerifications 節點。如要使用 Open Measurement,請留意下列事項:
如要使用 Open Measurement,您必須使用 3.9.0 以上版本的 IMA SDK for iOS。
如果使用 VAST 4.1 以上版本,廣告必須按照 VAST 4.1 規格,在 VAST 中設定為投放
<AdVerifications>;否則應使用<Extension type="AdVerifications">。請勿在
AdDisplayContainer上方覆蓋任何透明或不透明的疊加層,否則 OM SDK 會將其標示為遮蔽物,並降低可視度。
必要條件
- 如果廣告是透過 Ad Manager 投放,請為 Ad Manager 聯播網設定可視度評估服務供應商,並將該供應商指派給委刊項。
測試
如要使用 IMA SDK 測試 Open Measurement,請使用支援 OM SDK 的 IMA 版本,以及測試廣告代碼。
您應該會在 VAST 回應中看到傳回的 <AdVerifications>。
註冊影片控制項疊加層遮蔽物
暫停按鈕或進度列等影片控制項,可為使用者提供重要的播放資訊和動作。在行動裝置上,由於輕觸操作不夠精確,且使用者有特定期望,因此通常會在媒體元素上顯示大型、易於觸控的控制項。這些控制項通常會在使用者輕觸時淡入和淡出,在大部分播放時間內都不會顯示。
如需疊加影片控制項的範例,請參閱下圖,瞭解 YouTube 應用程式如何顯示控制項:

使用 IMA SDK 時,大多數發布商會在廣告顯示容器上方,加入一個幾乎透明的檢視區塊,一般來說,控制項是這個檢視畫面的子元素,會完全遮蓋底層的影片播放器。這個透明疊加層用於擷取輕觸事件,並在使用者輕觸時顯示控制項。
使用 Open Measurement 評估 SDK 計算廣告可視度時,疊加在媒體元素上的所有檢視畫面都會視為遮蔽物,並降低可視率。如果透明輕觸疊加層覆蓋整個廣告顯示容器,廣告空間可能會被宣告為完全不可視。
Open Measurement 評估 SDK 規定,影片控制項可視為「無害」遮蔽物,對使用者體驗至關重要。註冊為友善控制項後,系統就不會將這些控制項納入廣告可視度評估。
在 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];
完成後,您可以呼叫下列方法來移除這些遮蔽物:
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()
}