iOS 版 IMA SDK 包含 Open Measurement (OM) SDK,這是由互動廣告局 (IAB) 開發的業界標準,可啟用第三方可視度和驗證評估。使用 iOS 版 IMA SDK 時,內含的 OM SDK 會自動剖析 VAST 廣告代碼中的 <AdVerifications>
代碼,並透過 OMID API 將可視度資料傳送至指定的評估廠商。IMA SDK 支援 OM SDK v1.4、VAST 2 以上版本的 GAM AdVerifications 擴充功能,以及 VAST 4 以上版本的 AdVerifications 節點。如要充分運用 Open Measurement,請留意下列事項:
如要使用 Open Measurement,您必須具備 iOS 適用的 IMA SDK 3.9.0 以上版本。
如果使用 VAST 4.1 以上版本,則必須依據 VAST 4.1 規格設定廣告,以便在 VAST 中傳送
<AdVerifications>
;否則,請使用<Extension type="AdVerifications">
。請勿使用任何疊加層 (透明或不透明) 覆蓋
AdDisplayContainer
,因為 OM SDK 會將這些疊加層標示為阻礙物,進而降低可見度。
必要條件
- 如果廣告是透過 Ad Manager 放送,請為 Ad Manager 聯播網設定可視度評估服務供應商,並將該可視度評估服務供應商指派給委刊項。
測試
如要使用 IMA SDK 測試 Open Measurement,請使用上述任一必要的 SDK 版本,以及測試廣告代碼。
您應該會在 VAST 回應中看到傳回的 <AdVerifications>
。
註冊影片控制項重疊會擋住畫面
影片控制項 (例如暫停按鈕或進度列) 可為使用者提供必要的播放資訊和動作。在行動裝置上,不精確輕觸和使用者預期,會對媒體元素顯示易於觸控的大型控制項,這也是常見的做法。這些控制項通常會在使用者輕觸時淡入淡出,且在絕大多數的播放時間內都不會顯示。
以下是 YouTube 應用程式算繪的影片控制項範例:
使用 IMA SDK 時,大多數發布商會在廣告顯示容器上方加入幾乎透明的檢視畫面,藉此實作這些控制項。通常,控制項是這個檢視畫面的子元素,可完全遮蔽底層的影片播放器。這個透明的疊加層用於擷取輕觸事件,然後在使用者輕觸事件時顯示控制項。
透過 Open Measurement SDK 計算廣告可視度時,所有疊加在媒體元素上的廣告曝光都會視為阻礙物,並降低可視率。如果透明的輕觸重疊位於整個廣告顯示容器上方,系統可能會宣告廣告空間完全無法查看。
Open Measurement SDK 會將影片控制項視為對使用者體驗至關重要的「友善」遮蔽物。一旦註冊為友善控制項,系統就會將這些控制項排除在廣告可視度評估範圍。
IMA SDK 支援 IAB 和 MRC,因此推出了 API,可將這些疊加層註冊至 Open Measurement SDK。這些控制項必須是完全透明的重疊元素或小型按鈕。請勿註冊任何與影片控制項無關的其他檢視畫面。
DO 註冊 | 請勿註冊 |
---|---|
|
|
以下程式碼範例示範如何在廣告顯示容器上註冊影片控制項疊加層:
UIView *myTransparentTapOverlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 250)];
UIButton *myPauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 10)];
// Substitute "myTransparentTapOverlay" and "myPauseButton" with the elements
// you want to register as video controls 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];
完成後,您可以呼叫下列方法移除這些障礙物:
[displayContainer unregisterAllFriendlyObstructions];