Why can’t I see the Apple Ads report or its data?
Why don’t I see the Apple Ads report?
What it means. The Apple Ads report is available only to accounts with the Apple Ads feature enabled. Accounts with Apple Ads enabled see a top-level Apple Ads item in the sidebar that opens the Apple Ads report (/apple-ads-report); it is not an item inside the Analytics menu. Accounts without it keep the older Apple Search Ads page under Analytics (/apple-search-ads), and an Apple Ads report link opened from such an account is redirected to that legacy page.
What to do. If you see only Analytics → Apple Search Ads and no top-level Apple Ads item, contact support to get access to the Apple Ads report. See Where do I find the Apple Ads report?
Why does the report say “Apple Ads data is not available for your role”?
What it means. In the dashboard, users with the Developer role cannot see report data. The Owner, Administrator, Manager, Analyst, Viewer and Observer roles can view the report. What to do. Ask the Owner or Administrator of the account for a role change.Why does the report say “Couldn’t load the Apple Ads report”?
What it means. The report failed to load. What to do. Press Try again.Why does the API return 404 or MCP return “Resource not found”?
What it means. For accounts without Apple Ads access, the Apple Ads REST read endpoints and the connection endpoint return 404not_found, indistinguishable from a nonexistent endpoint, and the MCP read tools fail with a “Resource not found” error. The change endpoint POST /v4/analytics/apple-ads/entity/update also answers HTTP 404 for such accounts, after its authorization check.
What to do. Apple Ads is available to accounts with Apple Ads enabled — contact support. See Apple Ads in REST API v4.
Why does the setup checklist say “No users matched”?
What it means. The report’s setup checklist has a step Attribution is matching that completes once at least one attributed user appears in the report. No users matched means Apple spend exists but no users matched it yet. What to do. Check the SDK setup in your iOS app:
Attribution is resolved asynchronously after the SDK has sent the token, so it appears on the user some time after the app’s first launch rather than in the SDK call’s response. If Apple has no attribution record for a token, the user stays unattributed unless a later token sent by the SDK resolves. Users carrying Apple’s sample attribution payload (campaign ID and ad group ID both 1234567890) are excluded from the Apple Ads report. See How do I collect Apple Ads attribution with the Qonversion SDK?
Why does my Apple Ads connection need attention?
My connection says Reconnect required
What it means. The status Reconnect required has two forms on the Connection status card under Settings → Connections → Apple Ads:
After you disconnect an Apple authorization yourself, the status also shows Reconnect required (Apple authorization Expired or revoked) rather than Not connected. This is expected.
What to do. An Owner or Administrator selects Reconnect with Apple and signs in with Apple again; no key upload is needed. Members who are not Owner or Administrator see “Ask an account owner or administrator to reconnect it.” on the report and no reconnect button. If the account’s plan does not include Apple Ads settings, the report banner offers Contact support instead of a reconnect button. See What does each connection status mean?
Why does the status say Verifying, Needs verification or Check out of date?
Why can’t I select Connect with Apple?
What do the Connect with Apple error messages mean?
Why did Check again fail?
Can an AI agent or a script connect or reconnect Apple Ads?
No. The API and MCP cannot start or complete the Apple sign-in. To connect or reconnect, a person must use the dashboard link returned indashboard_url (Settings → Apple Ads). See Can I connect Apple Ads from the API or MCP?
Why do the report numbers look wrong?
Why don’t Qonversion numbers match the Apple Ads console?
What it means. Qonversion’s report differs from the Apple Ads console by design:
What to do. Compare Apple metrics (Spend, Impressions, Taps, Installs) with the console for the same UTC days, and read subscriber metrics as Qonversion’s attributed cohort. See Why don’t Qonversion’s Apple Ads numbers match the Apple Ads console?
Why are campaign names shown as numbers?
What it means. When attribution is first recorded, the campaign name, ad set (ad group) name, ad name (when Apple sent a real ad ID) and keyword text are set to Apple’s numeric IDs. Readable campaign, ad group and keyword names replace the numeric IDs only when the app’s project has a connected Apple Ads account that can access the campaign’s organization; otherwise names stay as numeric IDs. Analytics data recorded before a name was resolved can keep showing the numeric ID. The Ad dimension for Apple Ads is never renamed: it shows Apple’s numeric ad ID, or “No ad” when Apple sent no ad ID (missing, or 0 or less — Apple uses-1) (older records: an identifier starting with “Q-”). A keyword shown as “Unknown” means Apple’s response had no keyword ID; it is never resolved to a keyword name.
What to do. Connect Apple Ads under Settings → Connections → Apple Ads with an Apple account that can access the campaign’s organization. See Why do I see numeric IDs instead of campaign names?
Why is ROAS D7 empty?
In a CAC Dn cell, No payers is a separate state: the window has spend and attributed installs, but nobody has paid, so CAC cannot be calculated. With a non-Country filter active, ROAS Dn and CAC Dn are marked Spend not filtered; see Why did ROAS Dn drop after I applied a filter?. See also Growing and Mature cohort windows.
Why is spend shown as —?
What it means. An em dash — in a cell means no value — never $0 or 0.
What to do. For a missing exchange rate, export the report: the CSV export lists the affected dates and currencies in a
# Spend FX unavailable: line. For incomplete app campaign data, press Request again. See Read spend in the report currency.
Why do CPS or Cost per trial show — on a row with spend?
A dash in CPS or Cost per trial on a row that has spend means nobody in the cohort has started a trial or subscription (or no trials) yet; the cost is undefined, not $0.Why does the Unallocated row have spend but no users or revenue?
The Unallocated row aggregates Apple spend and delivery for entities of the current level that have no Apple Ads–attributed installs in the period under the current filters. It carries only Apple metrics; Qonversion metrics, ROAS, CPS and Cost per trial are empty (—, not $0).Why doesn’t the Total row equal the sum of the rows?
The Total row is computed over the whole report for the selected period and attribute filters: it is not the sum of the rows on the current page, counts each user once, and its Apple metrics include the Unallocated spend. It is shown on the Campaigns level only, and it is hidden while a row filter (State & delivery, search, Spend ≥ or a metric filter) is active. See What do the Total and Unallocated rows mean?Why did ROAS Dn drop after I applied a filter?
Media source, Ad, device and customer filters narrow only the Qonversion cohort; Apple spend is not filtered by them, because Apple does not split spend by those dimensions. The filter narrows revenue and payers but not the spend they are divided by, so ROAS Dn reads too low and CAC Dn too high, and the columns are marked Spend not filtered. Read these two on the unfiltered report.Why do revenue and ROAS keep changing for a past period?
Revenue is the cohort’s revenue cumulative to date: only the install date is limited by the selected period, so the number keeps changing after the period ends — it grows as the cohort keeps paying and can go down when refunds arrive. Cohort windows default to the Growing reading, whose values keep growing. Even a closed window can change: a refund that comes in after a window closed still lowers that window’s revenue and ROAS. For values over closed install dates only, switch Cohort windows to Mature.What does “Spend is undercounted” mean?
“Spend is undercounted — Apple didn’t return data for N of M campaigns.” means Apple didn’t answer for part of the account in this request. ROAS looks better and cost metrics look cheaper than they really are, while revenue and cohort counts are unaffected. Press Request again, which re-runs the request.Why does the Status column show — for some rows?
“N rows don’t show whether they’re running.” means Apple didn’t return those rows’ state. They show a dash in the Status column, and filtering by Status or Delivery hides them even if they’re active. Press Request again.What do the other messages above the report table mean?
All messages are listed in What do the data messages above the Apple Ads report table mean?
Why don’t I see the “Updated …” label or Update now?
The Updated … indicator and its Update now button are shown only on some projects. If your report doesn’t show them, nothing is wrong with your connection: the Apple Ads numbers on that report are requested from Apple for the report you open, so there is nothing to refresh. Where the button is shown, anyone who can view the Apple Ads section can press Update now; it does not need an owner or administrator role. If an update doesn’t land, a Couldn’t update the data notification appears and the button changes to Retry. Update now is dashboard-only: the REST API and the MCP server can’t trigger it.Why does Budget usage show no reading?
Why does Budget usage say Temporarily unavailable?
What it means. Budget usage shows Temporarily unavailable for a campaign when a data source failed, when an exchange rate needed to convert its spend or budget to USD is missing, or, on app-scoped projects, for campaigns not confirmed as belonging to the app. What to do. Click the reading to open Why there is no reading, which lists every applicable reason and marks the main one Primary. See Why does a campaign show a dash instead of a budget usage percent?Why does Budget usage show a dash?
When a reading can’t be computed, the cell shows a dash, never 0%. Common reasons:
If you don’t see the column at all: it is not shown by default; add it from Columns on the Campaigns level.
Budget usage is above 100%. Did Apple overspend my budget?
Not necessarily. Spend is compared with the campaign’s current daily budget, not with the budget that applied when the money was spent. A reading above 100% does not by itself mean a limit was broken, because Apple’s daily budget is an average target over a month. See What does the Budget usage column show for Apple Ads campaigns?Why can’t I import spend history?
Why can’t I fill in spend for recent days?
Rows from the last 90 days (UTC) are always skipped as “still being recorded from the API”. Imported days must also be earlier than the date your recorded spend history starts, so an import can’t fill gaps inside recorded history; it can only extend history backwards. Recorded data always wins: an import never overwrites or updates an existing row.Why was my spend import file rejected?
Why don’t I see Spend history… or Import spend history…?
Only the owner and administrator roles can import spend history; other roles don’t see the import entry points. See How do I import older Apple Ads spend history?Why can’t I change a campaign, bid or budget?
Why can’t I change a bid?
Why can’t I save the new amount?
Why did my change fail?
See What do I see after I make a change?
What does ”? Outcome unknown” mean?
What it means. No answer came back from Apple: the change may or may not have been applied. What to do. Do not press retry repeatedly. Reload the report and check the current value before retrying. The Check and retry button asks about the same attempt instead of sending a second change, so it cannot double-apply. Changes whose outcome is unknown count toward the rate limits.Why did I hit a daily limit even though I lowered bids?
If Qonversion has never successfully changed that keyword or campaign before, the first bid or daily-budget change on it is counted toward the daily increase limit even when it lowers the value. The per-project limits are:
Pausing is never subject to the daily limits — only to the 10-per-minute and 60-per-hour limits. Limits are shared by every member and by changes made through the MCP server. A refusal’s
Retry-After header equals the full window length (60, 3600 or 86400 seconds) — an upper bound, not the exact moment the limit frees up. See What limits apply to campaign changes?
The connection says Connected, but every change is refused
What it means. The connection state describes the authorization only, not permission to change campaigns: a connected integration can still be reporting-only. A read-only Apple Ads role still powers full reporting; only campaign management is unavailable, shown as Read-only in the Campaign management row. Through the API or MCP,campaign_management.state is read_only and next_action is grant_campaign_role_in_apple_ads.
What to do. Give the Apple Ads user a role that can edit campaigns (Admin, Account Admin, API Account Manager, API Campaign Manager, Campaign Group Manager or Campaign Manager) in Apple Ads, then reconnect with Apple. If campaign_management.state is unknown, that is not a refusal; try later.
Why did my change overwrite an edit made in the Apple Ads console?
Changes made directly in the Apple Ads console are not detected before a change is sent: Qonversion checks the value you saw only against changes it confirmed itself shortly before, so a change from Qonversion overwrites a newer console edit.Why does a campaign show “not delivering” right after I resumed it?
Right after resuming, Apple often still reports the entity as not running, so not delivering can appear briefly after a successful resume.Why did an MCP or REST API call fail?
MCP returned a generic error after a change
What it means. Through MCP, any server-side (5xx) failure — including a change whose outcome is unknown — surfaces as the generic error “The Qonversion API returned an error. Please try again.” It must not be taken as proof that a change failed. A 502 or 504 from the change endpoint means the change may or may not have reached Apple, and it is never retried automatically. What to do.- Do not resend the change with a new
idempotency_key. Retry only with the sameidempotency_key, which cannot apply the change twice. - Check the entity’s current value before making any new change.
- Call
get_apple_ads_connection_status. If it showscampaign_management.stateunknownwithreason_codepermission_data_stale, changes are refused with HTTP 503 and nothing is sent; a person reopens Apple Ads settings in the dashboard to refresh, then you retry.
Why does the REST change endpoint return 403 control_forbidden?
Campaign changes cannot be made over the plain REST API with a project Secret Key:POST /v4/analytics/apple-ads/entity/update without Qonversion MCP authorization (an acting dashboard user plus the apple_ads:write scope) returns 403 control_forbidden. Make campaign changes through the Qonversion MCP server or in the dashboard.
Why does an MCP change tool return an insufficient-scope error?
The three campaign-change tools require the OAuth scopeapple_ads:write; without it the tool returns an insufficient-scope error. An OAuth token only carries apple_ads:write when the signed-in dashboard user holds the Manage Apple Ads campaigns permission. Owners and administrators have it through their role; any other member needs an owner or administrator to grant it.
Why did set_apple_ads_bid return 409 value_changed?
Thebefore_bid (or before_status, before_daily_budget) value disagrees with a value Qonversion recently saw Apple confirm for that entity, and the response states the current confirmed value. Decide again from that value instead of resending the same request.
Why does the report or series return 400 unsupported_parameter?
On the Apple Ads report and series endpoints an unknown or unsupported query parameter is refused with 400invalid_request and error.details[].reason unsupported_parameter, instead of being silently ignored. For example, the public series is daily only and does not accept a unit parameter. See What errors and rate limits do the Apple Ads endpoints return?
What is not supported?
- Connecting, reconnecting or disconnecting Apple Ads through the REST API or MCP.
- Filling spend history for the last 90 days (UTC), or for gaps inside recorded history, with an import.
- Detecting edits made directly in the Apple Ads console before a change from Qonversion is sent.
- Changing ad-group bids, or changing campaigns over the plain REST API with a project Secret Key.
- Budget usage on ad group or keyword rows, or with a Country filter.
- Triggering Update now from the REST API or the MCP server.
Related pages
- Apple Ads in Qonversion: what it does and how to set it up — what the integration does, who can use it, and the three setup steps.
- How do I connect Apple Ads to Qonversion? — every connection status, Check again, reconnecting and the legacy API key.
- How do I read the Apple Ads report in Qonversion? — cohort windows, revenue basis, Total and Unallocated, filters and currency.
- How do I pause campaigns and change bids and budgets for Apple Ads in Qonversion? — permissions, amounts, rate limits and change outcomes.
- How do I use Apple Ads through the Qonversion MCP server? — MCP tools, scopes, confirmation and error handling.