Skip to content

Campaign Management API

The Campaign Management API is for advertisers who use AppLovin’s AppDiscovery to promote their apps. Advertisers (and users who have advertising access to their company’s account) can create an OAuth application that authenticates access to these APIs. Advertisers can also create third-party OAuth applications that help to manage campaigns across many advertising clients.

Third-Party App Authorization Flow

This section is for companies who use the Campaign Management API on behalf of other companies who use third-party apps. If you manage your own company’s campaigns, use a first-party OAuth app instead, and skip to the API Request Authentication section.

AppLovin supports the standard OAuth web application flow. All query parameters are required. Send users to this URL to prompt them to authorize your app to manage their campaigns:

Third-Party App Authorization Flow Target URL

https://oauth.applovin.com/oauth/initialize

Table of Third-Party App Authorization Request Query Parameters

NameDescriptionExample
client_idClient ID of your OAuth App34af7c430e24bbccbc647ca3dd5ac858
redirect_uriWhere to redirect the user after flow completion. This must be URL-encoded. It must match the redirect_uri defined in the OAuth creation process.https%3A%2F%2Fmydomain.com%2Foauth_code
response_typeSet this to code.code
scopeThe scope(s) this app should use. Must be a subset of the scopes defined in the app. URL-encode this value. Supported scopes:
  • campaigns:read
  • campaigns:write
  • creatives:read
  • creatives:write
  • source_bids:read
  • source_bids:write
campaigns%3Awrite%20creatives%3Awrite
stateAn opaque value used by the client to maintain state between the request and callbackab13221308fe6abad1d1

Third-Party App Authorization Flow Sample Request

https://oauth.applovin.com/oauth/initialize?response_type=code&client_id=34af7c430e24bbccbc647ca3dd5ac858&redirect_uri=https%3A%2F%2Fmydomain.com%2Foauth_code&scope=campaigns%3Awrite%20creatives%3Awrite&state=ab13221308fe6abad1d1

After the user consents to using your OAuth app, Applovin sends a callback to your redirect_uri. That callback contains the user’s authentication code.

Table of Third-Party App Authorization Response Query Parameters

NameDescriptionExample
codeThe code value used to generate access and refresh tokens on behalf of the user. See the section on API Request Authentication9aa19842db327e4e43cc426e6ad6c2d1eacd2e3d464
stateThe state that was passed to AppLovin’s initialization request, echoed backab13221308fe6abad1d1

Third-Party App Authorization Flow Sample Response

https://mydomain.com/oauth_code?code=9aa19842db327e4e43cc426e6ad6c2d1eacd2e3d464&state=ab13221308fe6abad1d1

API Request Authentication

Issue a POST request to this endpoint to generate a session token based on your Client ID and Client Secrets. The session token lasts for 60 minutes (for first-party OAuth applications). Put the access token you retrieve from this endpoint in the accessToken.access_token field in the response on all other requests. Do this via the header Authorization: Bearer access_token.

Authentication Target URL

https://oauth.applovin.com/oauth/v1/access_token

Authentication Content Type

multipart/form-data

Table of Access Token Form Fields

NameDescriptionExample
client_idClient ID of your OAuth App34af7c430e24bbccbc647ca3dd5ac858
client_secretClient Secret of your OAuth App9538e854765525d0b34af7c430e24bbcdfd58b83f3836fd0e83cbfd1b
codeThe code value from the Authorization callback to an external company’s redirect_url. Required for grant_type=authorization_code, otherwise invalid.9aa19842db327e4e43cc426e6ad6c2d1eacd2e3d464
grant_typeType of grant. For first party apps, set this to client_credentials. For third-party apps authenticating with the authentication code, set this to authorization_code. For third-party apps authenticating with a refresh token, set this to refresh_token.client_credentials
redirect_uriThe redirect URI for third-party applications. Invalid on first-party applications.https://mydomain.com/oauth_code
refresh_tokenThe user’s refresh token to generate a new access token and refresh token. Each refresh token can be used only once. But a new refresh token is returned with each call. Refresh tokens expire in 30 days. Required for grant_type=refresh_token, otherwise invalid.c75742c98f382264fca6a0a5759354b6eb95ea1a7c44d0e0b22e36ff26f8
scopeThe scope(s) that this session token should use. Must be a subset of the scopes defined in the app. Write scopes automatically have read permission. Separate multiple scopes with spaces. Supported scopes:
  • campaigns:read
  • campaigns:write
  • creatives:read
  • creatives:write
  • source_bids:read
  • source_bids:write
