tools / asc_analytics
asc_analytics
read-onlyRead an app's App Store funnel
The real acquisition funnel of one of your own apps from App Store Connect's analytics reports: impressions → product page views → taps → downloads (first-time + redownloads), per day, per source type (App Store search, App Store browse, app/web referrer, ...) and per storefront, for the last `days` event days ending yesterday (default 14, max 60). This is the conversion half ASO cannot see from public data: rank says where the app appears, this says whether the listing converts. Apple does not break organic search down by search term — `App Store search` is one source row. Dates after `completeThrough` are still filling in. `countries` filters storefronts (default: all, top 25 by impressions in byTerritory). Reads Apple's daily report instances into this account's private cache on first use (a long range can take tens of seconds once; repeats are fast). Pass exactly one of appId or bundleId. Requires asc_connect and, once, asc_analytics_enable.
input
appId
integer
App Store trackId of the app
bundleId
string
Bundle identifier, e.g. com.example.app
days
integer
event days to cover, ending yesterday (default 14)
countries
string[]
2-letter storefront codes to keep, e.g. ["US", "GB"]; omit for all territories
example call
tools/call → asc_analytics
{ "name": "asc_analytics", "arguments": { "countries": [ "US" ] } }
output
appId *
integer
requestId *
string
range *
object
from *
string
first event date covered (YYYY-MM-DD)
to *
string
last event date covered (yesterday) (YYYY-MM-DD)
days *
integer
latestProcessingDate *
string | null
newest report instance Apple has published (YYYY-MM-DD); null until the first delivery
completeThrough *
string | null
event dates up to here are complete (Apple finalizes within 3 days); later days still grow
daysWithData *
integer
event dates in range with at least one row
totals *
object
impressions *
integer
times the app appeared in a list, search results or chart (no page view)
pageViews *
integer
product page views
taps *
integer
taps on Get/Update/Redownload/Open/Share etc. on an impression or page
downloads *
integer
firstTimeDownloads + redownloads (Apple's total downloads; updates and restores excluded)
firstTimeDownloads *
integer
first download by an Apple ID
redownloads *
integer
re-installs by an Apple ID that had the app before
pageViewsPerImpression *
number | null
pageViews / impressions; null when the denominator is 0. Per total (not unique) impression, so lower than App Store Connect's conversion rate
downloadsPerPageView *
number | null
downloads / pageViews; null when the denominator is 0. Per total (not unique) impression, so lower than App Store Connect's conversion rate
downloadsPerImpression *
number | null
downloads / impressions; null when the denominator is 0. Per total (not unique) impression, so lower than App Store Connect's conversion rate
bySource *
object[]
by Apple source type, largest first; `App Store search` is the organic + Search Ads search row
sourceType *
string
App Store search | App Store browse | App referrer | Web referrer | App Clip | Notification | Unavailable | Institutional purchase
impressions *
integer
times the app appeared in a list, search results or chart (no page view)
pageViews *
integer
product page views
taps *
integer
taps on Get/Update/Redownload/Open/Share etc. on an impression or page
downloads *
integer
firstTimeDownloads + redownloads (Apple's total downloads; updates and restores excluded)
firstTimeDownloads *
integer
first download by an Apple ID
redownloads *
integer
re-installs by an Apple ID that had the app before
pageViewsPerImpression *
number | null
pageViews / impressions; null when the denominator is 0. Per total (not unique) impression, so lower than App Store Connect's conversion rate
downloadsPerPageView *
number | null
downloads / pageViews; null when the denominator is 0. Per total (not unique) impression, so lower than App Store Connect's conversion rate
downloadsPerImpression *
number | null
downloads / impressions; null when the denominator is 0. Per total (not unique) impression, so lower than App Store Connect's conversion rate
byTerritory *
object[]
by storefront (2-letter code where Apple's region is recognizable), largest first
territory *
string
storefront code, e.g. US
impressions *
integer
times the app appeared in a list, search results or chart (no page view)
pageViews *
integer
product page views
taps *
integer
taps on Get/Update/Redownload/Open/Share etc. on an impression or page
downloads *
integer
firstTimeDownloads + redownloads (Apple's total downloads; updates and restores excluded)
firstTimeDownloads *
integer
first download by an Apple ID
redownloads *
integer
re-installs by an Apple ID that had the app before
pageViewsPerImpression *
number | null
pageViews / impressions; null when the denominator is 0. Per total (not unique) impression, so lower than App Store Connect's conversion rate
downloadsPerPageView *
number | null
downloads / pageViews; null when the denominator is 0. Per total (not unique) impression, so lower than App Store Connect's conversion rate
downloadsPerImpression *
number | null
downloads / impressions; null when the denominator is 0. Per total (not unique) impression, so lower than App Store Connect's conversion rate
daily *
object[]
one row per event date with data, oldest first
date *
string
event date (YYYY-MM-DD)
impressions *
integer
times the app appeared in a list, search results or chart (no page view)
pageViews *
integer
product page views
taps *
integer
taps on Get/Update/Redownload/Open/Share etc. on an impression or page
downloads *
integer
firstTimeDownloads + redownloads (Apple's total downloads; updates and restores excluded)
firstTimeDownloads *
integer
first download by an Apple ID
redownloads *
integer
re-installs by an Apple ID that had the app before
pageViewsPerImpression *
number | null
pageViews / impressions; null when the denominator is 0. Per total (not unique) impression, so lower than App Store Connect's conversion rate
downloadsPerPageView *
number | null
downloads / pageViews; null when the denominator is 0. Per total (not unique) impression, so lower than App Store Connect's conversion rate
downloadsPerImpression *
number | null
downloads / impressions; null when the denominator is 0. Per total (not unique) impression, so lower than App Store Connect's conversion rate
note *
string