AppLovin Asset Reporting API
Note that data generated by third-party data integration counts toward the cluster's data consumption
Summary
Interface overview
| Interface | Type | Granularity | Attribution | Cost | Revenue | Impressions | Clicks | Conversions |
|---|---|---|---|---|---|---|---|---|
| Asset Reporting API | API | Aggregated asset data | ✅ | ✅ | ✅ |
AppLovin Asset Reporting API gets asset-level aggregated campaign data, including assets, campaigns, ad groups, impressions, clicks, and cost.
The current integration uses AppLovin's date-based Asset Reporting API:
GET https://r.applovin.com/assetAnalyticsReport
According to AppLovin, the previous day's data becomes stable after 06:00 UTC. The API only allows requests for data from the last 45 days.
Integration process
- Log in to the AppLovin dashboard and get the Report Key.
- Log in to the AE backend, go to the Third-party Integration module, and create and configure an AppLovin Asset Reporting API plan.
- Run a single pull or wait for the scheduled task, and confirm that the event table receives the data.
- Build analysis reports based on fields such as asset, campaign, ad group, cost, impressions, and clicks.
1. Get the Report Key
Before connecting the Asset Reporting API, you need to get the Report Key. Log in to the AppLovin dashboard, get the key under Account > Keys, and keep it safe.
2. Plan configuration
2.1 Authorization information configuration
Click the Configure authorization information button under Authorization Information and enter the AppLovin Report Key in the pop-up.
2.2 Sync Schedule
You can set the data pull policy in the Sync Schedule module. We recommend that you pull the past 1 day of data at 16:00 UTC+8 every day. By then, AppLovin's previous-day data has passed the 06:00 UTC stabilization time.
2.3 Event Data Configuration
Asset Reporting API data is used for event table analysis. Turn on Event Data Configuration when you create the plan. The pulled data is written to the configured event name.
2.4 Configuration
The configuration is a JSON object in which you can set the ingested event name, requested columns, numeric field types, and API filter parameters.
| Module | Name | Type | Description |
|---|---|---|---|
sink_event | event_name | String | Event name after ingestion; customizable |
source | group_by | String list | Requested asset-level and ad-level dimensions |
source | metrics | String list | Requested numeric metrics |
transfer | double_columns | String list | Metric fields written as numeric types |
| Top-level parameter | limit | String | Maximum number of rows returned per date request |
| Top-level parameter | offset | String | Offset at which each date request starts reading data |
| Top-level parameter | not_zero | Integer | When set to 1, excludes results in which all numeric metrics are 0 |
| Top-level parameter | allPurpose | JSON string | Dimension filters, exclusion filters, and numeric threshold filters |
Default template
{
"sink_event": {
"event_name": "applovin_asset_report"
},
"sink_user": [],
"source": {
"group_by": [
"asset_id",
"asset_name",
"asset_url",
"campaign",
"campaign_id",
"campaign_package_name",
"creative_set",
"creative_set_id"
],
"metrics": [
"clicks",
"cost",
"ctr",
"impressions"
]
},
"transfer": {
"double_columns": [
"clicks",
"cost",
"ctr",
"impressions"
]
}
}
Template notes:
source.group_byandsource.metricsare merged into thecolumnsparameter of the AppLovin request.clicks,cost,ctr, andimpressionsshould also be configured intransfer.double_columnsso that they are written as numeric types.- The template event name is
applovin_asset_report. You can change it as needed. - The system always requests
format=jsonand always usessort_impressions=DESCto sort by impressions in descending order.
Complete example with filter and pagination parameters
The following example filters for two specified asset names, keeps only data where cost > 10 and impressions > 2000, excludes results in which all numeric metrics are 0, and reads up to 100 rows for each date starting from row 1.
{
"limit": "100",
"offset": "0",
"not_zero": 1,
"allPurpose": "{\"asset_name\":\"AssetA.mp4,AssetB.html\",\"greater_than_cost\":10,\"greater_than_impressions\":2000}",
"sink_event": {
"event_name": "applovin_asset_report"
},
"sink_user": [],
"source": {
"group_by": [
"asset_id",
"asset_name",
"asset_url",
"campaign",
"campaign_id",
"campaign_package_name",
"creative_set",
"creative_set_id"
],
"metrics": [
"clicks",
"cost",
"ctr",
"impressions"
]
},
"transfer": {
"double_columns": [
"clicks",
"cost",
"ctr",
"impressions"
]
}
}
2.5 Optional dimensions and metrics
Optional dimensions
Write the dimensions you need to source.group_by.
| Field name | Default | Description |
|---|---|---|
asset_id | Yes | Asset ID |
asset_name | Yes | Asset name |
asset_url | Yes | URL of the original asset before processing |
campaign | Yes | Campaign name |
campaign_id | Yes | Unique identifier of the campaign, corresponding to campaign_id_external in the Basic Reporting API |
campaign_package_name | Yes | Package name of the app promoted by the campaign |
creative_set | Yes | Creative Set name, that is, the ad group name |
creative_set_id | Yes | Creative Set ID, which stays the same when the name changes |
Optional metrics
Write the metrics you need to source.metrics, and also write numeric fields to transfer.double_columns.
| Field name | Default | Description |
|---|---|---|
clicks | Yes | Number of clicks |
cost | Yes | Advertiser spend |
ctr | Yes | Clicks divided by impressions |
impressions | Yes | Number of impressions |
3. Standardized fields
The following fields are written to the corresponding platform standard fields in te_ads_object:
| Original field | Standardized field | Type | Description |
|---|---|---|---|
campaign | te_ads_object.campaign_name | string | Campaign name |
campaign_id | te_ads_object.campaign_id | string | Campaign ID |
campaign_package_name | te_ads_object.app_name | string | Package name of the promoted app |
creative_set | te_ads_object.ad_group_name | string | Ad group name |
creative_set_id | te_ads_object.ad_group_id | string | Ad group ID |
cost | te_ads_object.cost | double | Ad cost |
clicks | te_ads_object.clicks | double | Clicks |
impressions | te_ads_object.impressions | double | Impressions |