Required for grant_type=client_credentials, optional for grant_type=refresh_token, invalid for grant_type=authorization_code
campaigns:write creatives:write
{
"accessToken":{
"token_type":"Bearer",
"expires_in":3600,
"access_token":"cLXHaoel3iWi5Z3D"
}
}

/campaign/campaign_id

Issue a GET request to this endpoint to view an individual campaign’s details.

Issue a POST request to this endpoint to edit an individual campaign’s details, or to create a new campaign. When you create a new campaign, don’t fill in the campaign_id in the request URL nor in the request body.

/campaign/campaign_id Target URL

https://o.applovin.com/campaign_management/v1/campaign/«campaign-ID»

/campaign/campaign_id Sample Response Body

{
"name": "Test Campaign Name - iOS",
"campaign_id": "29d66efc22ae53a201e1532265b83f12",
"package_name": "123456789",
"bundle_id":"com.sample.app.ios",
"platform": "ios",
"category": "101",
"bid_type": "CPI",
"tracking_method": "adjust",
"status": true,
"created_at": "2021-06-29 00:00:00",
"impressions": 21,
"clicks": 4,
"installs": 1,
"spend": "1.4300"
}

/campaign/campaign_id Sample Request Body

{
"campaign_id": "29d66efc22ae53a201e1532265b83f12",
"status": false
}

Table of /campaign/campaign_id Request/Response Body Fields

NameDescriptionRequired on CreationRequired on Update
bid_type*Bid Type of the campaign (CPI, CPP_GOAL, RET, CPE, ROAS_AD_BASED, or ROAS_IAP)

Example: "CPI"

FALSETRUE
bundle_id*The Bundle ID of the promoted app (iOS only)

Example: "com.sample.app.ios"

FALSETRUE
campaign_id*Unique Campaign Identifier

Example: "29d66efc22ae53a201e1532265b83f12"

TRUEFALSE
categoryCategory of the campaign

Example: "105"

FALSETRUE
clicks*Yesterday’s clicks

Example: 12

FALSETRUE
created*The date that the campaign was created

Example: "2021-06-30 00:00:00"

FALSETRUE
goal_period*Number of Days after install for goal to be measured. Possible values by bid_type are:
bid_typevalues
CPIn/a
CPP7
CPE7
RET1, 3, 7
ROAS_AD_BASED0
ROAS_IAP0, 7

Example: 0
FALSEFALSE
impressions*Yesterday’s impressions

Example: 125

FALSETRUE
installs*Yesterday’s installs

Example: 2

FALSEFALSE
nameCampaign Name

Example: "Test Campaign - iOS"

TRUEFALSE
package_name*The Package Name of the promoted app. On iOS, use the numeric portion of the iTunes ID

Example: "123456789"

FALSETRUE
platform*Platform of the promoted app (ios or android)

Example: "ios"

FALSETRUE
spend*Yesterday’s spend

Example: "2.5000"

FALSETRUE
statusWhether the campaign is active or not

Example: true

FALSEFALSE
tracking_methodThe campaign tracking method. See the table of tracking methods below.

Example: "adjust"

FALSETRUE

* read-only

/campaigns

Issue a GET request to this endpoint to view all campaigns. You cannot make edits to campaigns with this endpoint.

/campaigns Target URL

https://o.applovin.com/campaign_management/v1/campaigns

/campaigns Sample Response Body

