Open Measurement SDK

Learn about viewability measurement with OMSDK

The Open Measurement SDK (OMSDK) allows you to measure viewability for advertisers working with measurement vendors (see supported vendors). Open Measurement allows you to include third-party viewability and measurement vendors, either within bid response fields, or within the creative itself. 

Google already provides viewability measurement based on Active View. Open Measurement gives you an additional IAB industry-standard option when it comes to measuring viewability by third-party standards on Google Ad Manager and Google AdMob impressions.

Supported platforms

Currently, Open Measurement is supported for app ads (in both Google Ad Manager and Google AdMob) in-stream web, and non-instream video. App publishers will need to upgrade to a new SDK version to benefit from Open Measurement. 

Read the Open Measurement developer documentation for AndroidiOS, and HTML5 video.

Expand all  Collapse all

Supported transaction types

  • Private deals, Programmatic Guaranteed, Private auction, and Open Auction
Supported measurement vendor domains
  • AdForm
  • Adloox
  • comScore
  • DoubleVerify 
  • Forensiq
  • Innovid
  • Integral Ad Science
  • Meetrics
  • Moat
  • Pixalate
  • Protected Media
  • Teemo
  • UNICORN
  • WhiteOps
  • Xandr

Domains (from companies not already listed) that are part of the Open Measurement Working Group are also eligible. Contact your account manager with the domains in question if you work with a Working Group member and are seeing creative disapprovals.

Supported formats

  • App: Video, Display (Banner/Interstitial), Rewarded, and Native
  • Web: In-stream web and non-instream video

RTB request - When is Open Measurement Interface Definition (OMID) supported?

  • In Authorized Buyers Protocol, a new excluded attribute will be sent when the OMSDK is not supported: BidRequest.ad_slot.excluded_attribute: CREATIVE_ATTRIBUTE_VALUE_OMSDK_N = 114;
  • In OpenRTB, the standardized approach of the api field in Banner and Video objects is used. This is very similar to how MRAID and VPAID are indicated.
  • For OpenRTB Native (2.5+), we include the standard EventTrackers request which indicates support for JavaScript:
    request_native {
       eventtrackers {
          event: IMPRESSION  //JavaScript executes on impression event
          methods: JS        //OpenRTB can specify support for “JS” and/or “IMG”
       }
    }

RTB request - Which vendors are allowed?

  • Viewability measurement vendors that are allowed for each impression will be passed in the allowed_vendor_type field in the bid request for Authorized Buyers Proto and OpenRTB. Bid responses that include technologies that are certified but not in allowed_vendor_type will be filtered.
  • There are 2 types of disapproval reasons (AWPCs) for the misuse of the OMSDK by third-party vendors:
    • 721: Misuse by OMID SDK script
      • Creatives containing Open Measurement (OMID) scripts should only interact with the public API as defined by omidsdk-v1.js, and will otherwise be disapproved.
    • 752: OMID vendor not on approved list
      • Creatives using Open Measurement (OMID) scripts are only allowed to use domains from the approved vendors noted above. If you experience this disapproval for a creative from a Working Group company, contact your account manager.

For banners and interstitials, creative vendors and bidders often build the JavaScript measurement code directly into the creative.

Bidders are expected to work with third-party measurement providers to make sure that the scripts work with the Open Measurement SDK, but no new fields are required in the bid response.

For Native ads

Native ads include new fields in the bid response to send through structured viewability JavaScript.

You can use OpenRTB version 2.5+ or Google Proto.

OpenRTB 2.5+

The Open RTB bid response follows the Native 1.2 “EventTrackers” specification.

Sample OpenRTB 2.5+ bid response

