AppLovin Basic 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 |
|---|---|---|---|---|---|---|---|---|
| Basic Reporting API | API | Aggregated data | ✅ | ✅ | ✅ | ✅ | ✅ |
In addition to user-level revenue data, AppLovin also provides an aggregated metrics API, the Basic Reporting API.
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, add an AppLovin Basic Reporting API plan, and complete the related configuration
- Check whether the AE system receives the data successfully, and build reports
1. Get the Report Key
To connect AppLovin Basic Reporting API data, you need to get the Report Key first. Log in to the AppLovin dashboard and get the Report Key under Account > Key. Keep this key safe
2. Plan configuration
After you get the Report Key, log in to the AE system and configure the new plan in the Third-party Integration module. The image below shows the configuration page of AppLovin Basic Reporting API. Follow this section to create the plan:
2.1 Authorization information configuration
Click the Configure authorization information button under Authorization Information, and enter the information you obtained during authorization in the pop-up
API Key is the Report Key you just obtained
2.2 Sync Schedule
In the Sync Schedule module, you can set the policy for the AE system to pull AppLovin Basic Reporting API data on a schedule. You can choose to pull data for a period of time at a specific time every day or every hour.
2.3 Event Data Configuration
After you turn on the Event Data Configuration switch, all pulled data is written to the event table. We recommend that you enable event data ingestion.
2.4 Configuration
In the Configuration module, you can control the detailed settings of data pulling, including the time aggregation granularity of the data, the metric fields and dimensions to pull, and the event name after ingestion.
The content of the configuration is a JSON, which you can customize as follows:
| Module | Name | Description |
|---|---|---|
| sink_event | event_name | Event name after ingestion; customizable |
| source | report_types | Level of data to pull; list type. We recommend that you enter only one element, that is, pull data of only one level at a time Valid values: advertiser, publisher |
| metrics | Metrics in the data; list type. Different levels support different metrics, so fill this in carefully | |
| group_by | Grouping dimensions in the data; list type. Different levels support different group_by values, so fill this in carefully |
Basic Reporting API provides two distinctly different reports: the advertiser report (advertiser) and the publisher report (publisher). The following sections describe how to configure each of them:
2.4.1 Advertiser report (advertiser)
The advertiser report template is as follows:
{
"sink_event":
{
"event_name": "applovin_advertiser"
},
"source":
{
"group_by":
[
"day",
"campaign",
"campaign_id_external",
"creative_set",
"creative_set_id",
"ad_id",
"ad",
"ad_type",
"campaign_ad_type",
"campaign_package_name",
"campaign_store_id",
"campaign_type",
"country",
"device_type",
"external_placement_id",
"platform",
"size",
"traffic_source"
],
"report_types":
[
"advertiser"
],
"metrics":
[
"impressions",
"clicks",
"ctr",
"conversions",
"conversion_rate",
"average_cpa",
"average_cpc",
"cost",
"sales"
]
}
}
- The time granularity used in the template is day (the advertiser report does not support hourly aggregation). The system uses the day field in the data, that is, the date of the data, as the time of the data
- The event name used in the template is -- applovin_advertiser
- All other fields are stored
- Optional dimensions
The following are the optional dimensions of the advertiser report. You can adjust them as needed. Write the field names of the fields you need to source.group_by
| Field name | Default | Description |
|---|---|---|
| day | Yes | Date of the report |
| campaign | Yes | Campaign name |
| campaign_id_external | Yes | Unique identifier of the campaign |
| creative_set | Yes | Ad group name |
| creative_set_id | Yes | Ad group ID |
| ad_id | Yes | Ad ID |
| ad | Yes | Ad name |
| ad_type | Yes | Ad type, such as GRAPHIC, VIDEO, REWARD, or PLAY |
| application | Name of the publisher app | |
| campaign_ad_type | Yes | ua for a User Acquisition Campaign; rt for a Retargeting Campaign |
| campaign_package_name | Yes | Package name of the promoted app: package name on Android, Bundle ID on iOS |
| campaign_store_id | Yes | App store ID of the promoted app: package name on Android, numeric part of the iTunes ID on iOS |
| campaign_type | Yes | Optimization goal of the campaign (PP, CPE, IAP ROAS, ad ROAS, or ROAS) |
| custom_page_id | iOS custom product page or Android store listing associated with the ad group | |
| country | Yes | Two-letter Country Code |
| device_type | Yes | Device type, such as phone, tablet, or other |
| external_placement_id | Yes | Encoded app ID |
| optimization_day_target | Target optimization day of the campaign (for example, day 0 or day 7) | |
| platform | Yes | Device platform, such as android, ios, fireos, tvos |
| size | Yes | Ad size, such as INTER, BANNER, MREC, LEADER, or NATIVE |
| target_event | Billing event of the campaign (valid only for CPE Campaigns) | |
| traffic_source | Yes | Traffic source: AppLovin or the name of another exchange |
- Optional metrics
The following are the optional metrics of the advertiser report. You can adjust them as needed. Write the field names of the fields you need to source.metrics
| Field name | Default | Description |
|---|---|---|
| average_cpa | Yes | Average CPA (install) |
| average_cpc | Yes | Average CPC |
| clicks | Yes | Clicks |
| conversions | Yes | Conversions (that is, installs) |
| conversion_rate | Yes | Conversion rate (installs / clicks) |
| cost | Yes | Ad cost |
| ctr | Yes | Click-through rate |
| campaign_bid_goal | Bid goal of the campaign | |
| campaign_roas_goal | ROAS goal of the campaign | |
| first_purchase | Number of users with a first in-app purchase (requires the Revenue callback) | |
| impressions | Yes | Impressions |
| sales | Yes | Number of in-app purchases (requires the Revenue callback) |
2.4.2 Publisher report (publisher)
The publisher report template is as follows:
{
"sink_event":
{
"event_name": "applovin_publisher"
},
"source":
{
"group_by":
[
"day",
"hour",
"country",
"ad_type",
"size",
"device_type",
"platform",
"application",
"package_name",
"store_id",
"placement",
"application_is_hidden",
"zone",
"zone_id",
"bidding_integration"
],
"report_types":
[
"publisher"
],
"metrics":
[
"impressions",
"clicks",
"ctr",
"revenue",
"ecpm"
]
}
}
- The time granularity used in the template is hour, that is, the day + hour fields in the data are used as the time of the data
- The event name used in the template is -- applovin_publisher
- All other fields are stored
- Optional dimensions
The following are the optional dimensions of the publisher report. You can adjust them as needed. Write the field names of the fields you need to source.group_by
| Field name | Default | Description |
|---|---|---|
| day | Yes | Date of the report |
| hour | Yes | Hour value of the report (only data from the last 30 days can be pulled). When this field is not used, only day is used as the data time |
| country | Yes | Two-letter Country Code |
| ad_type | Yes | Ad type, such as GRAPHIC, PLAY, VIDEO, REWARD, or MRAID |
| size | Yes | Ad size, such as INTER, BANNER, MREC, LEADER, or NATIVE |
| device_type | Yes | Device type, such as phone, tablet, or other |
| platform | Yes | Device platform, such as android, ios, fireos, tvos |
| application | Yes | App name |
| package_name | Yes | Package name of the app: package name on Android, Bundle ID on iOS |
| store_id | Yes | App store ID of the app: package name on Android; numeric part of the iTunes ID on iOS, or the Bundle ID if it cannot be obtained |
| placement | Yes | Placement name |
| application_is_hidden | Yes | Whether the app is hidden in the AppLovin dashboard |
| zone | Yes | Zone name (only if Zones is enabled for your account) |
| zone_id | Yes | Zone ID (only if Zones is enabled for your account) |
| bidding_integration | Yes | Bidding integration method (such as MAX or Admob Open Bidding) |
- Optional metrics
The following are the fields returned by the publisher report. You can choose the fields to return as needed
| Field name | Default | Description |
|---|---|---|
| impressions | Yes | Impressions |
| clicks | Yes | Clicks |
| ctr | Yes | Click-through rate |
| revenue | Yes | Total monetization revenue |
| ecpm | Yes | ECPM |
2.5 Standardized fields
The following are the standardized fields of AppLovin Basic Reporting API:
- Advertiser report
| Original field | Standardized field | Description |
|---|---|---|
| traffic_source | te_ads_object.media_source | Monetization channel |
| campaign | te_ads_object.campaign_name | Campaign name |
| campaign_id_external | te_ads_object.campaign_id | Campaign ID |
| creative_set | te_ads_object.ad_group_name | Ad group name |
| creative_set_id | te_ads_object.ad_group_id | Ad group ID |
| ad | te_ads_object.ad_name | Ad name |
| ad_id | te_ads_object.ad_id | Ad ID |
| campaign_package_name | te_ads_object.app_name | App name |
| campaign_store_id | te_ads_object.app_id | App ID |
| country | te_ads_object.country | Country or region code |
| platform | te_ads_object.platform | Platform, such as Android or iOS |
| Fixed value USD | te_ads_object.currency | Currency of the ad spend |
| impressions | te_ads_object.impressions | Impressions |
| clicks | te_ads_object.clicks | Clicks |
| conversions | te_ads_object.installs | Conversions (installs) |
| cost | te_ads_object.cost | User acquisition cost |
- Publisher report
| Original field | Standardized field | Description |
|---|---|---|
| country | te_ads_object.country | Country or region code |
| platform | te_ads_object.platform | Platform, such as Android or iOS |
| application | te_ads_object.app_name | App name |
| package_name | te_ads_object.app_id | App ID |
| placement | te_ads_object.placement | Ad placement |
| Fixed value USD | te_ads_object.currency | Currency of the monetization revenue |
| impressions | te_ads_object.impressions | Impressions |
| clicks | te_ads_object.clicks | Clicks |
| revenue | te_ads_object.revenue | Monetization revenue |

