<img src="https://img.shields.io/badge/%20-ENTERPRISE-B10031" style="float:left"/><br /> <img src="https://img.shields.io/badge/iOS-V4-009727?logo=apple" style="float:left"/><br />
The iOS SDK includes the <a href="https://iabtechlab.com/standards/open-measurement-sdk/" target="_blank">Open Measurement (OM) SDK</a>. By default, the Open Measurement functionality is disabled. When enabled, the OM SDK supports several ad-related features for VAST ads:
If instead you are interested in utilizing the OM SDK for use with Google IMA, please refer to the documentation on <a href="https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/omsdk" target="_blank">Open Measurement in the Google IMA SDK</a>.
<br /> <hr />
|**Google IMA SDK**||3.9.0+|
|**Ads configured to traffic<br />`||• `|
<br /> <hr />
## Enable Open Measurement
Refrain from covering the `
JWPlayerView` with any overlays (transparent or opaque). These will be flagged as obstructions by the OM SDK and reduce viewability.
Use the following steps to enable the Open Measurement functionality:
(Optional) Create an array of vendors allowed to execute scripts within the `
AdVerifications`. If a verification script from an unauthorized vendor is found within an ad, the `
verificationNotExecuted` script will be executed for the ad as per Open Measurement’s standard. If not defined, all vendors are assumed to be approved.
JWOMIDConfigBuilder()` to create an Open Measurement config, `
JWOMIDConfig`. If defined in the previous step, be sure to pass the array of vendor allowed to execute scripts.
JWPlayerConfigurationBuilder()` to add the `
JWOMIDConfig` to the player config.
<br /> <hr />
## Manage friendly obstructions
If you use `
JWPlayerViewController`, friendly obstructions within the interface are reported and handled. However, if you do not use `
JWPlayerViewController` or want to prevent other `
UIViews` from affecting ad viewability, you should register these obstructions as friendly.
The following examples apply to JWP VAST and Google IMA/DAI ad clients.
### Register a friendly obstruction
Create a list of one or more `
JWFriendlyObstruction`. Be sure to supply the `
purpose` (using predefined constants) and the `
reason` the obstruction is friendly.
func register(_ obstructions: [JWFriendlyObstruction])` to register the obstructions with the player.
<br /> <br />
### Deregister a friendly obstruction
To deregister friendly obstructions, use one of the following approaches:
Deregister a defined list of friendly obstructions when calling `
func register(_ obstructions: [JWFriendlyObstruction])`
Deregister all registered `