[
{
  "name": "Test Campaign Name - iOS",
  "campaign_id": "29d66efc22ae53a201e1532265b83f12",
  "package_name": "123456789",
  "bundle_id": "com.sample.app.ios",
  "platform": "ios",
  "category": "101",
  "bid_type": "CPI",
  "tracking_method": "adjust",
  "status": false,
  "created_at": "2021-06-29 00:00:00",
  "impressions": 21,
  "clicks": 4,
  "installs": 1,
  "spend": "1.4300"
},
{
  "name": "Test Campaign Name - Android",
  "campaign_id": "265b83f129d66efc22ae201e153253a2",
  "package_name": "com.sample.app.android",
  "platform": "android",
  "category": "201",
  "bid_type": "CPI",
  "status": false,
  "created_at": "2021-06-29 00:00:00",
  "impressions": 39,
  "clicks": 9,
  "installs": 2,
  "spend": "1.8600"
}
]

Table of /campaigns Response Body Fields

See the table of request/response fields from /campaign/campaign_id.

/creative_set/creative_set_id

Issue a POST request to this endpoint to update a creative set’s name or to create a new creative set. To create a new creative set, do not fill in the creative_set_id in the request URL nor in the request body. A creative set is a collection of assets that can be combined together to generate many ads. When you assemble a creative set, you do not need to upload each asset multiple times. Creative sets also include information about the languages of the underlying assets.

/creative_set/creative_set_id Target URL

https://o.applovin.com/campaign_management/v1/creative_set/«creative-set-ID»

/creative_set/creative_set_id Sample Response Body

{
"campaign_id":"f87ece84f46b55cfbf24427ff8746a40",
"name":"My Test Creative Set 0",
"countries":["us","gb"],
"languages":[
"en"
],
"ads":[],
"assets":[],
"product_page": null
}

Table of /creative_set/creative_set_id Request/Response Body Fields

NameDescriptionExample
ads*Array of ad objects associated with this creative set. These objects have the same format as the response body from the /ad/ad_id endpoint.
assets*Array of asset objects associated with this creative set. See table below.
campaign_id*Campaign ID"29d66efc22ae53a201e1532265b83f12"
countriesCountries that this creative set should be restricted to (for example, for country-specific promotions). You do not need to duplicate campaign targeting on each creative set. If this list is blank, the campaign-defined countries are eligible. If this list includes countries outside of what the campaign targets, those countries will not be eligible["za", "gb"]
languagesList of languages. See the table below for a full list.
nameCreative set name
product_pageiOS Custom Product Page or Android Store Listing associated with the creative set

* read-only

Table of Asset Object Fields

NameDescriptionExample
assetAsset URL, hash, or text string"https://res1.applovin.com/oab49763/foobidyfoo_v23_phone.mp4"
statusThe Campaign Management API processes assets asynchronously. It begins by setting the status to processing. It finishes by setting the status to either error (for failure) or ready (for success)."processing", "error", "ready"
typeAsset type. See the table below for possible asset types."TXT_TITLE"

/creative_sets/campaign_id

Issue a GET request to this endpoint to view all creative sets associated with a campaign.

/creative_sets/campaign_id Target URL

https://o.applovin.com/campaign_management/v1/creative_sets/«campaign-ID»

/creative_sets/campaign_id Sample Response Body

[
{
"campaign_id":"f87ece84f46b55cfbf24427ff8746a40",
"name":"My Test Creative Set 0",
"countries":["us","gb"],
"languages":[
"en"
],
"ads":[],
"assets":[],
"product_page": null
}
]

Table of /creative_sets/campaign_id Response Body Fields

See the table of response fields from /creative_set/creative_set_id

/creative_set_assets/creative_set_id

Issue a POST request to this endpoint to upload, update, or remove an asset associated with a creative set. Only one asset can be managed per request. The response will include all assets in the creative set.

POST /creative_set_assets/creative_set_id Target URL

https://o.applovin.com/campaign_management/v1/creative_set_assets/«creative-set-ID»

POST /creative_set_assets/creative_set_id Content Type

multipart/form-data

Table of Request Asset Form Fields

NameDescriptionExample
assetAsset URL, hash, or text string."https://res1.applovin.com/ob7cb6fc/foobidyfoo_v23_phone.mp4", "3f5a01dc0980f3d04188e73e91c", "Best app you’ll ever play"
fileImage, video, or HTML file.See Ad rules, specifications, and guidelines
remove*(Optional) Pass in true to remove the asset type.true or false
typeAsset type. See the table below for possible asset types.”TXT_TITLE”
update(Optional) Pass in true to update the asset type.true or false