adm_native {
   ver: "1.2"
   eventtrackers {
      Event: IMPRESSION  // Bidders should set this to ‘1’ for Impression 
      method: JS         // Bidders should set this to ‘2’ for JS
      url: "http://my_3P_measurement_vendor.com/app_measurement.js"
      // AdX extensions needed for native OMID
      ext: {
         context: OMID  // Enum value 1
         vendorKey:     // The vendor key for the company providing the OMID JavaScript, e.g. "company.com-omid"
         verification_parameters:  //Additional verification parameters for the OMSDK, populated by e.g,. "[parameters string]"

All domains in the url field must be allowed OMSDK vendors, e.g. comscore.com, integralads.com, etc. The context enum extension should always be set to 1.

Google Proto

The Google Proto uses fields similar to OpenRTB's impression_tracking_url, named script_url.

Sample Google Proto bid response

message Ad {
   ...
   message ImpressionTrackingResource {
      // The URL of a JavaScript resource. URLs should not contain
      // script tags. For example: "https://mycdn.com/tracker.js".
      optional string script_url = 1;

      // Additional context provided for rendering.
      enum Context {
        UNKNOWN_CONTEXT = 0;
        OMID = 1;
      };
      repeated Context context = 2;

      // Parameters associated with the resource that will be passed to
      // the resource when it is loaded. The format of the parameters
      // is dependent on the script vendor.
      optional string verification_parameters = 3;

      // Used to uniquely identify the verification script provider.
      optional string vendor_key = 4;
    };
    // Resources to invoke when the impression is rendered. This is
    // supported for native and banner formats only and explicitly
    // allowed scripts only.
    repeated ImpressionTrackingResource impression_tracking_resource = 26;
For Video ads

Currently, the <AdVerifications> node in VAST 4.1, as well as VAST 2 and VAST 3 with the <AdVerifications> extension for OMID measurement on Ad Exchange are supported. 

Sample VAST using OMID in the <AdVerifications> extension

<Extensions>
   <Extension type="AdVerifications">;
      <AdVerifications>;
         <Verification vendor="my_3p_vendor.com-omid">;
             <JavaScriptResource apiFramework="omid"
                browserOptional="true">;
                  <![CDATA[ https://my_3p_vendor.com/omid.js ]]>;
             </JavaScriptResource>;
             <TrackingEvents>;
                <Tracking event="verificationNotExecuted">;
                   <![CDATA[https://my_3p_vendor.com/visit.jpg?ctx=818052;]]>;
                </Tracking>;
             </TrackingEvents>;
             <VerificationParameters>;
                  <![CDATA[;
                      //customParamsGoHere...;
                  ]]>;
            </VerificationParameters>;
         </Verification>;
      </AdVerifications>;
   </Extension>;
</Extensions>

Limitations

The Open Measurement SDK is a solution for mobile app inventory only. Third-party viewability vendors on web are not supported.

Not all publishers may support the OMSDK, but more publishers are expected to adopt newer versions of the GMA SDK.

Frequently asked questions

How is the Open Measurement SDK different from the existing viewability reporting in Query Tool and Viewability bid request signal in Authorized Buyers?
The Open Measurement SDK offers third-party viewability verification. Existing viewability products are powered by Google's viewability measurement (ActiveView).
Can Google help me with creating OMID viewability JavaScript?
You should work with your creative agencies and third-party measurement providers to build OMID JavaScript into your creatives (or have it available for bidding).
Google does not provide services to author viewability JavaScript at this time.
What is the difference between "viewability" and "invalid traffic"? How does OMID help with this?
Third-party verification vendors typically measure whether the creative was viewable and attempt to detect signs of invalid traffic (e.g. non-human traffic, fraud, and so forth).
While Google has best-in-class defenses against invalid traffic, some bidders still want to verify that traffic is legitimate through a third-party. 
Do I have to submit JavaScript using "eventTrackers"? Can I build the JavaScript into my banner or into my VAST video creative?
Display and video ads normally have JavaScript built directly into the creative.
However, because native consists of structured components individually submitted in the bid response, the IAB OpenRTB spec defines eventTrackers as the standardized way to submit JavaScript measurement URLs.
Why is there an approved list of allowed OMID vendor domains?
Google has strict policies to track the performance of third-party code to ensure there are no side effects with the user or publisher ad experience.
Vendors that have already been validated are included on the approved list. New vendors can be added to the approved list. The approved list focuses on the major industry players known to be in demand.

In addition to the approved list, domains (from companies not already listed) that are part of the Open Measurement Working Group are also eligible. Contact your account manager with the domains in question if you work with a working group member and are seeing creative disapprovals.

Video buyers sometimes use VPAID creatives to use third-party viewability measurement providers. Is that still required?
VPAID has never been accepted on app inventory, which is why video buyers were not able to use third-party viewability measurement providers on app impressions. The OMSDK removes the need for VPAID and therefore, video buyers can now use third-party viewability providers on their app buys. 
What if the numbers from a third-party viewability company differ from the numbers I see in the Query Tool or other reporting?
All measurement companies have different methodologies for measuring impressions and viewability. As a result, it's not guaranteed that the numbers align between third-party companies and Google.
Bidders continue to be billed from Google's count of billable impressions.
Was this helpful?
How can we improve it?

Need more help?

Sign in for additional support options to quickly solve your issue

Search
Clear search
Close search
Google apps
Main menu
false
Search Help Center
true
true
true
true
true
71030
false