Creative Types
The following details on creative types apply to DSP bidders in the AppLovin Exchange.
The specifications are ad format agnostic: They apply to all ad types that AppLovin supports.
VAST Support
Inventory that supports VAST passes the imp.video
object in the bid request.
VAST inventory complies with MRAID.
The VAST creative must be completely secure, including all tracking and redirect URLs.
VAST is supported in fullscreen placements only (interstitial and rewarded video). AppLovin aspect-fits the video in the middle of the screen, which depends on the device size. Both landscape-oriented and portrait-oriented video are supported.
VAST videos auto-play on Android and iOS. AppLovin supports only Linear videos. Videos should be at least 5 seconds long and at most 30 seconds long. (Rewarded videos should be between 20 and 30 seconds long, otherwise they may be rejected.) Video file sizes should be below 4MB (for optimal playback, AppLovin recommends video files to be smaller than 2MB). Video files larger than 2MB can perform poorly. If the request to retrieve the video file exceeds 10 seconds, it is considered a timeout.
The flv
and swf
media MIME types are not supported.
The following MIME types are supported:
- Android:
video/mp4
,video/3gpp
- iOS:
video/mp4
,video/3gpp
,video/3gpp2
,video/quicktime
,video/x-m4v
AppLovin supports VAST 2.0, 3.0, 4.0, 4.1, and 4.2.
VAST-capable inventory supports both VAST InLine and Wrapper formats.
VPAID is not supported.
The bid.adm
(or ad markup field) must contain the entire VAST XML payload.
AppLovin does not support URL-encoded VAST tags.
VAST-capable inventory supports companion (endcard) creative. MRAID companion (endcard) creative is supported. When multiple companion resources are sent, AppLovin uses the following order (if the first one fails, it tries the next one, and so on):
StaticResource
IFrameResource
HTMLResource
(by default, support is disabled forHTMLResource
as a companion ad)
- Impression Tracking
- AppLovin fires tags on the server side that you send through the
<impression>
node. You can send more than one such node. - Click Tracking
- AppLovin fires the tag on the client side that you send through the
<ClickTracking>
node. If you use a deep link, you must include it in the<ClickThrough>
node. If you use a deep-link in an iOS ad, theext.skadn
object must benull
. Otherwise the App Store will be opened within the ad and the<ClickThrough>
node will be dismissed. - Companion Ads
- AppLovin RTB expects a full-screen companion ad in the response for VAST ads.
The request specifies the phone screen dimensions.
The AppLovin SDK aspect-fits the ad in the middle of the screen.
Since these are video end cards, use something in the ~1.33 aspect ratio range (for example, 1024×768 for landscape) and high quality images for best results with companion ads.
AppLovin supports only
<HTMLResource>
and<StaticResource>
. Support for<HTMLResource>
as a companion ad is off by default. - Example VAST Ad Markup
MRAID Support
MRAID ads must include a loading indicator to signal that the ad is loading.
There is no limit on ad duration for regular MRAID ads.
Rewarded MRAID ads have a maximum of 30 seconds.
AppLovin supports mraid.open
only for click trackers.
Rewarded MRAID placements (playable ads) are off by default. If you are interested in these, contact your AppLovin point of contact.
Close Button
Remove any close button from your MRAID ad. AppLovin supplies the close button on all MRAID ads.
Playable Guidelines
- Your playable must not auto-click or auto-play audio before the first user interaction.
- Your playable must be a single in-line HTML file with no external references (any images should be base64-encoded).
- Your playable must support MRAID v2.0.
- Your playable must support both landscape and portrait orientations.
- The click-through must redirect directly to the app store by means of
mraid.open()
. - Your playable should be smaller than 5MB.
- If you use WebGL, periodically check if WebGL is available if the initial check fails.
- Do not execute any JavaScript code that modifies or references the DOM until the MRAID ready event fires.
- Disable the playable’s sound until the first user interaction.
- Disable the playable’s sound when your playable closes.
HTML Support
AppLovin RTB centers all HTML ads. The resulting ad position depends on the ad size and the screen size. AppLovin supplies the close button.
Use HTML snippets, not full HTML documents. Escape HTML ad markup.
PNG, JPG/JPEG, and GIF are the supported media formats. MRAID 1.0, 2.0, and 3.0 are supported
Native Support
AppLovin native ads use OpenRTB Dynamic Native Ads API Specification Version 1.2.
The impression object contains the native object.
The native object contains the request
field with the JSON string representation of the native request.
Native Request Information
Field | Description |
---|---|
context | The context in which the ad appears. Currently not used and always set to 1501 . |
plcmtcnt | The placement count (AppLovin requests only one placement per request). |
plcmttype | The design/format/layout of the ad unit being offered. 1 means in the feed of the content; 2 means in the atomic unit of the content. |
ver | The version of the Native Ad Specification to which the request complies; set to 1.2 . |
Native Request Assets
ID | Field | Type | Description |
---|---|---|---|
1 (required) | title | N/A | Title of the native ad. Maximum length is 50 characters. Always passes Bidrequest.imp.native.request.assets[«n»].data.len , the maximum length of the text in the title element. |
2 (required) | img | 3 | Main image of the native creative. Minimum size is 627×627. Recommended size is 1200×627. |
3 (optional) | img | 1 | Icon image of the native creative. Minimum size is 50×50. |
4 (optional) | data | 2 | Descriptive text associated with the text product or service being advertised. Maximum length is 150 characters. Bidrequest.imp.native.request.assets[«n»].data contains .type and .len objects. The type contains the Type ID of the element supported by the publisher. The len is the maximum length of the text in the element’s response. |
5 (required) | data | 12 | CTA description—descriptive text describing a “call to action” button for the destination URL. Maximum length is 15 characters. Bidrequest.imp.native.request.assets[«n»].data contains .type and .len objects. The type contains the Type ID of the element supported by the publisher. The len is the maximum length of the text in the element’s response. |
6 (optional) | data | 3 | Rating of the product being offered to the user. For example, an app’s rating in an app store on a 0–5 scale. |
8 (optional) | data | 1 | “Sponsored By” message which should contain the brand name of the sponsor. Maximum length is 25 characters. |
Native Response Information
A native response must have its bid object’s adm.native.link.url
set to the destination link URL.
It may also have an optional adm.native.link.fallback
set to a fallback URL.
The AppLovin SDK does not support native video.
CTV Support
AppLovin RTB supports Connected TV (CTV) inventory. The following will help with a successful integration:
- CTV requests support only video, so there is no
banner
object under theimp
object. - VAST is the only supported format for Connected TV inventory. AppLovin does not support MRAID or VPAID.
- Only the mp4 video MIME type is supported.
seatbid.bid.ext.duration
is mandatory.
For VAST InLine:
- The bitrate should fall between
minbitrate
andmaxbitrate
sent in the bid request. - The width and height should be equal to
imp.video.w
andimp.video.h
in the bid request.
Ad Caching
The AppLovin SDK caches certain ads to improve ad display responsiveness. Cached ads are shown only in the same session. The SDK caches ads for up to four hours, but normally the period between cache and show is only a few minutes.
- Video
- AppLovin caches only inline video ads. For optimal responsiveness, the maximum video file size allowed is 4MB. Try to keep video file sizes below 2MB.
- MRAID
- While AppLovin does not have a size limit, make your creative assets in your MRAID markup small. This ensures your ads are responsive when the publisher attempts to render them. All MRAID ads must include a loading indicator to signal when the ad is loading.