* When you remove an asset, you only need to pass the type parameter.

When you add or update an asset, you only need to pass either the asset parameter or the file parameter.

When you pass in a file to add or update a file asset, type is calculated from the file properties.

Sample POST /creative_set_assets/creative_set_id Response Body

[
{
"asset":"https://res1.applovin.com/oab7a439/foobidyfoo_v23_phone.mp4",
"status":"ready",
"type":"VID_LONG_P"
},
{
"asset":"Help the heroes to defeat the villains and save the world!",
"status":"ready",
"type":"TXT_SUBTITLE"
}
]

Table of POST /creative_set_assets/creative_set_id Response Asset Object Fields

NameDescriptionExample
assetAsset URL, hash, or text string"https://res1.applovin.com/oab49763/foobidyfoo_v23_phone.mp4"
statusThe Campaign Management API processes assets asynchronously. It begins by setting the status to processing. It finishes by setting the status to either error (failure) or ready (success)."processing", "error", "ready"
typeAsset type. See the table below for possible asset types."TXT_TITLE"

/ad/ad_id

Issue a GET request to this endpoint to view an ad’s properties.

Issue a POST request to this endpoint to edit an ad’s name or status. After you upload all required assets for an ad template (via the UI or via an API call to /creative_set/creative_set_id), the ads are automatically created.

/ad/ad_id Target URL

https://o.applovin.com/campaign_management/v1/ad/«ad-ID»

/ad/ad_id Sample Response Body

{
"name":"Banner_AppIconSimple_MyTestCreativeSet0",
"id":10780437,
"creative_set_name":"My Test Creative Set 0",
"creative_set_id":"37057c98a951078bf06b6d7c3561fd1a",
"size":"BANNER",
"status":true,
"template":"App Icon Simple"
}

Table of /ad/ad_id Request/Response Body Fields

NameDescription
creative_set_id*Parent creative set ID
creative_set_name*Parent creative set name
id*Ad ID
nameAd name
size*Ad size: one of BANNER, INTER, LEADER, MREC, NATIVE, or WIDGET
statusWhether the ad is active (true) or not (false)
template*Ad template name

* read-only

/ads/creative_set_id

Issue a GET request to this endpoint to view all ads associated with a creative set.

/ads/creative_set_id Target URL

https://o.applovin.com/campaign_management/v1/ads/«creative-set-ID»

/ads/creative_set_id Sample Response Body

[
{
"name":"Banner_AppIconSimple_MyTestCreativeSet0",
"id":10780437,
"creative_set_name":"My Test Creative Set 0",
"creative_set_id":"37057c98a951078bf06b6d7c3561fd1a",
"size":"BANNER",
"status":true,
"template":"App Icon Simple"
}
]

Table of Ad Object Fields

See the table of request/response fields from /ad/ad_id.

/creative_sets/campaign_id

Issue a GET request to this endpoint to view all creative sets associated with a campaign.

/creative_sets/campaign_id Target URL

https://o.applovin.com/campaign_management/v1/creative_sets/«campaign-ID»

/creative_sets/campaign_id Sample Response Body

[
{
"campaign_id":"f87ece84f46b55cfbf24427ff8746a40",
"name":"My Test Creative Set 0",
"countries":["us","gb"],
"languages":[
"en"
],
"ads":[],
"assets":[],
"product_page": null
}
]

Table of /creative_sets/campaign_id Response Body Fields

See the table of request/response fields from /ad/ad_id.

/campaign_targets/campaign_id

Issue a GET request to this endpoint to view a campaign’s targeting, URLs, bids, and budgets.

Issue a POST request to this endpoint to update those attributes.

/campaign_targets/campaign_id Target URL

https://o.applovin.com/campaign_management/v1/campaign_targets/«campaign-ID»

/campaign_targets/campaign_id Sample Response Body

