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.
Inventory that supports VAST passes the imp.video object in the bid request.
VAST inventory complies with MRAID.
The VAST creative must be secure, including all tracking and redirect URLs.
Only fullscreen placements (interstitial and rewarded video) support VAST. 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 4 MB (for optimal playback, AppLovin recommends video files to be smaller than 2 MB). Video files larger than 2 MB can perform poorly. A request to retrieve the video file times out if it exceeds 10 seconds.
The flv and swf media MIME types are not supported.
The following MIME types are supported:
video/mp4, video/3gppvideo/mp4, video/3gpp, video/3gpp2, video/quicktime, video/x-m4vAppLovin 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):
StaticResourceIFrameResourceHTMLResource (by default, support is disabled for HTMLResource 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, the ext.skadn object must be null.
Otherwise the App Store opens in the ad and the <ClickThrough> node is 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 :
<Ad id="applovin-video">
[COMPONENT: VAST]
" }
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
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.
| Field | Description |
|---|---|
context | The context in which the ad appears. Not used, always set to 1501. |
plcmtcnt | The placement count (AppLovin requests only one placement per request). |
plcmttype | The design/format/layout of the ad unit. 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. |
| 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 advertised text product or service. 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 and objects. The contains the Type ID of the element supported by the publisher. The is the maximum length of the text in the element’s response. |
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.
AppLovin RTB supports Connected TV (CTV) inventory. The following will help with a successful integration:
banner object under the imp object.seatbid.bid.ext.duration is mandatory.For VAST InLine:
minbitrate and maxbitrate sent in the bid request.imp.video.w and imp.video.h in the bid request.The AppLovin SDK caches certain ads to improve ad display responsiveness. Cached ads show only in the same session. The SDK caches ads for up to four hours, but normally the period between cache and show is a few minutes.
Video : AppLovin caches only inline video ads. For optimal responsiveness, the maximum video file size allowed is 4 MB. Try to keep video file sizes below 2 MB.
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.
.type.lentypelen6 (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. |
When you introduce a new creative format, AppLovin recommends that you test with the AppLovin DSP Sample App before you release.
SDK bidders must handle the rendering of creatives via their own SDK. They should contact their AppLovin contact with questions.
The playable ad timer does not start until the first user interaction.