ORTB
OMID chapter navigation

Platform matrix

live

The Open Measurement Interface Definition (OMID) specification itself is platform-neutral, with three implementation lines: JavaScript, iOS and Android. Connected TV (CTV) support has been extended inside the JS implementation since 1.4. This chapter gives each platform's library form, version and public class listing, plus a naming comparison for the same concepts across all three.

On this page

What this page will cover

  • Platform matrix (platform / library version / official docs / public class count)
  • Cross-platform naming comparison table
  • Entry cards to the four sub-pages

Platform matrix

PlatformImplementationLibrary versionSpec versionsPublic classesOfficial docs
JavaScriptOM SDK JSOmidSessionClient · OmidVerificationClient1.6.10OMID 1.68docs.iabtechlab.com/omsdk-1.6/js/index.html
iOSOM SDK iOSOMIDOMID 1.612docs.iabtechlab.com/omsdk-1.6/ios/index.html
AndroidOM SDK Androidcom.iab.omid.library · com.iab.omid.library.adsession · com.iab.omid.library.adsession.mediaOMID 1.610docs.iabtechlab.com/omsdk-1.6/android/index.html

Cross-platform naming

ConceptJavaScriptiOSAndroid
ad-eventsAdEventsOMIDAdEventsAdEvents
ad-sessionAdSessionOMIDAdSessionAdSession
ad-session-configurationOMIDAdSessionConfigurationAdSessionConfiguration
ad-session-contextOMIDAdSessionContextAdSessionContext
contextContext
js-session-serviceOMIDJavaScriptSessionService
media-eventsMediaEventsOMIDMediaEventsMediaEvents
omid-versionOmidVersion
partnerPartnerOMIDPartnerPartner
script-injectorOMIDScriptInjectorScriptInjector
sdk-entryOMIDSDKOmid
universal-ad-idOMIDUniversalAdID
vast-propertiesOMIDVASTPropertiesVastProperties
verification-clientVerificationClient
verification-script-resourceVerificationScriptResourceOMIDVerificationScriptResourceVerificationScriptResource
  • ad-session-configurationNo JS counterpart: creativeType/impressionType are set through AdSession.setCreativeType()/setImpressionType(), and the event-owner concept (impressionOwner/mediaEventsOwner) does not exist on the JS side.
  • ad-session-contextCorresponds to Context on JS: JS folds partner, verificationScriptResources, contentUrl, customReferenceData, universalAdId and the slot/video element into Context plus the AdSession constructor arguments, while the native side splits them into AdSessionContext (iOS additionally has AdSessionConfiguration).
  • contextNo class of this name on iOS/Android: the JS Context is split on the native side into AdSessionContext + AdSessionConfiguration (see the ad-session-context / ad-session-configuration entries).
  • js-session-servicePublished on iOS only: the JS session service built into OM SDK iOS. On Android this is handled by Omid/OmidJsBridge, with no corresponding class published on the javadoc site.
  • omid-versionPublished on JS only: the top of the source file omid-version.js carries TODO(OMSDK-715) noting that the class seems unused and should be removed in the next major version, yet the JSDoc site still publishes it.
  • script-injectorOMIDScriptInjector on iOS / ScriptInjector on Android: inject verification script content into an HTML creative. On the JS side the OM SDK service does this and publishes no class.
  • sdk-entryOMIDSDK on iOS (+sharedInstance / -activate) and Omid on Android (activate(Context) / isActive()); there is no JS counterpart class, as the service script is loaded by the OM SDK service itself.
  • universal-ad-idPublished on iOS only: the JS source has UniversalAdId (exported via packageExport onto OmidSessionClient.UniversalAdId, added in 1.5.5) but the official JSDoc site has no page for it; Android's createNativeAdSessionContext(...)/getUniversalAdId() reference the UniversalAdId type in their signatures, and the javadoc site has no such page either (verified 404).
  • vast-propertiesVastProperties on JS (src/common/vast-properties.js, marked @public and listed in jsdoc.json's include list) is not published on the official JSDoc site (VastProperties.html verified 404), so js is recorded as null; AdEvents.loaded(vastProperties) therefore references a type that is undocumented on the site.
  • verification-clientPublished on JS only: verification scripts (third-party measurement) always use the JS OmidVerificationClient; the native SDKs contain no verification client.

Class names for the same concept on each of the three platforms; a blank cell means that platform provides no corresponding class. On the JS side session configuration is folded into Context and the constructor arguments, while iOS / Android split it into separate configuration and context classes.

Chapters in this group

JavaScript (web / webview / CTV)

OM SDK JS is the implementation shared by web, in-app WebView and Connected TV (CTV) scenarios, and it produces two UMD binaries: omid-session-client-v1.js, which ad SDKs bundle into the ad HTML at build time, and omid-verification-client-v1.js, which measurement vendors bundle into their verification scripts at build time. Current library version 1.6.10.

  • Public classes and methods (from the official JSDoc)
  • The two binaries and the three consumption patterns (CommonJS / Closure / global)
Open this chapter

iOS / tvOS

OM SDK iOS exposes the interface as Objective-C classes prefixed with the Open Measurement Interface Definition (OMID) acronym: OMIDSDK handles activation and status queries, OMIDAdSession is constructed from OMIDAdSessionConfiguration and OMIDAdSessionContext, OMIDScriptInjector injects the session client into a WebView, and OMIDJavaScriptSessionService hosts the service side of JS sessions. The friendly obstruction registration API exists only on the native side.

  • Public class and enum listing
  • How session configuration and session context are split
Open this chapter

Android

OM SDK Android exposes the interface through the com.iab.omid.library packages: Omid.activate performs initialisation, AdSession is constructed from AdSessionConfiguration and AdSessionContext, VerificationScriptResource offers factory methods with and without parameters, and ad events and media events live under the adsession and adsession.media packages respectively.

  • Public class listing grouped by package
  • Initialisation and activation order
Open this chapter

CTV (Tizen / webOS / Fire TV)

planned

The Open Measurement Interface Definition (OMID) implementation for the Connected TV (CTV) scenario: 1.4 added CTV events, 1.5 added Samsung Tizen and LG webOS support along with a CTV reference app, and 1.6 added device attestation for Fire TV and Apple devices. CTV support is extended inside the JS implementation, with the device class declared by the DeviceCategory enum.

  • How the CTV scenario differs from mobile
  • Support starting points for Tizen / webOS / Fire TV
Open this chapter