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.
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.
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> node.
You can send more than one such node.
<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.
<HTMLResource> and <StaticResource>.
Support for <HTMLResource> as a companion ad is off by default.
{
"adm": "<VAST version=\"2.0\">
<Ad id=\"applovin-video\">
<InLine>
<AdSystem version=\"AppLovin\">AppLovin Ad Server</AdSystem>
<AdTitle><![CDATA[AppLovin Video]]></AdTitle>
<Description><![CDATA[AppLovin Video]]></Description>
<Impression id=\"AL_Imp\" />
<Creatives>
<Creative sequence=\"1\" id=\"1\">
<Linear>
<Duration>00:00:13</Duration>
<VideoClicks>
<ClickThrough id=\"AL_Click\"><![CDATA[https://rtb.applovin.com/redirect?clcode=3!1563.1466706706!FgcnDB8CXKyVimq2aZHmpR2JxNmwsN1NMK7UlK6FqhOI54WxpITXiYcxUEVgXRIwedrcfVmD_DpD3lfBLqzpw5qF7sPXmXQ_kY1NLKQ2kdQn4cwctkm--RBq1Cmz5mX8RJRytc-G3KeJ9usTmgmXTSFtLvHGSGHIM7Pwfq_KiEAQiKweR20lp_iyQXVNwiUJmpFFoQpAm9bNU5JegcmPfIIBnesZKk5pmdJDpUEnjlFdNAqRCzci_qO-f6RtTdYEvJBqnh9usSgEdxnfLh-hHpNx5CovcfTejFfF94CTaTV_K6wEHXQOjZdT-yfdeydAQEkl3bUxiT8cXrEuCu73WHFVOoYwoLJLLAipuLCNCkj9DSvZ6JTnoQkPRlpBjSJQmmYXNv2HDKXYKSgIA-g-wRaTuRZ0lMi4OHNBK_N4ClACeg2TOFYTp3cHWnh6gEr-ZfWQ4FUzgGCLQRXm0Ez7wjCRM0vfoVsdVEZrctobQI7_im9tT4UmTjNgxP7dKlLHRwhl68fBqGUMobFSsohmuucakp5BXlSPyQIh91MoTOOsbR2UTMZXjFholy7qDgDxNxKzaQk0AFX6Vf0w**&did=104934ef84eee135bb&eventid=7d2a138bf9102f05dcbf9540b5f5dd2a317cc&ssl=1]]></ClickThrough>
</VideoClicks>
<MediaFiles>
<MediaFile delivery=\"progressive\" bitrate=\"932\" width=\"570\" height=\"320\" type=\"video/mp4\"><![CDATA[https://vid.applovin.com/468779_570x320.mp4]]></MediaFile>
</MediaFiles>
</Linear>
</Creative>
<Creative sequence=\"1\" id=\"1\">
<CompanionAds>
<Companion width=\"1024\" height=\"768\">
<StaticResource creativeType=\"image/gif\"><![CDATA[https://img.applovin.com/1461768_1024x768.gif]]></StaticResource>
<CompanionClickThrough><![CDATA[https://rtb.applovin.com/redirect?clcode=3!1563.1466706806!FgcnDB8CXKHpfIyVimq2aZHmpR2JxNmwsN1NMK7UlK6FqhOI54WxpITXiYcxUEVgXRIwedrcfVmD_DpD3lfBLqzpw5qF7sPXmXQ_kY1NLKQ2kdQn4cwctkm--RBq1Cmz5mX8RJRytc-G3KeJ9usTmgmXTSFtLvHGSGHIM7Pwfq_KiEAQiKweR20lp_iyQXVNwiUJmpFFoQpAm9bNU5JegcmPfIIBnesZKk5pmdJDpUEnjlFdNAqRCzci_qO-f6RtTdYEvJBqnh9usSgEdxnfLh-hHpNx5CovcfTejFfF94CTaTV_K6wEHXQOjZdT-yfdeydAQEkl3bUxiT8cXrEuCu73WHFVOoYwoLJLLAipuLCNCkj9DSvZ6JTnoQkPRlpBjSJQmmYXNv2HDKXYKSgIA-g-wRaTuRZ0lMi4OHNBK_N4ClACeg2TOFYTp3cHWnh6gEr-ZfWQ4FUzgGCLQRXm0Ez7wjCRM0vfoVsdVEZrctobQI7_im9tT4UmTjNgxP7dKlLHRwhl68fBqGUMobFSsohmuucakp5BXlSPyQIh91MoTOOsbR2UTMZXjFholy7qDgDxNxyGKzaQk0AFX6Vf0w**&did=104924ef84eee135bb&eventid=7d82abf9102f05dcbf9540b5f5dd2a317cc&ssl=1]]></CompanionClickThrough>
</Companion>
</CompanionAds>
</Creative>
</Creatives>
<Extensions>
</Extensions>
</InLine>
</Ad>
</VAST>"
}
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.
Remove any close button from your MRAID ad. AppLovin supplies the close button on all MRAID ads.
mraid.open().The playable ad timer does not start until the first user interaction.
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 .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. |
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.