Get the average conversion rates per category for a selected country, channel and date range.
The Conversion Rate Benchmarks endpoint returns the list of categories and their conversion rates in a given country, type of app, channel and date range. For each benchmark, we ensure there is a significant number of apps for the numbers to be statistically relevant. If we don’t have sufficient data, a "null" response is returned.
iOS
On iOS the following conversion rate benchmarks are available:
- impressions_to_page_views = “Total page views” / “Total Impressions”
- page_views_to_installs = “Total installs” / “Total Page Views”
- impressions_to_installs = “Total installs” / “Total Impressions”
"Total installs" corresponds to "First-time downloads" on App Store Connect.
"Total Page Views” corresponds to "Page Views (Unique Devices)" on App Store Connect.
"Total Impressions” corresponds to "Total Impressions (Unique Devices)" on App Store Connect.
To calculate the conversion benchmarks we take the aggregated data from apps that have connected their App Store Connect with AppTweak. We're computing the conversion benchmarks ourselves with the same formula as on the App Store Connect console. The conversion rate might be different from your console as it's considering Total Downloads, Impressions (not unique) and Page views (not unique).
CVR > 100%Sometimes the conversion rate “page_views_to_installs” is above 100%. In this case, the number of first-time installs exceeds the number of product page views. This would indicate that people often download these apps directly from Search or Browse results, without visiting the app page first. Unfortunately, this is a direct consequence from the fact that we do not fetch the conversion rates directly in the console but compute them ourselves. We have no way of distinguishing the installs that come from a page view from those that come directly from an impression.
Not all conversion rates are available for every source. The following ones are available in iOS:
| Source | Impressions to Page Views | Page Views to Installs | Impressions to Installs |
|---|---|---|---|
| All Sources combined (default) | ✅ | ✅ | ✅ |
| App Store Search | ✅ | ✅ | ✅ |
| App Store Browse | ✅ | ✅ | ✅ |
| App Referrer | ❌ | ✅ | ❌ |
| Web Referrer | ❌ | ✅ | ❌ |
App Referrers and Web Referrers directly link to the App Page of an app, which triggers a Page View. Traffic from these sources do not trigger any app impressions which explains why there is no data for the conversion rates from impressions to page views and impressions to installs.
Input parameters
The different sources can be accessed using the query parameter channel in the Conversion Rate Benchmarks endpoint. In the table beneath you can find the equivalence between the channel name and App Store Connect source name.
| channel | App Store Connect equivalent |
|---|---|
search | App Store Search |
browse | App Store Browse |
appref | App Referrer |
webref | Web Referrer |
all | All channels together |
Another element defining the CVR benchmarks is the type of app (free or paid). It needs to be specified with the query parameter type.
Response format
The response contains the following fields:
- category: the iOS category code
- category_name: the name corresponding to the category
- impressions_to_page_views: The average conversion rate of an app in this category from Impressions to Page Views. Also known as Click-through rate (CTR)
- page_views_to_installs: The average conversion rate of an app in this category from Page Views to Install Units. Also known as Conversion rate (CVR).
- impressions_to_installs: The average conversion rate of an app in this category from Impressions to Install Units. Also known as Impressions rate (IR).
- number_of_apps: The average number of apps for which we had data in the date range requested for this category.
You can find a response example here below.
{
"result": {
"category_benchmarks": [
{
"category": "6018",
"category_name": "Books",
"impressions_to_page_views": 5.1, // CTR expressed in %
"page_views_to_installs": 26.9, // CVR expressed in %
"impressions_to_installs": 1.37, // IR expressed in %
"number_of_apps": 18.47
},
...
},
"metadata": {
"request": {
"path": "/api/public/store/categories/benchmarks",
"params": {
"device": "iphone",
"country": "us",
"start_date": "2021-12-15",
"end_date": "2021-12-31",
"channel": "search",
"type": "free"
},
"cost": 1001,
"max_credit_cost": 1001,
"status": 200
},
"response": null
}
}Android
On Android the following conversion rate benchmarks is available:
- page_views_to_installs = "All Store Listing Acquisition" / "All Store Listing Visitors"
"All Store Listing Acquisition" corresponds to Store Listing Acquistion > All users
"All Store Listing Visitors" corresponds to Store Listing Visitors > All users
We compute the conversion rate benchmarks ourself and they follow the same formula as the one on Google Play Console.
Input parameters
The different sources can be accessed using the query parameter channel in the Conversion Rate Benchmarks endpoint. In the table beneath you can find the equivalence between the channel name and Google Play Console source name.
| channel | Google Play Console equivalent |
|---|---|
search | Google Play search |
explore | Google Play explore |
referrals | Third-party referrals |
all | All channels together |
Another element defining the CVR benchmarks is the type of app (free or paid). It needs to be specified with the query parameter type.
Response format
The response contains the following fields:
- category: the Android category code
- category_name: the name corresponding to the category
- page_views_to_installs: The average conversion rate of an app in this category from Page Views to Install Units. Also known as Conversion rate (CVR).
- number_of_apps: The average number of apps for which we had data in the date range requested for this category.
You can find a response example here below.
{
"result": {
"category_benchmarks": [
{
"category": "BUSINESS",
"category_name": "Business",
"page_views_to_installs": 34.13, // CVR in %
"number_of_apps": 91.14
},
...
"metadata": {
"request": {
"path": "/api/public/store/categories/benchmarks",
"params": {
"device": "android",
"country": "fr",
"start_date": "2022-11-01",
"end_date": "2022-11-07",
"channel": "all",
"type": "free"
},
"cost": 1001,
"max_credit_cost": 1001,
"status": 200
},
"response": null
}
}FAQs
How do I benchmark my app's conversion rate against its category via API?
You can compare your app's own conversion metrics against category norms by pulling AppTweak's Conversion Rate Benchmarks endpoint (GET /categories/benchmarks) for the same country, device, and date range you use internally, then placing your app's page_views_to_installs or impressions_to_installs alongside the category average returned for that segment. The endpoint itself only returns category-level averages, not your app's own numbers — you supply your app's conversion rate separately (from App Store Connect, Google Play Console, or your own tracking) and compare it against the category figure the API returns.
Can I get conversion rate data for a specific app through this API?
No — the Conversion Rate Benchmarks endpoint only returns category-level averages, never a specific app's own conversion rate. Fields like impressions_to_page_views, page_views_to_installs, impressions_to_installs, and number_of_apps are all averaged across the apps AppTweak has data for in a given category, country, device, and channel. To get a specific app's own conversion rate, use Apple's App Store Connect API or Google's Play Console reporting directly — AppTweak's endpoint is built for category benchmarking, not per-app conversion tracking.
How do I compare app store conversion rates across countries or channels?
You can pull separate calls to AppTweak's Conversion Rate Benchmarks endpoint for each country or channel you want to compare, since country accepts one two-letter code per request and channel filters to a single traffic source at a time. For example, query country=us with channel=search, then country=fr with the same channel, and compare the returned page_views_to_installs values side by side. The device parameter (iphone or android) and type parameter (free or paid) also need to match across calls for the comparison to be meaningful.
What parameters does the conversion rate benchmarks endpoint accept?
The AppTweak Conversion Rate Benchmarks endpoint (GET /categories/benchmarks) accepts six query parameters: country (a single two-letter country code, default us), channel (traffic source — all, search, browse, appref, or webref on iOS; all, search, explore, or referrals on Android — default all), type (free or paid, default free), device (iphone or android, default iphone), start_date, and end_date (both YYYY-MM-DD, defaulting to the 30 days ending yesterday). All parameters are optional and fall back to these defaults if omitted.
Why do some app store categories return null conversion rate values?
A category returns null for impressions_to_page_views, page_views_to_installs, impressions_to_installs, and number_of_apps when AppTweak does not have enough connected apps with data in that category, country, device, and date range to compute a statistically reliable average. This shows up for smaller or less-tracked categories — for example, Games - Music or Comics can return null for a given country and week even though larger categories in the same call return full values. Widening the date range or switching to a bigger market (country) increases the chance of getting a non-null benchmark for a thin category.