Revenue

The /reports/revenue resource provides access to revenue for all apps broken down by source (app sales, ads, iaps, returns, and educational).

Scope: All of the resources in this route require read access in the private scope (private:read).

Getting revenue totals

Request

GET /reports/revenue?start_date={start_date}&end_date={end_date}&products={products}&countries={countries}

Arguments

Argument Type Description
start_date Date (yyyy-MM-dd) Date, inclusive, to start reporting from. If you specify a granularity other than daily this will be rounded down to the nearest period. default: a long, long time ago.
end_date Date (yyyy-MM-dd) Date, inclusive, to stop reporting. If you specify a granularity other than daily this will be rounded up to the nearest period. default: distant future.
group_by List One or more pivots separated by a comma (,). Available pivots: product, country, date, and store.
products List (productId | productId1, productId2, …) specific products to include in the response, default: all active products in account
countries List (isoCode | isoCode1;isoCode2;isoCodeN) Countries to limit the report to (can be taken from /data/countries, default: include all countries)
format String> Output format: JSON or CSV. Defaults to JSON.

Note: To prevent excessive repetition, when format is set to csv sub-objects (like the product in /revenue/products/…) will not be fully serialized but only their reference will be.

Response

Field Description
sales The amount of revenue generated from app downloads, after the store’s fee.
iaps The amount of revenue generated from in-app purchases, after the store’s fee.
ads The amount of revenue generated from ad publishing, after the store’s fee.
edu The amount of revenue generated from (discounted) educational downloads, after the store’s fee.
returns The amount of money returned to users, after the store’s fee.
total The total revenue for the period, after the store’s fee, where total = sales + iaps + ads + edu – returns.
gross_sales The amount of revenue generated from app downloads, before the store’s fee.
gross_iaps The amount of revenue generated from in-app purchases, before the store’s fee.
gross_edu The amount of revenue generated from (discounted) educational downloads, before the store’s fee.
gross_returns The amount of money returned to users, not including the store’s fee.
gross_total The total revenue for the period, before the store’s fee, where total = sales + iaps + ads + edu – returns.

Example Response

// /reports/revenue?start_date=-30

{
  "returns": "170.71",
  "edu": "5481.19",
  "ads": "25980.75",
  "sales": "12506.15",
  "iap": "6711.91",
  "total": "50509.29",
  "gross_sales": "798.11",
  "gross_iap": "2947.29",
  "gross_edu": "0.00",
  "gross_returns": "25.10",
  "gross_total": "4262.28"
}

Getting revenue details

Request

GET /reports/revenue/?group_by={group_by}&start_date={start_date}&end_date={end_date}&products={products}&countries={countries}&format={format}

Arguments

Argument Type Description
start_date Date (yyyy-MM-dd) Date, inclusive, to start reporting from. If you specify a granularity other than daily this will be rounded down to the nearest period. default: a long, long time ago.
end_date Date (yyyy-MM-dd) Date, inclusive, to stop reporting. If you specify a granularity other than daily this will be rounded up to the nearest period. default: distant future.
group_by List One or more pivots separated by a comma (,). Available pivots: product, country, date, and store.
products List (productId | productId1, productId2, …) specific products to include in the response, default: all active products in account
countries List (isoCode | isoCode1;isoCode2;isoCodeN) Countries to limit the report to (can be taken from /data/countries, default: include all countries)
format String> Output format: JSON or CSV. Defaults to JSON.

Note: To prevent excessive repetition, when format is set to csv sub-objects (like the product in /revenue/products/…) will not be fully serialized but only their reference will be.

Response

Just like other routes in the /reports family, the response can be grouped by a variety of values either one at a time or combined to produce a nested response. While the breakdown may change, the leaves of the response follow the same format as the totals object from the previous example.

Example Response grouped by day

// GET /reports/revenue/?group_by=dates&start_date=-30

{
  "2017-06-12": {
    "returns": "19.20",
    "edu": "0.00",
    "ads": "1023.01",
    "sales": "511.10",
    "iap": "2047.11",
    "total": "3562.02",
    "gross_sales": "798.11",
    "gross_iap": "2947.29",
    "gross_edu": "0.00",
    "gross_returns": "25.10",
    "gross_total": "4262.28"
    "date": "2015-11-22"
  },
  ...
}

Example Response grouped by country

// GET /reports/revenue/?group_by=country&start_date=-30

{
  "US": {
    "returns": "19.20",
    "edu": "0.00",
    "ads": "1023.01",
    "sales": "511.10",
    "iap": "2047.11",
    "total": "3562.02",
    "gross_sales": "798.11",
    "gross_iap": "2947.29",
    "gross_edu": "0.00",
    "gross_returns": "25.10",
    "gross_total": "4262.28"
    "date": "2017-06-12"
  },
  ...
}

Example Response grouped by products and country

// GET /reports/revenue/?group_by=product,date&start_date=-30

{
  "2017-06-12": {
    "5561990": {
      "returns": "19.20",
      "edu": "0.00",
      "ads": "1023.01",
      "sales": "511.10",
      "iap": "2047.11",
      "total": "3562.02",
      "gross_sales": "798.11",
      "gross_iap": "2947.29",
      "gross_edu": "0.00",
      "gross_returns": "25.10",
      "gross_total": "4262.28"
      "date": "2017-06-12",
      "product_id": 5561990
    },
    ...
  },
  ...
}