{
"bid_type": "CPI",
"countries":[
{
"DEFAULT":{
"click_url":"https://app.adjust.com/123abc?campaign={CAMPAIGN_NAME}%20({CAMPAIGN_ID})&adgroup={APP_ID}&creative={AD_NAME}&idfa={IDFA}&country={CC}&gps_adid={IDFA}&campaign_id={CAMPAIGN_ID}&device_type={DEVICE_TYPE}&publisher_id={APP_ID}&tracker_limit=100000&applovin_click_id={DID}&external_tracker_ids=1&android_id_lower_sha1={HADID}",
"impression_url":"https://s2s.adjust.com/impression/123abc?campaign={CAMPAIGN_NAME}%20({CAMPAIGN_ID})&adgroup={APP_ID}&creative={AD_NAME}&idfa={IDFA}&country={CC}&gps_adid={IDFA}&campaign_id={CAMPAIGN_ID}&device_type={DEVICE_TYPE}&publisher_id={APP_ID}&tracker_limit=100000&applovin_click_id={DID}&external_tracker_ids=1&android_id_lower_sha1={HADID}&s2s=1"
}
},
{
"us":{
"bid":2.9,
"budget":300,
"disabled":false
}
},
{
"gb":{
"bid":2.5,
"budget":250,
"disabled":false
}
}
],
"device_types":[
"phone"
],
"os_major_version_min":9
}

Table of /campaign_targets/campaign_id Request/Response Body Fields

NameDescriptionExample
bid_type*Type of bid used in this campaign. Same as what is set on the campaign object.CPI
countriesList of Countries objects. See below.See Table Below
device_typesList of eligible device types. An empty list means all device types are eligible. Options are: "phone", "tablet", "other". Only supported on iOS.["phone", "other"]
os_major_version_minLowest OS version that the campaign is eligible to serve on. 10 means 10.0 and above.9

* read-only

Table of Fields for Countries Objects

A campaign either has a total budget shared by all countries, or each country needs a specific budget. Therefore, the bid, budget, and URL values should either be in the DEFAULT object or in each country-specific object. A POST request to this endpoint will only update countries that are included in the request. Targeted countries that are not included in the request will not be updated. To disable a country, set disabled to true.

NameDescriptionExample
bidThe bid value of that country. On CPI campaigns, this is the CPI in USD. For RET, ROAS_AD_BASED, and ROAS_IAP, this is the percent goal (50=50%). For CPP and CPE, this is the goal event value in USD.2.9
budgetDaily budget (USD)1000
click_urlClick tracking URLhttps://s2s.adjust.com/impression/123abc?campaign={CAMPAIGN_NAME}%20({CAMPAIGN_ID})&gps_adid={IDFA}
country"DEFAULT" or two-letter country code"gb"
disabledThe API only returns active countries. To disable countries, set this value to true on update.false
impression_urlImpression tracking URLhttps://app.adjust.com/123abc?campaign={CAMPAIGN_NAME}%20({CAMPAIGN_ID})&gps_adid={IDFA}

/source_bids/campaign_id

Issue a GET request to this endpoint to view all the override app source bids of a campaign.

Issue a GET request to this endpoint with optional limit and offset query parameters to paginate through the override app source bids of a campaign.

Issue a POST request to this endpoint to update or add more source bid overrides.

/source_bids/campaign_id Target URLs

https://o.applovin.com/campaign_management/v1/source_bids/«campaign-ID»

/source_bids/campaign_id Sample Response Body

[
{
  "app_id": "da605e6f950f1aec838816df845e95e0c8d5cb7a994d71ae0ef2",
  "app_id_external": "f950f1aec838816df845e95e0c8da605e6",
  "bid_override_percentage": "default",
  "bid_value": "1.14",
  "country": "us",
},
{
  "app_id": "ecf49bef2a8026d53f7a3d245e890cc0b59b85c82c16c8d63bf4a5",
  "app_id_external": "50f1aec838816da605e6f9df845e95e0c8",
  "bid_override_percentage": "10",
  "bid_value": "default",
  "country": "ca",
}
]

/source_bids/campaign_id?limit=2&offset=2000 Sample Response Body

