Skip to main content
This page covers data freshness and spend history for the Apple Ads report in the Qonversion dashboard. Qonversion uses UTC days for every date in the report. Qonversion records daily Apple Ads spend history from about the time you connect Apple Ads; older history enters only through a spend import, which only owners and administrators can run, only in the dashboard, and only for dates more than 90 days ago that are earlier than your recorded history. Every page-level data problem on the report is explained in one strip above the table, with the action you can take.

What does the “Updated …” label mean, and how do I use “Update now”?

The Updated … indicator and its Update now button are shown only on some projects, not on every Apple Ads report. 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. When the indicator is shown, it sits in the filters row above the table and reads: When the data is behind, the Updated … label is highlighted. Hovering it shows “Apple didn’t respond during the last updates. Showing data as of HH:MM UTC.” The numbers on screen are then the last successfully synced ones, and Retry requests a fresh update. The button next to the indicator reads Update now. It reads Retry when the data is already marked as behind, or when your last update attempt failed. After you press Update now, the button stays busy until newer data arrives, and then the table refreshes. If the data was fetched moments ago, the report simply reloads and nothing fails. If an update doesn’t land, a Couldn’t update the data notification appears and the button changes to Retry. The notification text tells you why:

Who can press “Update now”?

Anyone who can view the Apple Ads section can press Update now. It does not need the campaign-management capability or an owner or administrator role. A user without Apple Ads section access is refused with “Refreshing Apple Ads data requires access to the Apple Ads section.” Update now is a dashboard-only action. The Qonversion public REST API and the Qonversion MCP server can’t trigger it; they only read the report.

Why do today’s numbers keep changing?

When the selected period includes today (UTC), the period control shows a live marker. Its tooltip reads “The selected period includes today — the last day is incomplete and spend syncs with a lag, so today’s numbers keep changing”.

What do the data messages above the Apple Ads report table mean?

All page-level data problems on the Apple Ads report show in one strip above the table. With one problem, the strip shows that problem’s headline and explanation. With several, it reads “Two things are off with the numbers on this page.” (the count is spelled out up to six), or “Two things aren’t in yet on this page.” when every item is only about spend history that hasn’t arrived yet. What’s affected expands the list, and when every item that offers a button offers the same one, the strip shows a single shared button. The “aren’t available yet” item is not shown while the Apple Ads setup checklist is on screen, because the checklist tells the same story, or while the Apple Ads credentials are rejected. The four spend-history items (“aren’t available yet”, “older than our spend history”, “days of spend history are missing” and “unavailable right now”) appear in both the Growing and the Mature reading of cohort windows. Only Mature window values depend on daily spend history; in the Growing reading the window cells still show values.

How far back does Apple Ads spend history go after I connect?

Qonversion records daily Apple Ads spend history from about the time you connect, and that first collection covers only the most recent days. Earlier history is not backfilled automatically. You can add older days with a spend import, but only for dates more than 90 days ago. Right after you connect, there can therefore be a stretch of recent dates that is neither recorded nor importable yet. Closed (Mature) cohort window values need daily spend history. With the default settings, a cohort window Dn needs n + 5 days of daily spend history before it can show closed values: n days, a 4-day maturation buffer and 1 more day, and never fewer than 7 days.

How do I import older Apple Ads spend history?

Spend import exists for spend history from before Qonversion started recording it. You export that history from the Apple Ads console, which keeps up to 24 months, and history older than what Qonversion records automatically can enter Qonversion only this way. Import is available only in the Qonversion dashboard: there is no MCP tool or REST endpoint for it.

Who can import spend history?

Only the owner and administrator roles (the “Manage Apple Search Ads” permission) can import spend history. That covers opening the import dialog, the list of previous imports and downloading skipped rows. Other roles don’t see the import entry points, and the dashboard refuses them with “Importing Apple Ads spend history requires the owner or administrator role.” The “Manage Apple Ads campaigns” capability does not include importing spend history.

Where do I start an import?

Open the report’s ⋯ menu (Report actions) and choose Spend history…, or press Import spend history… in the data strip above the table when the history is still building or the selected period predates it.
1

Export a campaign report from the Apple Ads console

In the Apple Ads console, open Reports → Custom reports → Create report. Use the dimensions Day, Campaign and Country or Region with the metrics Spend, Impressions, Taps and Installs. Set the date range to anything before the date your recorded history starts, then download the report.
2

Upload the file

Upload the file as .xlsx or .csv, up to 8 MB and up to 150,000 rows. A larger file is rejected with an instruction to split the report into shorter date ranges. Nothing is written when you upload.
3

Check the review

Qonversion checks the file against your recorded history and shows you a review before anything is written. See “What does the import review show?” below.
4

Confirm the import

