iOS용 IMA SDK에는 서드 파티 조회가능성 및 확인 측정을 지원하기 위해 Interactive Advertising Bureau (IAB)에서 개발한 업계 표준인 Open Measurement (OM) SDK가 포함되어 있습니다. 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를 가리지 마세요. OMSDK에서 장애물로 플래그를 지정하고 조회가능성을 저하시킵니다.
IMA SDK를 사용하여 Open Measurement를 테스트하려면 위의 필수 SDK 버전 중 하나와 테스트 광고 태그를 사용하세요.
VAST 응답에 반환된 <AdVerifications>가 표시됩니다.
동영상 컨트롤 오버레이 장애물 등록
일시중지 버튼이나 진행률 표시줄과 같은 동영상 컨트롤은 사용자에게 필수적인 재생 정보와 작업을 제공합니다. 모바일에서는 부정확한 탭과 사용자 기대로 인해 미디어 요소 위에 터치하기 쉬운 대형 컨트롤을 렌더링하는 것이 일반적입니다. 이러한 컨트롤은 일반적으로 사용자 탭 시 페이드 인 및 페이드 아웃되며 재생 시간의 대부분 동안 표시되지 않습니다.
다음은 YouTube 앱에서 렌더링된 동영상 컨트롤의 예입니다.
IMA SDK를 사용하는 경우 대부분의 게시자는 광고 디스플레이 컨테이너 위에 대부분 투명한 뷰를 추가하여 이러한 컨트롤을 구현합니다. 일반적으로 컨트롤은 이 뷰의 하위 요소이며 기본 동영상 플레이어를 완전히 가립니다. 이 투명 오버레이는 탭 이벤트를 캡처한 후 탭할 때 사용자에게 컨트롤을 렌더링하는 데 사용됩니다.
Open Measurement SDK를 통한 광고 조회가능성이 계산되면 미디어 요소를 오버레이하는 모든 조회가 방해물로 간주되어 조회가능성 비율이 감소합니다. 투명한 탭 오버레이가 전체 광고 디스플레이 컨테이너 위에 있는 경우 인벤토리가 완전히 조회 불가능으로 선언될 수 있습니다.
Open Measurement SDK는 동영상 컨트롤이 사용자 경험에 필수적인 '친화적인' 방해물로 간주되도록 합니다. 친화적으로 등록되면 이러한 관리는 광고 조회가능성 측정에서 제외됩니다.
IAB 및 MRC 지원을 통해 IMA SDK는 이러한 오버레이를 Open Measurement SDK에 등록하기 위한 API를 도입합니다. 이러한 컨트롤은 완전히 투명한 오버레이 또는 작은 버튼이어야 합니다. 동영상 컨트롤과 관련 없는 다른 뷰는 등록해서는 안 됩니다.
DO 등록
등록하지 마세요.
사용자 탭을 캡처하는 투명 오버레이
일시적 버튼
일시중지
재생
전체 화면
전송/AirPlay
접기
진행/탐색
기타 재생 관련 작업
워터마크
팝업
대화상자
비임시 버튼
기타 가려진 뷰
다음 샘플 코드는 광고 디스플레이 컨테이너에 동영상 컨트롤 오버레이를 등록하는 방법을 보여줍니다.
UIView*myTransparentTapOverlay=[[UIViewalloc]initWithFrame:CGRectMake(0,0,300,250)];UIButton*myPauseButton=[[UIButtonalloc]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=[[IMAFriendlyObstructionalloc]initWithView:myTransparentTapOverlaypurpose:IMAFriendlyObstructionPurposeNotVisibledetailedReason:@"This overlay is transparent"];IMAFriendlyObstruction*pauseButtonObstruction=[[IMAFriendlyObstructionalloc]initWithView:myPauseButtonpurpose:IMAFriendlyObstructionPurposeMediaControlsdetailedReason:@"This is the video player pause button"];[displayContainerregisterFriendlyObstruction:overlayObstruction];[displayContainerregisterFriendlyObstruction:pauseButtonObstruction];
[null,null,["최종 업데이트: 2025-08-31(UTC)"],[[["\u003cp\u003eThe IMA SDK for iOS integrates the Open Measurement (OM) SDK for third-party viewability and verification measurement, automatically sending data to specified vendors when \u003ccode\u003e<AdVerifications>\u003c/code\u003e tags are present in VAST ad tags.\u003c/p\u003e\n"],["\u003cp\u003eTo utilize Open Measurement, ensure you are using IMA SDK for iOS version 3.9.0 or higher and have configured your ads to include \u003ccode\u003e<AdVerifications>\u003c/code\u003e or \u003ccode\u003e<Extension type="AdVerifications">\u003c/code\u003e in their VAST responses.\u003c/p\u003e\n"],["\u003cp\u003eAvoid obstructing the \u003ccode\u003eAdDisplayContainer\u003c/code\u003e with overlays to prevent reduced viewability, but utilize the \u003ccode\u003eIMAFriendlyObstruction\u003c/code\u003e API to register essential video control overlays for accurate measurement.\u003c/p\u003e\n"],["\u003cp\u003eWhen registering friendly obstructions using \u003ccode\u003eIMAFriendlyObstruction\u003c/code\u003e, ensure the \u003ccode\u003edetailedReason\u003c/code\u003e string adheres to IAB standards by being 50 characters or less, containing only \u003ccode\u003eA-z\u003c/code\u003e, \u003ccode\u003e0-9\u003c/code\u003e, or spaces, and can optionally be nil.\u003c/p\u003e\n"]]],[],null,["The IMA SDK for iOS 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\niOS, 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.9.0 or greater of the\n IMA SDK for iOS.\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- 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\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\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 creating a [`IMAFriendlyObstruction`](/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAFriendlyObstruction#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 UIView *myTransparentTapOverlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 250)];\n UIButton *myPauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 10)];\n // Substitute \"myTransparentTapOverlay\" and \"myPauseButton\" with the elements\n // you want to register as video controls overlays.\n // Make sure to register before ad playback starts.\n IMAFriendlyObstruction *overlayObstruction =\n [[IMAFriendlyObstruction alloc] initWithView:myTransparentTapOverlay\n purpose:IMAFriendlyObstructionPurposeNotVisible\n detailedReason:@\"This overlay is transparent\"];\n IMAFriendlyObstruction *pauseButtonObstruction =\n [[IMAFriendlyObstruction alloc] initWithView:myPauseButton\n purpose:IMAFriendlyObstructionPurposeMediaControls\n detailedReason:@\"This is the video player pause button\"];\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/)."]]