[
{
"total row count": 8192,
"offset": 2000,
"limit": 2,
"source_bids": [
{
"app_id": "da605e6f950flaec838816df845e95e0c8d5cb7a994d71ae0ef2",
"app_id_external": "f950flaec838816df845e95e0c8da605e6",
"bid_override_percentage": "default",
"bid_value": "1.14",
"country": "us",
},{
"app_id": "ecf49bef2a8026d53f7a3d245e890cc0b59b85c82c16c8d63bf4a5",
"app_id_external": "50flaec838816da605e6f9df845e95e0c8",
"bid_override_percentatage": "10",
"bid_value": "default",
"country": "ca",
}
]
}
]

Table of /source_bids/campaign_id Request/Response Body Fields

NameDescriptionExample
app_id*The app that should receive an overridden bid"da605e6f950f1aec838816df845e95e0c8d5cb7a994d71ae0ef2"
app_id_externalThe External App ID (read-only)"f950f1aec838816df845e95e0c8da605e6"
bid_override_percentageThe percent over (or under) the bid that the campaign would use otherwise. "100" means twice the bid. "default" uses the campaign default or the bid_value.10
bid_valueThe overridden bid value. "default" uses the campaign default or the bid_override_percentage.1.2345
countryTwo-letter country code"gb"

* You can find this value in the Reporting API Column “external_placement_id, the tracking URL macro {PLACEMENT_ID}, or via the UI tools for CSV bidding.

You can find this value in the Reporting API Column “app_id_external or the tracking URL macro {APP_ID}. This value is ignored on POST requests. It is included on the GET request for backwards compatibility.

At most one of these values can be other than "default". Clear bid overrides by setting both bid_override_percentage and bid_value to "default".

Table of /source_bids/campaign_id?limit=xxxx&offset=yyyy Response Body Fields

NameDescriptionExample
limitNumber of rows to return in this response. Useful for pagination through large responses.5000
offsetNumber of rows in the data set this response should skip. Useful for pagination through large responses.15000
source_bidsList of source bids. See Table of /source_bids/campaign_id Request/Response Body Fields for field definition.
total_row_countNumber of source bid overrides associated with this campaign.8192

/sources/campaign_id

Issue a GET request to this endpoint to view the status of sources where a campaign is serving.

Issue a POST request to this endpoint to update the status of sources across a campaign.

/sources/campaign_id Target URLs

https://o.applovin.com/campaign_management/v1/sources/«campaign-ID»

/sources/campaign_id Sample Response Body

[
{
"app_id": "da605e6f950f1aec838816df845e95e0c8d5cb7a994d71ae0ef2",
"app_id_external": "3a2ccd1298a9eaa1a5de114c323c8b1d",
"status": true
},
{
"app_id": "ecf49bef2a8026d53f7a3d245e890cc0b59b85c82c16c8d63bf4a5",
"app_id_external": "ca3cc7d0636891d98ee2267a34d5301e",
"status": false
}
]

/sources/campaign_id?limit=2&offset=2000 Sample Response Body

{
"offset": 2000,
"limit": 2,
"sources": [
{
"app_id": "da605e6f950f1aec838816df845e95e0c8d5cb7a994d71ae0ef2",
"app_id_external": "3a2ccd1298a9eaa1a5de114c323c8b1d",
"status": true
},
{
"app_id": "ecf49bef2a8026d53f7a3d245e890cc0b59b85c82c16c8d63bf4a5",
"app_id_external": "ca3cc7d0636891d98ee2267a34d5301e",
"status": false
}
]
}

Table of /sources/campaign_id Request/Response Body Fields

NameDescriptionExample
app_id*The reference to the app that can be toggledda605e6f950f1aec838816df845e95e0c8d5cb7a994d71ae0ef2
app_id_externalThe external app ID (read-only)f950f1aec838816df845e95e0c8da605e6
statusWhether the app is active or nottrue

* You can find this value in the Reporting API Column “external_placement_id, the tracking URL macro {PLACEMENT_ID}, or via the UI tools for CSV bidding.

You can find this value in the Reporting API Column “app_id_external or the tracking URL macro {APP_ID}. This value is ignored on POST Requests. It is included on the GET Request for backwards compatibility.