Press Import N days. While the import applies you can close the dialog: the import keeps running, and reopening the dialog picks it back up. When it finishes, the dialog shows N days imported and Spend history now starts [date], and closed-window ROAS and CAC for the imported dates appear the next time the report loads.

What file does the spend import accept?

A file without such a header is rejected with “No header row found…”. A header without a campaign column is rejected with “Required column missing: Campaign…”. The import accepts campaign-level reports only. A file with Ad Group, Keyword, Search Term, Match Type, Ad or Creative Set columns is rejected, because summing sub-campaign rows loses search-match spend and would undercount campaign totals. Each row has to be tied to a campaign:
  • A Campaign ID column is used when present. A campaign Qonversion doesn’t know is still accepted when the project has a single Apple Ads organization.
  • Otherwise the campaign name must match exactly one known campaign, case-insensitively. An unknown or ambiguous name is skipped, with advice to add the Campaign ID dimension.
Imported spend is never currency-converted. A row whose currency differs from the Apple Ads organization’s currency is skipped as unreadable (“currency X does not match the organization’s Y”). If the file has no currency column, its spend is taken to be in the Apple Ads organization’s currency.

Which dates does the import add, and which rows are skipped?

Recorded data always wins. An import only adds days that were never recorded, and never overwrites or updates an existing row. Imported days must 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. The 90-day cutoff is checked again when you confirm, so an import confirmed later can only skip more rows, never add more.

What does the import review show?

A plan follows, listing every skipped group with its count. Download skipped rows exports every skipped row of the import with its reason as CSV: already recorded, last 90 days, unmatched, zero and unreadable rows alike. The Import N days button is disabled when there’s nothing to add (“Nothing to import — every row is already recorded or skipped.”).

How do I cancel an import or come back to it later?

Pressing Cancel on the review discards the staged import, and nothing is written. Closing the import dialog with X or Escape does not discard a staged import: it stays Ready to review, and reopening the dialog resumes it. Only Cancel on the review discards it. The upload screen lists Previous imports: at most the 5 most recent imports that weren’t discarded. Each has the status Imported, Processing, Ready to review or Failed. Discarded imports are hidden, an import still waiting for review can be reopened, and a failed import shows its reason on hover. Skipped rows in Previous imports exports that import’s skipped rows with their reasons.

When is a date closed for cohort windows?

Cohort windows (ROAS Dn and CAC Dn) have two readings, chosen in the Cohort windows control of the Apple Ads report:
  • Growing is the default reading. For every install in the period, each window Dn counts what that install has earned within n days of installing so far, divided by the period’s Apple spend. Whether a date is closed is informational only in this reading.
  • Mature uses only closed install dates and takes spend from daily spend history.
Your choice in the Cohort windows control is remembered. Over the API, you request the Mature reading with windows_mode=mature. For the full explanation of both readings and the window metrics, see Read the Apple Ads report. In the Mature reading, a window uses only install dates that are closed: at least n + 5 full UTC days old (window length + a 4-day maturation buffer + the boundary day) and never fewer than 7 days. With the default settings, D0 needs 7 days, D3 8, D7 12 and D30 35. For example, for installs on October 1 (UTC), D7 is closed from October 13 (UTC).
  • While a selected window has no closed install day yet, the Mature reading gives its columns a second header row with final values and the UTC date its first final values are expected.
  • The ROAS Dn and CAC Dn summary cards can show recalculated through with a date (as the card’s sub line while the window isn’t closed yet, and in its hints): the UTC date by which the whole period’s cohort set for that window is settled. It is an upper bound taken from the period’s last day, so rows can settle earlier.
  • Lifetime has no such date: it never closes.

Can a closed cohort window still change after a late refund?

Yes. A refund is counted in the window of the purchase it cancels, whenever it arrives. A refund that comes in after a window closed still lowers that window’s revenue and ROAS, so even closed windows can be restated. What settles at closing is which installs belong to the window. Revenue (Gross or Net) is already net of refunds. Gross is what customers paid, and Net is store proceeds after commission and, where the store reports it, tax. Trial-period transactions are excluded. Refunds are also reported separately as an absolute amount; don’t subtract them from Revenue again.

Why don’t Qonversion’s Apple Ads numbers match the Apple Ads console?

Qonversion’s report differs from the Apple Ads console by design:

What is not supported?

  • Update now can’t be triggered from the Qonversion REST API or the MCP server; it is dashboard-only.
  • Spend import is dashboard-only; there is no MCP tool or REST endpoint for it.
  • Spend history from before you connected is not backfilled automatically.
  • A spend import can’t add dates from the last 90 days (UTC), can’t fill gaps inside recorded history, and never overwrites or updates recorded rows.
  • A spend import can’t use ad group, keyword, search term, match type, ad or creative set reports; only campaign-level reports are accepted.
  • Imported spend is never currency-converted.
  • Roles other than owner and administrator can’t import spend history.