Native Ads

MoPub’s Native Ads product allows DSPs to programmatically buy native ad inventory that is closely integrated into an app’s unique look and feel. Given that this type of advertising is new and unique, below are our recommended best practices for creating and sending native ads.

Guidelines & Best Practices

Technical Requirements

  • MoPub supports the Native Ads 1.0 and 1.2 sub specifications for OpenRTB.
    • Specs for Native 1.0 can be found here and specs for Native 1.2 can be found here.
  • Bidders have two options for returning ad markup:
    • (Preferred Method) As a JSON object in the ext.admnative field
    • As a serialized string in the adm field
  • Only respond with a native ad when the native object is present in the bid request.
  • In Native 1.2, MoPub added support for the ‘Sponsored By’ data asset type, the eventtrackers, clicktrackers, and plcmttype fields.
  • Current bidders in MoPub’s native ads can map the data fields to the following asset object ids:
    • 1 = title
    • 2 = main image
    • 3 = icon
    • 4 = text
    • 5 = ctatext
    • 6 = starrating
    • 7 = VAST
    • 8 = sponsored by
  • Asset Objects:
    • “title”: 25 characters (text may truncate with an ellipsis to 25 characters)
    • “text”: 100 characters (text may truncate with an ellipsis to 100 characters)
    • “iconimage”: 80 × 80 pixels or greater (with the same ratio). Recommended file size < 15KB.
    • “mainimage”: 800×417 (1200x627, 1200x628 and 800x418 recommended) pixels or greater (with a 1.91:1 ratio). Recommended file size < 100KB for phones, and < 150KB for tablets.
    • “link”: Destination URL for when call to action link is clicked. Redirects should be absolute, not relative (e.g. ‘’, ‘/en’). Deeplinks may be supported if ‘dlp’ is set to 1 in the bid request.
    • “ctatext”: 15 character limit. We strongly recommend short, one word calls to action, as longer text may be truncated. If not specified, it will default to ‘Install’.
    • “sponsored by”: 25 characters
  • Note, native video is no longer supported on MoPub.
  • Expect some delay in impression notifications after auction wins due to pre-caching. This will also lead to some discrepancy between reported auction wins and impressions, as some won auctions may not result in an impression
  • In order to count as an impression, half of the ad must be displayed for 1 second or more
  • Test/QA all creatives on the MoPub sample app before pushing them live.

Bid Response Requirements

  1. native.imptrackers must be present
    • Bidders should use the native.imptrackers array as opposed to[] to submit impression trackers
    •[] will be ignored. For Native 1.2, native.eventtrackers can also be used to submit impressions.
    • Array of impression trackers (1st & 3rd party) to be consistently tracked when MoPub records the billable impression event. See technical best practices above.
  2. The following assets are required when present in the bid request:

    Asset Asset ID
    Title 1
    Main Image 2
    Icon Image 3
    Text 4
    Sponsored by (for Native 1.2) 8
  3. Asset ID ( is an integer not a string.
  4. Width and height are required to be present in the image object for Main and Icon Image Assets.

Text Best Practices

  • Capitalize the first letter of each word in the “title” field with no punctuation at the end.
  • Use correct capitalization, grammar and punctuation in the “text” field.
  • Proofread text for content, grammar, and punctuation
  • Ensure the creative refers to the correct OS if the OS is mentioned in any text fields (e.g. don’t write “iOS” when the ad will serve on Android).
    • Clickthrough to the correct app store, app (in the case of deep linking) or landing page for the targeted device and operating system.

Call To Action Best Practices

  • “ctatext” field is optional and if left blank, the text will read ‘Install’.
  • Use one word call to action.
  • Capitalize the first letter.
  • Don’t put a period at the end of the call to action.

Image Best Practices

  • Always respond with both “iconimage” and “mainimage” fields, though ultimately the publisher may not always display both.
  • Ensure images are the correct sizes as specified above and in the native spec.
  • Double-check that icon and main image are high-quality images that correspond to the advertised product.
  • Host on stable CDNs, and ensure that you are not returning broken links.

Privacy Icon Best Practices

For SDKs 5.2 and above, DSPs have the option to submit their own custom privacy icon image and URL.

Custom URL Best Practices

The custom URL sent by the DSP can be for the advertiser that is referenced in the creative or campaign OR for the DSP itself. An advertiser or DSP would send this landing page in hopes of collecting information like the below:

  • User does not want to see this type of product
  • User does not want to see this type of creative
  • User does not want to be targeted by this company

Custom Icon Image Best Practices

DSPs can send a custom privacy icon image to replace the default MoPub privacy iformation icon image. MoPub supports the following image formats: .gif, .jpg, .jpeg, .png. The recommended icon image size is 120x120 pixels and the minimum image size is 40x40 pixels.

Privacy Icon/URL Bid Request/Bid Response FAQ

Which SDKs support custom privacy icons and URLS?

Custom privacy icons and URL’s are supported in SDK 5.2.0+.

How will the DSP know if they can send their custom privacy URL?

MoPub’s bid request will included a hardcoded value in the bid_request.imp.native.request.native.privacy field.

  • If SDK >= 5.2, the integer 1 is passed
  • If SDK <= 5.2, the field is absent in the request

Does the DSP have to send custom privacy icons and URLs?

No. MoPub’s privacy information icon and URL will be present by default for native ads. If a DSP chooses to send their own icon/URL, they may do so in the bid response (provided the hardcoded integer passed through in the bid request is 1).

How can the DSP send its own custom privacy URL?

There are two options available.

Option 1: Supports Custom Privacy URL Only

According to the standard Native OpenRTB 1.2 spec, the privacy url can be sent in the{admnative,adm}.native.privacy field. Note, this field can only have the privacy url (the click url).

Example: "privacy": ""

Option 2: Supports Custom Privacy Icon and URL

The privacy URL and privacy icon can be sent at the level.

Example: "privacy": { "image_url": "", "click_url": "" }

Variation in Native Ads

Native ads will appear within the content flow of the target app. The publisher has the ability to customize native ads to blend in with the look and feel of their app. For example, they can change the layout of the text and may choose only to display the icon and omit the main image. Despite this, all required elements should always be sent in the bid response.

The mock-ups below show how an app may customize the standard native mark-up fields you send. Native mark-up elements are labeled in each.



Last updated September 20, 2021

© 2022