Please be advised that all MoPub Marketplace inventory requires fully secure creatives, as specified by the field. Further details on secure creative [here][110].

1. What is MRAID?

  • MRAID (Mobile Rich-Media Ad Interface Definitions), is a framework for mobile advertisers and publishers that allows rich media ad creatives to run across all compliant devices and applications. It is a standard developed by the Interactive Advertising Bureau (IAB) in late 2011. MRAID is designed for publishers who want to do direct sales with more engaging ads as well as those who want to work with ad networks that support rich media creatives.

2. What MRAID formats are supported by the MoPub SDK?

  • We fully support the MRAID 1.0 standard per the IAB MRAID 1.0 specification.
  • We also fully support the MRAID 2.0 standard per the IAB MRAID 2.0 specification for our newer SDKs. Please see below for instructions on how to properly target between MRAID 1.0 and 2.0 inventory.

3. Does MoPub support MRAID 2.0?

  • Yes. MoPub SDKs 3.3+ include full MRAID 2.0 support. Please see question #7 for details on how to properly differentiate and target MRAID 1.0 vs MRAID 2.0 inventory.

4. How can I check how my MRAID tag will look/function in MoPub inventory?

5. What is the standard discrepancy we should expect from MRAID?

  • 5% average, 10% maximum. Most testing has come in at ~5% impression discrepancy between MoPub and third-party reporting.

6. How can I properly identify and target MRAID-supported bid responses?

  • MRAID 1.0 Only:
    • The request imp.banner.api field will contain the value 3 to indicate support for MRAID 1.0 only.
  • Both MRAID 1.0 and MRAID 2.0:
    • The request imp.banner.api field will contain the value 3 AND 5 to indicate support for both MRAID 1.0 and MRAID 2.0

7. What do I need to do to serve an MRAID creative?

  • There are two fields in the bid response that you as the serving DSP must pay attention to when serving an MRAID tag to MoPub inventory.
  • You have a choice of implementing EITHER option, or both, but at least one option must be used.
    • Option 1:
      • Add the following field:value to the object of your bid response:
      • "crtype": "MRAID 1.0"
        • OR
      • "crtype": "MRAID 2.0"
        • OR
      • "crtype": "MRAID playable"
    • Option 2 (Option 1a or 1b is preferred):
      • Include the following to the start of your ad markup/mraid tag:
        • <script src="mraid.js"></script>

8. What do I need to do to serve MRAID Video?

  • In addition to the crtype field from question #8 there is one additional required field when serving MRAID Video.
    • Details: This integer array field indicates the type of creative being served. Per section 5.3 of the IAB Open RTB 2.3 specification, the value ‘6’ indicates the creative is of type “In-Banner Video (Auto-Play)”, the value ‘7’ indiciates the creative is of type “In-Banner Video Ad (User Initiated)”
    • Valid value(s): 6 or 7 (This field must contain the integer 6 or 7)
    • Example: "attr": [6]
  • You can also find an MRAID Video bid response example on our MoPub OpenRTB 2.3 documentation.

9. What do I need to do to serve an MRAID Playable ad?

  • In addition to the crtype field from question #8 there is one additional required field when serving MRAID Playables.
    • Details: This integer array field indicates the type of creative being served. Per section 5.3 of the IAB Open RTB 2.3 specification, the value ‘13’ indicates the creative is of type “User Interactive (e.g., Embedded Games)”
    • Example: "attr": [13]

10. Which third-party rich media partners are certified on the MoPub platform?

  • DSP partners can leverage any creative vendors of their choosing that are explicitly following MoPub best practices, per our documentation here and on this page.

  • While we cannot advise which vendor is most optimal for you, we do recommend that whichever vendor you choose, you perform your own creatives testing.

  • Testing your creatives enables you to see your creative in action to better understand the user experience. It also helps you ensure that your creative is in tip-top shape when being displayed on the MoPub platform.

11. Can we run our own MRAID tags built in-house?

  • Yes, but it is your responsibility to test for proper functionality and reporting before flighting your campaign on MoPub. Please refer to the previous question for additional details.

12. Are there any file size restraints on MoPub?

  • Below are our best practice on file sizes for various creative formats (including MRAID):
Creative Type Optimal Ok Suboptimal
HTML/MRAID 200-300kb 700kb 1mb+
VAST/MRAID Video 2-3mb 5mb 10mb+
Native 200-300kb 700kb 1mb+

13. Does MoPub have any best practices for building MRAID tags in-house?

  • Be mindful of opening links and impression tracking
    • Opening links:
      • Per the MRAID spec, all MRAID ads are required to leverage the method when the a user clicks to go to a landing page. Using href anchor tags or or window.location to open links will result in click-tracking discrepancies
    • Impression Tracking:
      • A common MRAID oversight is handling specifically how/when an impression is counted.
    • Note: Impression tracking is handled by the MoPub SDK. The following only applies to MRAID creatives and vendors that require separate tracking in the markup:
  • A common mistake is to count an impression when the MRAID tag is called from your servers instead of programmatically detecting when the ad has been actually shown to the end-user.
  • Your tag must implement logic such that your impression trackers are fired only when the MRAID ad becomes viewable to the end-user.
  • The MoPub SDK will broadcast the mraid.viewableChange() event when the app calls for the MRAID tag to be displayed and the ad becomes viewable to the user (“SHOW” state).
  • Your tag should implement logic such that it waits and listens for the SDK to fire the mraid.viewableChange() event BEFORE firing its impression tracker.
  • Pseudo-code for this impression-firing logic is as follows:

    if ( mraid.viewableChangeEventWasDetected() )
       if( mraid.isViewable() == true)
       else if ( mraid.isViewable() == false)

14. What are your close button requirements?

  • The interstitial close button is provided by our SDK. As of July 1, 2020 we no longer support the mraid.useCustomClose() functionality. This change aligns with the MRAID 3.0 spec and provides end users and advertisers with a consistent close button experience. If your creatives currently employ the useCustomClose() method and it’s set to (true), please switch it to (false).

15. Do you support any other MRAID features?

As of SDK 5.9.0, the following MRAID features are not supported:

  • sms (send an sms message)
  • tel (call someone)
  • calendar (add a calendar event)
  • photo (save a photo)

16. Can we see what MoPub’s MRAID implementation looks like?

17. Any known MRAID bugs or limitations?

  • Impression Tracking:
    • The demand partner’s impression tracker (nURL for server-to-server and imptracker RTB 2.3 DSP) along with other impression trackers fire when our ad template detects the mraid.viewableChange() == true event as broadcasted by the MoPub SDK when the interstitial webview becomes viewable to the user. This logic is dependent on the MRAID.ready event
    • The impression trackers will not fire if the mraid.eventListeners for ready or viewableChange have been removed from our ad template as a result of your tag’s removal of MoPub’s mraid.eventListeners.
    • Troubleshooting:
      • If the nurl or imptracker does not fire as expected, please ensure the your tag is NOT calling the mraid.removeEventListener method for the MRAID.ready or MRAID.viewableChange events
      • Here is part of the code we use to fire the impression tracker:
      var handleViewableChange = function() {
          if (mraid.isViewable() === 'true' || mraid.isViewable() === true) {
      mraid.addEventListener(mraid.EVENTS.READY, function(e) {
          mraid.addEventListener('viewableChange', handleViewableChange);

Last updated September 20, 2021

© 2022