What Is MRAID?
MRAID (Mobile Rich Media Ad Interface Definitions) is a standardized JavaScript API published by the Interactive Advertising Bureau (IAB) that allows rich media ads to communicate with mobile app environments. It creates a common language between ad creatives and the mobile SDKs that render them. That shared language lets interactive features, including expandable banners, video playback, geolocation access, and device orientation changes, work predictably across thousands of different apps and devices.
Without MRAID, a rich media ad built for one publisher’s app would require custom code to function in another. MRAID eliminates that fragmentation by defining a shared set of commands and events that any compliant SDK must support.
Why MRAID Exists
Mobile advertising faced a compatibility crisis in its early years. Ad creative studios were building interactive units that worked in some apps and broke in others, depending on which ad SDK the publisher used. The IAB released MRAID 1.0 in 2011 to solve this, followed by MRAID 2.0 in 2012 and MRAID 3.0 in 2015, each version adding capabilities as mobile hardware and user expectations evolved.
The core problem MRAID addresses is that HTML5 ads running inside a WebView container have no native way to ask the host app questions like “how big is the screen?” or “can I expand beyond my current frame?” MRAID provides exactly those methods.
How MRAID Works
When an MRAID-compliant SDK loads an ad, it injects the mraid.js library into the WebView. The ad creative can then call MRAID methods to interact with the app environment. The sequence looks like this:
- The SDK signals that MRAID is available via the
mraid://custom URL scheme. - The ad creative listens for the
readyevent before executing any MRAID calls. - Once ready, the creative queries the environment and triggers interactions using standardized methods.
A standard MRAID initialization block in an ad creative looks like this:
if (typeof mraid !== 'undefined') {
if (mraid.getState() === 'loading') {
mraid.addEventListener('ready', onMraidReady);
} else {
onMraidReady();
}
}
Core MRAID Methods and Events
MRAID exposes a defined set of methods that ad creatives can call and events they can listen to. The most commonly used include:
| Method / Event | Type | Purpose |
|---|---|---|
mraid.expand() |
Method | Expands a banner to a larger overlay |
mraid.close() |
Method | Collapses an expanded or interstitial ad |
mraid.open(url) |
Method | Opens a URL in the device browser or in-app browser |
mraid.getScreenSize() |
Method | Returns the screen dimensions in density-independent pixels |
mraid.getMaxSize() |
Method | Returns the maximum dimensions the ad can expand to |
mraid.isViewable() |
Method | Checks whether the ad is currently on screen |
stateChange |
Event | Fires when the ad state changes (loading, default, expanded, hidden) |
viewableChange |
Event | Fires when viewability status changes |
MRAID Ad Formats
MRAID supports several interactive ad formats that are foundational to rich media advertising on mobile:
Expandable Banners
A standard banner (typically 320×50 or 300×250) that expands to a full-screen overlay when tapped. The ad calls mraid.expand(), and the SDK handles the animation and layout. A user tapping a Nike running ad on a fitness app, for example, might trigger an expansion that shows a full product video and a “Shop Now” button, all within the app.
Interstitials
Full-screen ads that appear between content, such as between game levels. MRAID interstitials load in a separate container and are dismissed via mraid.close(). According to IAB data, mobile interstitials can achieve click-through rates of 2 to 3 percent, roughly six times the average for standard display banners.
Two-Part Expandables
Introduced in MRAID 2.0, this format loads the expanded portion from a separate URL, reducing the initial payload size. The banner loads quickly, and the richer expanded content loads only if the user taps.
MRAID 3.0 Additions
MRAID 3.0 added several features that address fraud prevention and viewability measurement, two persistent issues in mobile programmatic advertising:
- Exposure change events: Allows measurement of what percentage of an ad is actually visible, supporting viewability standards set by the MRC (Media Rating Council).
- Unload event: Fires when the WebView is about to be destroyed, giving creatives a chance to clean up resources and report final metrics.
- Location method: Provides access to device location data (with user permission) for geo-targeted creatives.
MRAID and Programmatic Buying
In programmatic advertising, MRAID compliance is a prerequisite for trafficking rich media units through most mobile supply-side platforms. Publishers declaring MRAID inventory in their OpenRTB bid requests include the api field with a value of 3 (for MRAID 1.0), 5 (MRAID 2.0), or 6 (MRAID 3.0), signaling to demand-side platforms which version of the standard the app supports.
A simplified bid request signal looks like:
"imp": [{
"banner": {
"api": [3, 5]
}
}]
Buyers targeting this inventory know their MRAID creative will render correctly without custom integration work.
MRAID vs. VPAID and OMID
MRAID is sometimes confused with related standards. VPAID (Video Player Ad-Serving Interface Definition) serves a similar purpose for video players on desktop web, while MRAID targets display and rich media in mobile apps. The two are not interchangeable.
The Open Measurement SDK (OMID), also published by the IAB, complements MRAID by standardizing viewability and verification measurement across mobile apps. Many modern ad implementations use both: MRAID for creative interactivity and OMID for independent viewability reporting. Google’s Ad Manager and Meta’s Audience Network both support OMID alongside MRAID in their mobile SDKs.
Common MRAID Implementation Issues
Several recurring problems affect MRAID deployments in practice:
- Calling methods before ready: Creatives that call
mraid.expand()before thereadyevent fires will throw errors in some SDKs and silently fail in others. - SDK version mismatches: An ad built for MRAID 2.0 may call methods unavailable in an SDK that only implements MRAID 1.0. Checking
mraid.getVersion()before calling version-specific methods prevents this. - Non-compliant SDKs: Some smaller publisher SDKs claim MRAID compliance but implement only a subset of methods. Testing against a reference validator like the IAB’s MRAID Compliance Test App catches these gaps before trafficking.
Frequently Asked Questions About MRAID
What does MRAID stand for?
MRAID stands for Mobile Rich Media Ad Interface Definitions. It is a JavaScript API standard published by the Interactive Advertising Bureau (IAB) that enables rich media ads to communicate with mobile app environments in a consistent, predictable way across any compliant SDK.
What is the current version of MRAID?
MRAID 3.0 is the current version, released by the IAB in 2015. It added exposure change events for viewability measurement, an unload event for resource cleanup, and a location method for geo-targeted creatives. Prior versions, MRAID 1.0 (2011) and MRAID 2.0 (2012), remain in active use across older publisher SDKs.
Does MRAID work on both iOS and Android?
Yes. MRAID is platform-agnostic. Any mobile app SDK that correctly implements the MRAID specification supports the standard on both iOS and Android. An ad creative written once against the MRAID API will function across both platforms without modification.
What is the difference between MRAID and OMID?
MRAID handles creative interactivity, such as expanding banners, closing ads, and querying screen dimensions. The Open Measurement SDK (OMID) handles independent viewability and verification measurement. The two standards serve different purposes and are frequently used together in the same ad implementation.
What is the difference between MRAID and VPAID?
VPAID (Video Player Ad-Serving Interface Definition) is designed for video ad interactivity in desktop web video players. MRAID targets display and rich media ads inside mobile apps. The two standards address different environments and are not interchangeable.
Key Takeaway
MRAID is the foundational standard that makes interactive mobile in-app advertising portable and predictable. For media buyers, it ensures that rich creative executions built once can run across thousands of apps without custom development. For publishers, MRAID-compliant SDKs unlock access to premium rich media demand. Understanding which MRAID version an app’s SDK supports is a practical prerequisite for trafficking anything beyond a static banner in the mobile in-app channel.
Related terms: Rich Media Advertising, Programmatic Advertising, Viewability, Click-Through Rate, WebView