Table of /sources/campaign_id?limit=xxxx&offset=yyyy Response Body Fields

NameDescriptionExample
limitNumber of rows to return in this response. Useful for pagination through large responses.5000
offsetNumber of rows in the data set this response should skip. Useful for pagination through large responses.15000
sourcesList of sources. See Table of /sources/campaign_id Request/Response Body Fields for field definition.
total_row_countNumber of source bid overrides associated with this campaign.8192

Table of Tracking Methods

API NameMMP Name
adjustAdjust
applovinAppLovin
appsflyerAppsFlyer
apsalarSingular
branchBranch
custom_trackCustom
justtrackJustTrack
kochavaKochava
tenjinTenjin

Language Codes

Language CodeLanguage
arArabic
bgBulgarian
bnBengali
bsBosnian
caCatalan
csCzech
daDanish
deGerman
elGreek
enEnglish
esSpanish
etEstonian
euBasque
faFarsi
fiFinnish
frFrench
heHebrew
hiHindi
hrCroatian
huHungarian
idIndonesian
inIndian
isIcelandic
itItalian
heHebrew
hiHindi
iwHebrew
jaJapanese
jvJavanese
kaGeorgian
koKorean
ldIndonesian
ltLithuanian
lvLatvian
mkMacedonian
mrMarathi
msMalay
nbNorwegian
nlDutch
noNorwegian
plPolish
ptPortugese
roRomanian
ruRussian
skSlovak
sqAlbanian
srSerbian
suSundanese
svSwedish
thThai
trTurkish
ugUighur
ukUkrainian
urUrdu
viVietnamese
zhChinese (Simplified and Traditional)
zh_hansChinese (Simplified)
zh_hantChinese (Traditional)

Asset Types

API NameAsset Type NameDescription
HOSTED_HTMLPlayable FileFile of a playable ad
IMG_BANNERBanner Image320×50
IMG_ICONApp IconShould match the icon used in the store
IMG_INTER_LLandscape ImageUsed in static interstitials and as endcards on videos
IMG_INTER_PPortrait ImageUsed in static interstitials and as endcards on videos
IMG_LEADERLeader Image728×90
IMG_MRECMedium Rectangle (MREC) Image300×250
IMG_NATIVENative ImageMain image of a native ad: 1200×628 or 1200×627
TXT_BUTTONButtonButton text
TXT_RATINGApp Rating0.0–5.0, only increments of 0.5 are accepted
TXT_SUBTITLESublineSecondary text used in some ads to describe the app
TXT_TITLEApp nameUsed in banner ads and some video templates
VID_LONG_LLong Landscape VideoLandscape oriented video more than 15 seconds
VID_LONG_PLong Portrait VideoPortrait oriented video more than 15 seconds
VID_SHORT_LShort Landscape VideoLandscape oriented video less than 15 seconds
VID_SHORT_PShort Portrait VideoPortrait oriented video less than 15 seconds

Templates

SizeTemplate NameAssets
BannerStandardIMG_BANNER
InterstitialLandscape — Over 15sIMG_INTER_P, IMG_INTER_L, VID_LONG_L
InterstitialLandscape — Under 15sIMG_INTER_P, IMG_INTER_L, VID_SHORT_L
InterstitialLandscape Playable Endcard — Over 15sHOSTED_HTML, VID_LONG_L
InterstitialLandscape Playable Endcard — Under 15sHOSTED_HTML, VID_SHORT_L
InterstitialPortrait — Over 15sIMG_INTER_P, IMG_INTER_L, VID_LONG_P
InterstitialPortrait — Under 15sIMG_INTER_P, IMG_INTER_L, VID_SHORT_P
InterstitialPortrait Playable Endcard — Over 15sHOSTED_HTML, VID_LONG_P
InterstitialPortrait Playable Endcard — Under 15sHOSTED_HTML, VID_SHORT_P
InterstitialRewarded PlayableHOSTED_HTML
InterstitialStandardIMG_INTER_P, IMG_INTER_L
InterstitialStandard PlayableHOSTED_HTML
LeaderStandardIMG_LEADER
MRECStandardIMG_MREC
PreloadStandardn/a