在 IMA 中啟用 Open Measurement
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
Android 適用的 IMA SDK 包含 Open Measurement (OM) SDK,這是互動廣告協會 (IAB) 開發的業界標準,可評估第三方可視度和驗證。使用 Android 適用的 IMA SDK 時,內含的 OM SDK 會自動剖析 VAST 廣告代碼中的 <AdVerifications>
標記,並透過 OMID API 將可視度資料傳送給指定的評估廠商。IMA SDK 支援 OM SDK v1.4、VAST 2 以上版本的 GAM AdVerifications 擴充功能,以及 VAST 4 以上版本的 AdVerifications 節點。如要善用開放式評估功能,請注意下列事項:
如要使用 Open Measurement,您必須具備 Android 專用 IMA SDK 3.11.0 以上版本。不過,本指南中的範例是為最新版 SDK 設計,並包含 3.16.5 版推出的 API。
如果使用 VAST 4.1 以上版本,廣告必須設定為在 VAST 中放送 <AdVerifications>
,詳情請參閱 VAST 4.1 規格;否則應使用 <Extension type="AdVerifications">
。
請勿使用任何疊加層 (透明或不透明) 遮蓋 AdDisplayContainer
,否則 OM SDK 會將這些疊加層標示為障礙物,進而降低可視度。
必要條件
測試
如要使用 IMA SDK 測試開放測量功能,請使用上述任一必要版本的 SDK,以及測試廣告代碼。
您應該會在 VAST 回應中看到 <AdVerifications>
。
註冊影片控制項重疊障礙
暫停按鈕或進度列等影片控制項可為使用者提供重要的播放資訊和動作。在行動裝置上,由於輕觸不精確和使用者期望等因素,在媒體元素上算繪大型觸控友善控制項已成為常見做法。這些控制選項通常會在使用者輕觸時淡入和淡出,且在大部分的播放時間內都不會顯示。
以下是 YouTube 應用程式顯示的影片控制項範例:

