Home / Paid Media
For in-house marketers

One report across Google, Meta and LinkedIn — with the same definitions every month

Every platform reports well on itself and not at all on the others, so the monthly view gets rebuilt by hand in a spreadsheet. Quiriz reads the exports you already download and answers ROAS, CPA, CPC, CPM and CTR across all three — the same way each time.

Try it on sample ad data → No signup, no account connection, no tracking script.

This is built for the person who runs the ads and builds the report — where there is no agency sending a deck and no analyst maintaining a dashboard. The work is not hard; it is that it has to be redone every month, and it comes out slightly different each time.

The metrics come pre-defined

Every formula, so you can check it against how you already measure before uploading anything.

MetricDefinitionWhat it is for
Ad spendsum of costPlatform-reported cost. Excludes agency and management fees, and any credits, unless your export already nets them out.
ROASconversion value ÷ spendWhether a campaign or platform returns more than it costs. Platform-attributed, so it is an upper bound.
CPAspend ÷ conversionsCost per conversion, lead or acquisition — whichever your platform is counting.
CPCspend ÷ clicksWhat you actually paid for traffic, not what the export's own cpc column averaged.
CPM1,000 × spend ÷ impressionsCost of delivery, comparable across platforms in a way CPC is not.
CTRclicks ÷ impressionsWhether the creative earns the click.
Conversion rateconversions ÷ clicksClick-to-conversion, not impression-to-conversion.

Impressions, clicks, conversions and conversion value are available on their own as well, so a question can ask for the components rather than the ratio.

Why your CPA is probably wrong in the spreadsheet

Put daily CPA in a column and average it, and a Tuesday that spent $2 and converted once counts exactly as much as a Saturday that spent $2,000 and converted eight times. The result is a number that moves when nothing about the campaign moved.

Every ratio here is a ratio of sums. CPA for a campaign is that campaign's total spend divided by its total conversions, over the window you asked about — never the average of its daily rates. Same for ROAS, CPC, CPM, CTR and conversion rate. It is the definition each ad platform uses in its own interface, and it is the one your export's per-row cpc and ctr columns will not reproduce once you group them.

A zero denominator returns no figure rather than a zero. A campaign with no conversions yet has no CPA — reporting $0.00 there would read as free.

What it breaks down by

Governed answers break down by campaign, platform, objective and ad account, over any window you ask for.

Deliberately not by device or ad group. Every breakdown has to exist in every export it reads, and device is Google-only while ad groups are called three different things across three platforms — declaring either would take the whole report down for anyone whose export lacks it. If all of your exports carry one, it is a small change to add.

The exports it reads

Two columns matter more than the rest: campaign id, which is how the daily rows meet the campaign list, and spend in currency — the Google Ads API reports cost in millionths, and a file of cost_micros is refused rather than silently divided.

Exports, not a live connection. Nothing to authorise and no tracking script to install, and the trade is honest: your numbers are as current as your last download, which suits a weekly or monthly review rather than live budget pacing.

What it will not answer

Conversions will not tie to your store or CRM totals, and no tool reading ad exports can make them. Each platform attributes and dates conversions by its own window, and all three will claim the same purchase. Add up three platforms' conversions and you have double-counted on purpose. Quiriz reports what the platform claimed; it does not re-attribute, and it will say so rather than quietly reconciling.

For the same reason there is no blended CAC or MER here: those need your order or CRM revenue sitting beside the ad data, which is a different question of different files.

Reach and frequency are not governed either. Reach counts people and does not add up across days — a week of daily reach is not a weekly reach — so a rate computed against it is a different metric wearing the same name. Impression share, average position and quality score are Google-only and equally unsummable.

Why the number holds still

Ask a chat assistant for CPA twice and you can get two numbers, because it re-decides each time whether to average the rows or divide the totals, and whether a paused campaign's January spend still counts. Quiriz routes the question to a stored definition that compiles to SQL, so the same question returns the same figure — and every answer states whether it came from those definitions or was answered freehand.

Ask the sample ad data → Then upload one month of your own exports and check it against a figure you already trust.

Pricing

You pay for workspaces and the people who build them — not for everyone who asks a question. The founder checking last week's ROAS costs nothing. See pricing →

Your files stay yours, and we do not train on your data. Privacy policy →

Related reading

Questions

Why does my CPA differ from the one in my spreadsheet?
Because a spreadsheet usually averages each row's daily CPA, which gives a $2 day the same weight as a $2,000 day. Quiriz divides total spend by total conversions for the group you asked about — the definition the ad platforms use themselves.
Do the conversions match my store or CRM totals?
No, and nothing reading ad exports can make them. Each platform attributes and dates conversions by its own window, so all three claim the same purchase. Ask the ad question of ad data and the revenue question of your order or CRM data.
Do I need the campaign list, or is the daily export enough?
The daily export alone gives you everything by campaign and platform. The campaign list is what adds objective and ad account — a performance export cannot say what a campaign was for, or which brand it belonged to.
Is CTR shown as a percentage?
Answers return rates as a decimal — 0.0408 rather than 4.08% — because that is what the stored definition computes. It is the same number; if you want percentages in a report, format the column.
Does this work for an agency reporting on several clients?
It will run — the ad account breakdown separates brands — but it is not what this is built for, and tools like AgencyAnalytics and Whatagraph do client-facing white-label reporting properly. This is for the marketer reporting on their own spend.