OM SDK Integration FAQ
You may have questions as you work on integrating OM SDK with your own SDK or app. We've gathered some of the most common questions and compiled them in this document. If the answers provided here are not sufficient to answer your questions, please send an email to [email protected] for further assistance with your issues.
In general, what do we need to know for OM SDK integration?
Does OM SDK need a JS execution environment?
Who provides the JavaScript for OM SDK and where is it hosted?
What versions of iOS and Android are supported?
Where do we get the values needed when creating a session?
How do I implement VAST 4.1 to work with OM SDK?
How do I use OM SDK in Programmatic?
What constitutes a geometry change?
If our video player does not have volume control, do I still need to pass a volume signal?
What do I need to implement if my app/SDK restricts user pause/resume?
Does IAB Tech Lab provide session values for testing integration?
Our OM SDK integration is complete. How do we approach IAB Tech Lab to establish compliance?
What should I expect as part of the compliance process?
Is the JavaScript for OM SDK version-specific?
Is there a server-to-server setup for pulling the latest version of the JavaScript files?
What do we do when OM SDK crashes during initialization?
Does OM SDK work with React Native based apps?
For React Native app, are there any resources for integrating OM SDK?
What documentation is available for OM SDK?
What other resources are available for guidance on integration?
The following details will help answer your questions about integration and setup.
OM SDK is integrated into a partner app or SDK. The organization hosting the app is the integration partner and the Partner SDK App is the app that integrates OM SDK.
The first thing you need for integration is a partner name that serves as the namespace when you generate the OM SDK build. Documentation for downloading the OM SDK and finding a namespace is available here.
Other details you need to know as you integrate OM SDK are listed below:
For testing purposes IAB Tech Lab provides a client for validating verification. Use the following values in the test client:
No. OM SDK uses JavaScript libraries to implement the OMID API, which is designed to work across multiple platforms like iOS, Android, Web browsers and others. The libraries also describe how a measurement provider can build an adapter to listen to signals sent by OM SDK.
The JS file is delivered as part of OM SDK zip file (SDK-omsdk-js-1.2.4.zip). The integration partner must host it on their servers.
OM SDK supports
Partner name is the namespace name assigned when you generate the OM SDK build and is incremented numerically for each additional download. More information on finding your OM SDK namespace is available here.
As of VAST 4.1, a {AdVerifications} node was added to support measurement provider integration. Versions previous to 4.1 offer an {Extension} node you can use to implement OM SDK. Details for implementation can be referenced in the OM SDK Onboarding Guide for Integration Partners. In the table of contents, look under Campaign Execution, Video Creatives, VAST.
IAB Tech Lab Open RTB working group has developed documentation on signalling OM SDK in an Open RTB bid request and response. The details are available here.
The following details will help answer your questions about integration and setup.
No. The impressionOccurred method is only called once. All measurement partners that are tagged and listening for the OM impression event should receive this event.
No. The presence of measurement partners corresponding to an ad depends on what tags are present in the ad. For each ad within an OM SDK session, required viewability measurements are forwarded to all measurement partners tagged within that ad.
Yes! Measurement partners need OM SDK to receive viewability signals. On its own, measurement partner tags can't access signals for WebView ads in-app unless the measurement partner SDK is also in that app.
Ad calls that signal a change in geometry are triggered every 200ms or when the dimensions of the ad change. These signals are handled the same way for both Android and iOS. The complete list of geometry change events is published in the documentation for compliance guidance. (Look in the document appendix.)
Yes. Device volume is independent of player volume. The volume the user perceives is: deviceVolume * playerVolume. If the app restricts user volume control, the playerVolume should be set to ‘1.0’. This sets the perceived volume equal to the device volume. The signal for playerVolume in this case is always equal to 1.0, even if deviceVolume is 0.0.
In the case where playerVolume is independent of deviceVolume, then playerVolume can be anything. Even when deviceVolume is 0.0, playerVolume can be anything.
If the app/SDK pauses the video automatically when the user moves to background and resumes it when the user moves back to foreground, the app/SDK must send either a pause or bufferStart when playback stops and resume or bufferEnd when playback resumes. If not sent, the MRC metric for “two seconds continuous playback” cannot be calculated.
The following details will help answer your questions about integration compliance and testing.
You can use the following IAB Tech Lab values for testing integration.
Note: For HTML display ads , the ‘params’ value is optional, but required for native and video ads. For vendorUrl, the integration partner need to host the verification script and use the URL to the hosted file as vendorUrl. (OM SDK delivers the verification script to be hosted in the omid-validation-verification-script-v1.js file delivered with the build.)
Complete the following steps to initiate compliance:
Upon completion of these steps, IAB Tech Lab will contact you to provide further information.
Before IAB Tech Lab begins the certification process for compliance, relevant parties in your company must sign the master services agreement, which includes a statement of work detailing what needs to be certified. Once signed, the general process includes the following steps:
The following details will help answer your questions about OM SDK in operation.
Yes. The JS files will change. You should check regularly for updates.
An API is planned for enabling a server-to-server pull of the latest files, but the work is not yet complete.
The app has the option of either continuing an OMID ad session across orientation changes, or starting a new ad session in the new orientation. In either case, it must finish every ad session it starts.
OMIDVerificationScriptResource has two initializers:
The vendor key is only used to pass parameters to the script. If no parameters are needed for initialization, then you don't need the vendor key. Call the second initializer when verification parameters are nonexistent.
React Native uses native Android/iOS view components, so you can directly integrate OM SDK with apps. However, React Native does not run in a Webview. You can already use OM SDK as-is in a Webview, but you may need to write a React JS bridge to call Objective-C/Java. A response in Stack Overflow offers some insight on executing JavaScript in React Native on iOS and Android.
Facebook provides some useful documentation on the React website. If you use React Native, you are responsible for the integration and ensuring everything works as expected. IAB Tech Lab does not test and cannot provide support for React Native.
The following details will help answer your questions about additional resources.
All documentation for OM SDK is published here and updated from time to time: https://iabtechlab.com/standards/open-measurement-sdk/.
Links to some key documents are listed here:
Besides the documentation above, IAB Tech Lab has put together guidance, video demos and other resources to help integration partners with implementing OM SDK. Some resources currently available are listed below: