Why an App Store Connect Analytics Reports Request Returns No Reports

Diagnose an empty App Store Connect Analytics Reports API response by checking the request, reports, instances, and segments in order.

Airbridge1 min read
Why an App Store Connect Analytics Reports Request Returns No Reports

A successful Analytics Reports API request does not mean a file is ready. The request creates an export job. The data becomes available through the reports, instances, and downloadable segments underneath it. Check which of those levels is empty before changing the job.

Check the request and its age

Confirm that the request belongs to the intended app and note the access type. Apple describes ONGOING as a recurring feed and ONE_TIME_SNAPSHOT as an export of available historical data. The Analytics Reports API overview says an ongoing request typically receives its first report after about 24–48 hours. Do not treat this estimate as a guarantee for a historical snapshot.

Read the request again using its ID. If an ongoing request has been marked stoppedDueToInactivity, follow Apple's instructions to create a new request to resume collection. Avoid repeatedly creating jobs while a valid request is still awaiting its first report.

Find the level at which data is missing

Where the response is emptyWhat to check next
The request's reports listVerify the request ID, the app, and the request age
A report's instancesCheck the report name, granularity, and processing-date filters; try listing available instances before narrowing the query
An instance's segmentsVerify that you are requesting segments for the specific instance ID
The downloaded dataCheck the report's date fields and privacy rules before interpreting missing rows as zero activity

Use Apple's Analytics Reports documentation to check the fields and aggregation rules for the report you are pulling. Log the request, report, instance, and segment IDs separately. When the export arrives, compare aggregate App Store downloads with your acquisition report as a sanity check. The two sources may use different download and install definitions, so a difference is a reason to check scope rather than proof that one source is wrong.