使用 IMA SDK 時,大多數發布商會透過在廣告顯示容器上方新增幾乎透明的檢視區塊,實作這些控制項。通常,控制項是這個檢視區塊的子項元素,會完全遮蔽底層的影片播放器。這個透明的疊加層可用來擷取輕觸事件,並在使用者輕觸時向他們顯示控制項。
計算透過 Open Measurement SDK 評估的廣告可視度時,系統會將所有重疊在媒體元素上的檢視畫面視為阻礙,並降低可視度。如果透明輕觸重疊層位於整個廣告顯示容器上方,則廣告空間可能會完全無法檢視。
Open Measurement SDK 會將影片控制項視為「無害」的遮蔽物,因為這些控制項對使用者體驗至關重要。註冊為友善控制項後,這些控制項就不會納入廣告可視度評估。
IMA SDK 支援 IAB 和 MRC,並推出 API,可向 Open Measurement SDK 註冊這些重疊畫面。這些控制項必須是完全透明的疊加層或小按鈕。與影片控制項無關的任何其他檢視畫面不得註冊。
DO register |
請勿註冊 |
- 透明疊加層,用於擷取使用者輕觸動作
-
暫時性按鈕
- 暫停
- 播放
- 全螢幕
- Cast/AirPlay
- 收合
- 進度/搜尋
- 其他與播放相關的動作
|
- 浮水印
- 彈出式視窗
- 對話方塊
- 非暫時性按鈕
- 其他遮蔽檢視畫面
|
下列程式碼範例示範如何在廣告顯示容器上註冊影片控制項重疊畫面:
myTransparentTapOverlay = (ViewGroup) rootView.findViewById(R.id.overlay);
myPauseButton = (ImageButton) rootView.findViewById(R.id.pauseButton);
// Substitute "myTransparentTapOverlay" and "myPauseButton" with the
// elements you want to register as video controls overlays.
// Make sure to register before ad playback starts.
overlayObstruction = ImaSdkFactory.createFriendlyObstruction(
myTransparentTapOverlay,
FriendlyObstructionPurpose.NOT_VISIBLE,
"This overlay is transparent"
);
pauseButtonObstruction = ImaSdkFactory.createFriendlyObstruction(
myPauseButton,
FriendlyObstructionPurpose.VIDEO_CONTROLS,
"This is the video player pause button"
);
displayContainer.registerFriendlyObstruction(overlayObstruction);
displayContainer.registerFriendlyObstruction(pauseButtonObstruction);
完成後,呼叫下列方法即可移除這些障礙物:
displayContainer.unregisterAllFriendlyObstructions();
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-09-05 (世界標準時間)。
[null,null,["上次更新時間:2025-09-05 (世界標準時間)。"],[[["\u003cp\u003eThe IMA SDK for Android incorporates the Open Measurement (OM) SDK, an industry standard for third-party viewability and verification measurement, automatically sending viewability data to specified vendors.\u003c/p\u003e\n"],["\u003cp\u003eTo utilize Open Measurement, ensure you're using IMA SDK for Android version 3.11.0 or higher, and that ads are configured to traffic \u003ccode\u003e<AdVerifications>\u003c/code\u003e tags in their VAST responses.\u003c/p\u003e\n"],["\u003cp\u003eAvoid obstructing the \u003ccode\u003eAdDisplayContainer\u003c/code\u003e with overlays, as they negatively impact viewability measurements, unless they are registered as friendly obstructions, like transparent tap overlays or video control buttons, using the provided API.\u003c/p\u003e\n"],["\u003cp\u003eWhen registering friendly obstructions for video controls, use the \u003ccode\u003eImaSdkFactory.createFriendlyObstruction()\u003c/code\u003e method with a \u003ccode\u003edetailedReason\u003c/code\u003e string that adheres to the IAB standard: 50 characters or less, containing only \u003ccode\u003eA-z\u003c/code\u003e, \u003ccode\u003e0-9\u003c/code\u003e, or spaces.\u003c/p\u003e\n"]]],[],null,["# Enable Open Measurement in IMA\n\nThe IMA SDK for Android includes the\n[Open Measurement (OM) SDK](//iabtechlab.com/standards/open-measurement-sdk/),\nan industry standard developed by the\n[Interactive Advertising Bureau (IAB)](//www.iab.com/) to enable third-party\nviewability and verification measurement. When using the IMA SDK for\nAndroid, the included OM SDK automatically parses\nthe `\u003cAdVerifications\u003e` tag within VAST ad tags and sends viewability data to\nthe specified measurement vendors via the OMID API.The IMA SDK supports OM SDK\nv1.4, GAM AdVerifications extensions on VAST 2+,\nand the AdVerifications node on VAST 4+.To take advantage of Open Measurement,\nkeep the following points in mind:\n\n- To use Open Measurement you must have version\n 3.11.0 or\n greater of the IMA SDK for Android.\n However, the sample in this guide is designed for the newest version of the SDK\n and includes APIs introduced in version 3.16.5.\n\n- Ads must be configured to traffic `\u003cAdVerifications\u003e` in their VAST as per\n the [VAST 4.1 spec](//iabtechlab.com/wp-content/uploads/2018/06/VAST4.1-June7-FINAL.pdf)\n if using VAST 4.1+; otherwise, `\u003cExtension type=\"AdVerifications\"\u003e`\n should be used.\n\n- Refrain from covering the `AdDisplayContainer` with any overlays\n (transparent or opaque), since these will be flagged as obstructions by the OM\n SDK and reduce viewability.\n\nPrerequisites\n-------------\n\n- If your ads are trafficked through Ad Manager, [configure a viewability\n provider for your Ad Manager network](//support.google.com/admanager/answer/9025968#configure-a-viewability-provider) and assign that viewability provider to your line item.\n\nTesting\n-------\n\nTo test Open Measurement using the IMA SDK, use one of the required versions of\nthe SDK above, along with a [test ad tag](https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/omid_ad_samples&env=vp&gdfp_req=1&output=vast&sz=640x480&description_url=http%3A%2F%2Ftest_site.com%2Fhomepage&vpmute=0&vpa=0&vad_format=linear&url=http%3A%2F%2Ftest_site.com&vpos=preroll&unviewed_position_start=1&correlator=).\n\nYou should see the `\u003cAdVerifications\u003e` returned in your VAST response.\n\nRegister video controls overlay obstructions\n--------------------------------------------\n\nVideo controls such as pause buttons or progress bars provide essential playback\ninformation and actions to users. On mobile, imprecise taps and user\nexpectations have made it common practice to render large, touch-friendly\ncontrols over the media element. These controls usually fade in and out on a\nuser tap and are not visible for the vast majority of playback time.\n\nBelow is an example of video controls rendered by the YouTube app:\n\nWhen using the IMA SDK, most publishers implement these controls by adding a\nview above the ad display container that is mostly transparent. Usually, the\ncontrols are child elements of this view that fully occludes the underlying\nvideo player. This transparent overlay is used to capture tap events and then\nrender the controls to users when tapped.\n\nWhen ad viewability via the Open Measurement SDK is calculated, all views\noverlaying the media element are considered obstructions and reduce the\nviewability rate. In the case where a transparent tap overlay sits above the\nentire ad display container, it is possible for inventory to be declared\ncompletely unviewable.\n\nThe Open Measurement SDK makes provisions for video controls to be considered\n\"friendly\" obstructions that are essential to the user's experience. Once\nregistered as friendly, these controls are excluded from ad viewability\nmeasurement.\n\nWith IAB and MRC support, the IMA SDK introduces an API for registering these\noverlays with the Open Measurement SDK. These controls must be fully transparent\noverlays or small buttons. Any other views not related to video controls must\nnot be registered.\n\n| DO register | DO NOT register |\n|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|\n| - Transparent overlay to capture user taps - Transient buttons - Pause - Play - Fullscreen - Cast/AirPlay - Collapse - Progress/Seek - Other playback relevant actions | - Watermarks - Pop ups - Dialogs - Non-transient buttons - Other obscuring views |\n\nThe following sample code demonstrates how to register video controls overlays\non the ad display container:\n\n\n| **Key Point:** The `detailedReason` string used when calling [`ImaSdkFactory.createFriendlyObstruction()`](/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkFactory#public-friendlyobstruction-createfriendlyobstruction-view-view,-friendlyobstructionpurpose-purpose,-string-detailedreason) must follow the IAB standard by:\n|\n| - Being 50 characters or less.\n| - Only contain characters `A-z`, `0-9`, or spaces.\n- The string can be nil. \n\n myTransparentTapOverlay = (ViewGroup) rootView.findViewById(R.id.overlay);\n myPauseButton = (ImageButton) rootView.findViewById(R.id.pauseButton);\n // Substitute \"myTransparentTapOverlay\" and \"myPauseButton\" with the\n // elements you want to register as video controls overlays.\n // Make sure to register before ad playback starts.\n overlayObstruction = ImaSdkFactory.createFriendlyObstruction(\n myTransparentTapOverlay,\n FriendlyObstructionPurpose.NOT_VISIBLE,\n \"This overlay is transparent\"\n );\n pauseButtonObstruction = ImaSdkFactory.createFriendlyObstruction(\n myPauseButton,\n FriendlyObstructionPurpose.VIDEO_CONTROLS,\n \"This is the video player pause button\"\n );\n\n displayContainer.registerFriendlyObstruction(overlayObstruction);\n displayContainer.registerFriendlyObstruction(pauseButtonObstruction);\n\nWhen you're done with them, these obstructions can be removed by calling the\nfollowing method:\n\n displayContainer.unregisterAllFriendlyObstructions();\n\n| **Note:** For information on measurement and verification providers that have committed to the development of this new viewability standard, see the [IAB open measurement documentation](//iabtechlab.com/working-groups/open-measurement-working-group/)."]]