MRAID (Mobile Rich Media Ad Interface Definitions)

MRAID (Mobile Rich Media Ad Interface Definitions) is a specification for in-app rich media advertising. The current version is 3.0. MRAID is designed so that an ad and a mobile app can communicate through a common language, rather than requiring each app and ad to agree on an independent standard. Apps can be MRAID-compliant or not, meaning they do or do not include implementations of the MRAID API. For MRAID-compliant ads and apps, there is a two-way communication in which one system (e.g. the ad) makes an MRAID-compliant call to the other (e.g. the app), and that system then responds back. This is mediated by the MRAID container.   


Ad providers will often write third-party code that app providers use. That is generally distributed as an SDK, and frequently these SDKs implement MRAID. In a typical MRAID configuration, the ad lives in a "container" that is implemented by the SDK. This can either be inline or an interstitial. Generally the ad lives in a webview, which is effectively a browser without any of the toolbars - just the website rendering part. The webview layer and the container each implement the appropriate parts of the MRAID spec. It is important to note that while there is often a webview component to MRAID implementations, MRAID is not a mobile web concept. 

A prominent use case of MRAID is expandable ads. For example, if the user interacts with the ad in a way that would prompt the unit to expand, the ad itself would send a message via MRAID to expand to the container. The container would then, interacting with the app itself, change the size of the webview and then send a message back to the ad via MRAID that the size change is complete. The ad would then render the appropriate content for the expanded size. This can happen relatively seamlessly between any number of apps and any number of ads because the communication protocol has been standardized in MRAID. 

Another important use case of MRAID is viewability. In the browser context, the ad has access to the geometric measurements of the elements are in the viewport of the browser to determine whether the ad is in view. This technique does not carry over to the app experience. Instead, as of MRAID 3.0, the container implements the exposureChange functionality. Prior versions of MRAID relied on isViewable as a function, which only implemented a single definition of viewability. Given the proliferation of different viewability standards for different customers and different formats, this new mechanism now allows ads and developers to more easily implement different requirements. When the percentage defined in the exposureChange listener, for that particular ad, is viewable, the ad will be sent messages through the API roughly every 200ms until the exposure changes again. 

Autoplay video is a natural evolution from the viewability enabled by MRAID. That said, there are a number of challenges with autoplay video. While one could use the built-in MRAID video player, which would play using the built-in video player, this would not reliably allow for clicks, because this is a pure video player (although it works in certain situations in iOS). If you then used HTML5 for video, it would not autoplay in more recent versions of iOS, because Safari prevents autoplay video in the browser. Thus to use autoplay video, the ad must rely on the player built in the SDK that implements the container or some other container. This adds some complexity because a single ad must thus be aware of any idiosyncrasies in any of the different video players among SDK providers. 

There are a number of additional potential MRAID features, including - all with the user's permission - saving pictures, creating calendar events, and initiating telephone calls. The ad can query the app via MRAID to determine which functionality is available and display the correct ad format. The app's orientation, user position, volume changes, etc can also - when the permissions are available - be usable by the ad via MRAID. As TripleLift continues to grow in mobile app, the richness of the MRAID ecosystem and the ability to provide interesting and immersive functionality may be exciting avenues to pursue.