Pivot Report Service provides an API to get aggregated data from different sources: KPI Service metrics, KPI Service cohorts, SKAdNetwork, and Ad Spend.
The reports endpoint enables you to combine data from many services in a single report. Request installs, revenue, ad spend, and SKAdNetwork data divided by day, app, and ad network.
Fetch pivot report
GET https://automate.adjust.com/reports-service/pivot_report
The GET
method returns filtered data from the report service in JSON format.
Filters
Filter | Type | Description | Example |
---|---|---|---|
dimensions * | String | Comma-separated values used to group parameters. See the dimensions table below for more information. | dimensions=app,os_name,week,campaign_id_network |
metrics * | String | Comma-separated KPIs. See the metrics table below for more information. | metrics=cost,installs,ecpi_network |
date_period * | String | Start and end dates for the report with 3 supported formats:
|
|
cohort_maturity | String |
| cohort_maturity=immature |
utc_offset | String | The timezone used in the report. | utc_offset=+01:00 |
attribution_type | String | The type of engagement the attribution awards.
| attribution_type=click |
attribution_source | String | Whether in-app activity is assigned to the user’s install source (first ) or divided among the install source and subsequent sources of reattribution (dynamic ). Defaults to dynamic . | attribution_source=first |
reattributed | String | Filter for reattributed users only. Reattribution is when a user who has already installed your app returns to it through a new Adjust-measured source.
| reattributed=false |
iap_revenue_mode | String | The percentage of gross ad revenue returned by the endpoint. Available options are:
| iap_revenue_mode=GROSS_70 |
ad_revenue_sources | String | Comma-separated list of ad revenue sources. | ad_revenue_sources=unknown |
os_names | String | Comma-separated list of operating system names. | os_names=ios,android |
ad_spend_mode | String | Determines the ad spend source applied in calculations. See How ad spend source affects your data for more information.
| ad_spend_mode=network |
sandbox | Boolean | Whether to use sandbox data or production data. Defaults to false . | sandbox=true |
sort | String | Comma-separated list of metrics/dimensions to sort the report by. Use - to order descending. | sort=-clicks,installs |
drilldown | String | List of parameters to drill down into. Formatted as pipe-separated tuples. | drilldown=campaign:123|adgroup:234 |
focus | String | List of parameters to focus on. Formatted as pipe-separated tuples. Differs from drilldown as it doesn’t add extra dimensions to the results. | focus=campaign:123|adgroup:234 |
index | String | Comma-separated list of dimensions used to index the report. | index=network,campaign,adgroup |
format_dates | Boolean | If set to false , all date dimensions are returned in ISO format. | format_dates=false |
period_over_period | String | The period for comparing report data. | period_over_period=previous_week |
currency | String | Currency used for conversion of money related metrics. | currency=USD |
[dimension]__in | String | Comma-separated list of values to filter dimension’s values (exact match) for any dimension. | campaign__in=abc,def |
[dimension]__not_in | String | Comma-separated list of values to filter dimension’s values (exclude exact match) for any dimension | campaign__not_in=abc,def |
[dimension]__contains | String | Substring search in dimension’s values (case insensitive) for any dimension. | campaign__contains=ios |
[dimension]__exclude | String | Excluding substring search in dimension’s values (case insensitive) for any dimension. | campaign__exclude=ios |
[dimension]__starts_with | String | Substring search matching dimensions starting with specified prefix (case insensitive). | campaign__starts_with=ios |
[dimension]__not_starts_with | String | Substring search matching dimensions not starting with specified prefix (case insensitive). | campaign__not_starts_with=ios |
[dimension]__ends_with | String | Substring search matching dimensions ending with specified suffix (case insensitive). | campaign__ends_with=ios |
[dimension]__not_ends_with | String | Substring search matching dimensions not ending with specified suffix (case insensitive). | campaign__not_ends_with=ios |
[metric]__lt | String | ”Less than” filter for metric’s values any metric. | skad_installs__lt=100 |
[metric]__lte | String | ”Less than or equal” filter for metric’s values for any metric. | skad_installs__lte=100 |
[metric]__gt | String | ”Greater than” filter for metric’s values for any metric. | skad_installs__gt=100 |
[metric]__gte | String | ”Greater than or equal” filter for metric’s values for any metric. | skad_installs__gte=100 |
[metric]__eq | String | ”Equal” filter for metric’s values for any metric. | skad_installs__eq=100 |
[metric]__ne | String | ”Not equal” filter for values relating to any metric. | skad_installs__ne=100 |
Dimensions
Dimensions allow a user to break down metrics into groups using one or several parameters. For example, the number of installs by date, country and network.
Dimension | Data type | Description | Example |
---|---|---|---|
hour | Date | Use format_dates=false to return the value in ISO format.YYYY-MM-DDTHH:MM:SS | 2021-05-11T17:00:45 |
day | Date | Use format_dates=false to return the value in ISO format.YYYY-MM-DD | 2021-05-11 |
week | Date | Use format_dates=false to return the value in ISO format.YYYY-MM-DD - YYYY-MM-DD | 2021-05-09 - 2021-05-15 |
month | Date | Use format_dates=false to return the value in ISO format.YYYY-MM | 2021-05 |
year | Date | Use format_dates=false to return the value in ISO format.YYYY | 2021 |
quarter | String | Use format_dates=false to return the value in ISO format.Q<quarter_number> YYYY | Q2 2021 |
os_name | String | Possible values:
| |
device_type | String | Possible values:
| |
app | String | Name of the app. | |
app_token | String | App ID in the Adjust system. | |
store_id | String | Store App ID. | com.random.app |
store_type | String | Store from where the app was installed. | google_play |
currency | String | Currency name. | Euro |
currency_code | String | 3-character value ISO 4217. | EUR |
network | String | The name of the advertising network. | Organic, AppLovin, Facebook Installs, Instagram Installs. |
campaign | String | Link sub-level 1. String value usually contains campaign name and id. | |
campaign_network | String | Campaign name from the network. | |
campaign_id_network | String | Campaign ID from the network. | |
adgroup | String | Link sub-level 2. String value usually contains adgroup name and id. | |
adgroup_network | String | Adgroup name from the network. | |
adgroup_id_network | String | Adgroup ID from the network. | |
source_network | String | Name of the source network. Optional value dependent on the network. | |
source_id_network | String | ID of the source network. | |
creative | String | Link sub-level 3. String value usually contains creative name and id. | |
creative_network | String | Creative name from the network. | |
creative_id_network | String | Creative ID from the network. | |
country | String | Country name. | United States of America |
country_code | String | 2-character value ISO 3166. | US |
region | String | Business region. | APAC |
partner_name | String | Partner’s name in the Adjust system. | AppLovin |
partner_id | String | Partner’s id in the Adjust system. | 34 |
partner | String | The unique slug of the partner. | applovin |
channel | String | A combination of partner_name and network . | |
platform | String | The device operating system/platform. See list of supported platforms below. | android |
Platforms
android
android-tv
bada
blackberry
facebook
fire-tv
ios
linux
macos
server
symbian
webos
windows
windows-phone
Metrics
Metrics are used to assess and compare the performance of campaigns you run and measure with Adjust.
At least 1 metric is required in each API request. The most common metrics are:
installs
clicks
impressions
A full list of metrics is available in the Datascape metrics glossary. You can also use the Filters Data endpoint to search for metrics.
Response format
{ "rows": [ { "attr_dependency": {}, "app": "App Name", "partner_name": "AppLovin", "campaign": "Campaign Name (Campaign ID)", "campaign_id_network": "Campaign ID", "campaign_network": "Campaign Name", "installs": "64", "cost": "1000" } ], "totals": { "installs": 64, "cost": 1000 }, "warnings": [], "totals_per_dimension": {}}
Response codes
This endpoint returns the following responses:
Response | Description | Notes |
---|---|---|
200 | Success | Returns report information |
204 | No content | Returned if the response object is empty |
400 | Bad request | Returned if your request is malformed or contains unsupported parameters |
401 | Unauthorized | Returned if your credentials are incorrect or absent |
403 | Forbidden | Returned if you try to access information you don’t have permission to view |
429 | Too many requests | Returned if you exceed 50 simultaneous requests |
503 | Service unavailable | Returned if the server can’t be reached |
504 | Gateway timeout | Returned if the query takes too long to return a response |
Example
$ curl \--header 'Authorization: Bearer <adjust_api_token>' \-L -X GET 'https://automate.adjust.com/reports-service/pivot_report?ad_spend_mode=network&app_token__in={app_token1},{app_token2}&date_period=2021-05-01:2021-05-02&dimensions=app,partner_name,campaign,campaign_id_network,campaign_network&metrics=installs,network_installs,network_cost,network_ecpi&index=app' \
{ "rows": [ { "Test App": { "rows": [ { "attr_dependency": { "app_network": ["google_play:com.test.app"] }, "campaign_id_network": "123", "campaign_network": "Campaign Name", "campaign": "Campaign Name (123)", "partner_name": "MyPartner", "installs": 10, "network_installs": 0, "network_cost": 0, "network_ecpi": 0 } ] } } ], "totals": { "installs": 10, "network_installs": 0, "network_cost": 0, "network_ecpi": 0 }, "totals_per_dimension": { "campaign_id_network": { "Organic": { "installs": 10, "network_installs": 0, "network_cost": 0, "network_ecpi": 0 } }, "campaign_network": { "Organic": { "installs": 10, "network_installs": 0, "network_cost": 0, "network_ecpi": 0 } }, "app": { "adjust Demo App": { "installs": 10, "network_installs": 0, "network_cost": 0, "network_ecpi": 0 } }, "campaign": { "Organic": { "installs": 10, "network_installs": 0, "network_cost": 0, "network_ecpi": 0 } }, "partner_name": { "Organic": { "installs": 10, "network_installs": 0, "network_cost": 0, "network_ecpi": 0 } } }}