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.

Integration and Setup

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?

What is my partner name?

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?

Measurement

For varied impression types as defined by different measurement partners, do we need to call the impressionOccured method multiple times?

If we set separate measurement partners to different ads, do we do we have to create an “ad session” for each ad?

For webview ads, we measure by injecting a measurement partner’s tag in the html. Does OM SDK make sense in this case?

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?

Integration Compliance and Testing

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?

In Operation

Is the JavaScript for OM SDK version-specific?

Is there a server-to-server setup for pulling the latest version of the JavaScript files?

As per the documentation for Android, do I need to start a new session for portrait/landscape changes?

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?

Additional resources

What documentation is available for OM SDK?

What other resources are available for guidance on integration?

Integration and Setup

The following details will help answer your questions about integration and setup.

In general, what do we need to know for OM SDK integration?

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:

Top of Page

Does OM SDK need a JS execution environment?

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.

Top of Page

Who provides the JavaScript for OM SDK and where is it hosted?

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.

Top of Page

What versions of iOS and Android is supported by OM SDK?

OM SDK supports

Top of Page

What is my partner name?

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.

Top of Page

Where do we get the values needed when creating a session?

In production, the values needed for creating a session are: vendorUrl, vendorKey, and params. These values are provided by measurement providers or verification vendors. Values are unique to each campaign or ad.

Top of Page

How do I implement VAST 4.1 to work with OM SDK?

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.

Top of Page

How do I use OM SDK in Programmatic?

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.

Top of Page

Measurement

The following details will help answer your questions about integration and setup.

For varied impression types as defined by different measurement partners, do we need to call the impressionOccured method multiple times?

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.

Top of Page

If we set separate measurement partners to different ads, do we have to create an “ad session” for each ad?

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.

Top of Page

For webview ads, we measure by injecting a measurement partner’s tag in the html. Does OM SDK make sense in this case?

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.

Top of Page

What constitutes a geometry change?

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.)

Top of Page

If our video player does not have volume control, do I still need to pass a volume signal?

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.

Top of Page

What do I need to implement if my app/SDK restricts user pause/resume?

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.

Top of Page

Integration Compliance and Testing

The following details will help answer your questions about integration compliance and testing.

Does IAB Tech Lab provide session values for testing integration?

You can use the following IAB Tech Lab values for testing integration.

  1. vendorUrl: "mycdn.com/path/to/omid-validation-verification-script-v1.js ";
  2. vendorKey : "iabtechlab.com-omid";
  3. params : "iabtechlab-integrationtest";

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.)

Top of Page

Our OM SDK  integration is complete. How do we approach IAB Tech Lab to establish compliance?

Complete the following steps to initiate compliance:

  1. Review compliance guidance available here.
  2. Express intent to establish compliance by sending an email to [email protected].
  3. Complete the OM SDK integration questionnaire here.
  4. Verify and validate the signals are working for each of the relevant test cases

Upon completion of these steps, IAB Tech Lab will contact you to provide further information.

Top of Page

What should I expect as part of the compliance process?

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:

  1. Send integrated app for testing: Once you have integrated and validated the app against provided test cases, IAB Tech Lab will test the app. Our Compliance team will provide you with a link to place your assets folder. The app(s) must be installable builds and not projects that need to be compiled. The IAB Tech Lab is not responsible for compiling and building the executables.
  2. Set up ads to use in testing: Compliance will provide you with a  “Setup instructions guide” to help setup your ads correctly. They need the appropriate JavaScript resource URL and other parameters as applicable for different types of ads.
  3. Complete Placement Guide: Compliance will send you a placement guide to fill out. This document helps IAB Tech Lab testers understand all the ad types to be tested and how they should be navigated. You'll need to:
  1. Provide instructions for app installation and testing should be included.  
  2. Indicate if there are any special delivery options such as HockyApp, etc.
  1. Provide UDIDs (iOS): For iOS we prefer enterprise access. If you need the UDIDs to enable, Compliance will provide a UDID file for the UDIDs you need to enable.
  2. Consider IP restrictions: Let us know if there are any IP restrictions. The tests are conducted in the US and India. Ads need to be served to these regions.
  3. Plan for up to 4 weeks per app: The process usually takes about 3-4 weeks to complete per app once the apps are submitted. You can reduce the turn-around time by verifying ahead of time that all events are firing correctly for each ad type. You can use Charles Proxy or other proxy tools like Fiddler to verify the events.

Top of Page

In Operation

The following details will help answer your questions about OM SDK in operation.

Is the JavaScript for OM SDK version-specific?

Yes. The JS files will change. You should check regularly for updates.

Top of Page

Is there a server-to-server setup for pulling the latest version of the JavaScript files?

An API is planned for enabling a server-to-server pull of the latest files, but the work is not yet complete.

Top of Page

As per the documentation for Android, do I need to start a new session for portrait/landscape changes?

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.

Top of Page

What do we do when OM SDK crashes during initialization?

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.

Top of Page

Does OM SDK work with React Native based apps?

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.

Top of Page

For React Native app, are there any resources for integrating OM SDK?

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.

Top of Page

Additional Resources

The following details will help answer your questions about additional resources.

What documentation is available for OM SDK?

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:

Top of Page

What other resources are available for guidance on integration?

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:

Top of Page