How to Import Ad Spend CSV and Calculate Real ROAS for Shopify
Published July 2026 · 8 min read
Quick Answer
Real ROAS = Shopify-attributed revenue / ad spend. Export your ad spend as CSV from Meta, Google, or TikTok, match it to your Shopify Orders CSV by date, and divide. A $5,000 spend generating $15,000 in Shopify revenue = 3.0x ROAS. No OAuth, no subscription, no attribution black box.
Launch your store with Start your Shopify store ↗aff.
Meta Ads says you made $22,000 last month. Shopify says $15,000. Which number do you trust for ROAS?
If you said Meta, you are over-counting revenue and under-counting your real cost per acquisition. If you said Shopify, you are closer to the truth — but now you need to connect ad spend to Shopify revenue without granting an app OAuth access to your ad accounts (and hoping it does not accidentally pause a campaign).
There is a third way: export your ad spend as a CSV, match it to your Shopify Orders CSV, and calculate ROAS yourself. No API tokens. No attribution black box. No $50/month subscription. This guide shows you exactly how.
Why CSV beats OAuth for ad spend tracking
Most profit-tracking apps ask for OAuth access to your Meta, Google, and TikTok ad accounts. That means read access to every campaign, audience, and creative — and sometimes write access that can pause or edit campaigns. Three problems with this:
- Attribution inflation: the ad platforms report their own revenue numbers, which overcount by 15-40% because they credit any purchase within a click window, even if the customer came back via email or organic search.
- OAuth fragility: tokens expire, API changes break syncs, and you discover two weeks later that your "live" dashboard was frozen the whole time.
- Privacy risk: you are handing a third-party app the keys to your ad account. A bug or breach on their end can expose or alter your campaigns.
CSV export is the manual, boring, reliable alternative. You pull the numbers yourself, on your schedule, and match them to the revenue source you actually trust: Shopify.
Step 1: Export your Shopify Orders CSV
In Shopify Admin, go to Orders, click Export, select All orders for the date range you want (typically last 30 days), and choose Orders by day or Plain CSV. Shopify emails you a CSV file. Download it.
This file contains every order, its total, payment method, and — importantly — the landing_site and referrer data that tells you where the traffic came from.
Step 2: Export ad spend from each platform
Meta (Facebook/Instagram) Ads
In Ads Manager, go to Reporting, create a breakdown by day, select Amount spent and Purchases columns, set your date range, and click Export as CSV. You get a row per day with total spend.
Google Ads
In Google Ads, go to Reports > Predefined reports > Performance > Time (by day). Add the Cost column, set your date range, and download as CSV.
TikTok Ads
In TikTok Ads Manager, go to Reporting > Custom reports, select spend by day, and export as CSV.
Key: ensure every CSV has a date column in the same format (YYYY-MM-DD is safest). If platforms use different formats, normalize them in a spreadsheet before merging.
Step 3: Calculate ROAS
ROAS is simple division. The trick is matching the right numbers:
ROAS = Shopify-attributed revenue / Ad spend (same period)
Here is a worked example for a store spending $5,000 on Meta ads in June:
Meta Ads spend (June): $5,000
Meta reported revenue: $22,000 (overcounted)
Shopify orders from Meta (UTM-attributed): $15,000
Real ROAS = $15,000 / $5,000 = 3.0x
Meta's claimed ROAS was 4.4x. The real number is 3.0x. That 1.4x gap is the difference between thinking a campaign is profitable and actually knowing.
What ROAS do you actually need to be profitable?
Break-even ROAS depends entirely on your gross margin. The formula:
Break-even ROAS = 1 / Gross margin
40% margin = 2.5x break-even ROAS
30% margin = 3.3x break-even ROAS
20% margin = 5.0x break-even ROAS
Above break-even covers product cost only. To cover refunds, payment fees, shipping gaps, and still leave profit, add a 30-50% buffer. So a 30% margin store needs roughly 4.3x-5.0x ROAS to be genuinely profitable after all costs. Use the Profit Calculator to find your real margin first.
Merging multiple ad platforms into one view
If you run ads on Meta, Google, and TikTok simultaneously, you want blended ROAS plus per-platform breakdowns. The CSV approach handles both:
- Blended ROAS: sum all platform spend, divide by total Shopify revenue for the period. Fast, simple, good for a sanity check.
- Per-platform ROAS: match each platform's spend to Shopify orders attributed to that source via UTM parameters in the
landing_sitecolumn. More accurate, shows which platform is actually driving profitable orders.
The free CSV Profit Checker handles the Shopify side automatically. The free ad-spend CSV tool matches Meta, Google, and TikTok spend to your orders by date and UTM source to show real ROAS. When you want the complete audit (3-dimension Score breakdown, SKU ranking, and PDF for your accountant), the $9 one-time Pro report adds it.
The attribution gap you cannot close with CSVs (and why that is fine)
CSV matching cannot do multi-touch attribution — it cannot tell you that a customer saw a Meta ad, ignored it, got an email three days later, then bought via Google branded search. If you spend $100K+/month on ads and need that level of detail, you need a tool like TripleWhale or Northbeam.
But for the 90% of Shopify merchants spending under $30K/month on ads, last-click UTM matching via CSV gets you within 5-10% of the truth, without a $219+/month subscription. That is more than accurate enough to decide which campaigns to scale and which to kill.
Do it now
Export your Shopify Orders CSV and your ad spend CSVs for the last 30 days. Drop the Shopify file into the CSV Profit Checker, then use the free ad-spend tool to match spend to orders and see real ROAS — not the inflated number Meta shows you. When you want the complete audit (Score breakdown, SKU ranking, fix list, and PDF), the $9 one-time Pro report covers it. The truth in under a minute, no subscription required.
Key Terms
Grow your store revenue
If you sign up through these links, we may earn a commission at no extra cost to you.
Frequently Asked Questions
How do I calculate ROAS from a CSV instead of connecting an ad account?
Export your ad spend report from Meta Ads Manager, Google Ads, or TikTok Ads as a CSV, then match the date column to your Shopify Orders CSV. Divide Shopify-attributed revenue by ad spend for the same period. A $5,000 spend that generated $15,000 in attributed revenue is a 3.0x ROAS. CSV matching avoids OAuth connection issues and lets you combine platforms Meta, Google, and TikTok in one view.
What ROAS is profitable for a Shopify store?
Break-even ROAS depends on your gross margin. With a 40% margin, you need 2.5x ROAS just to break even (1 / 0.40). For a healthy 20% net profit after all costs, aim for 3.0x-4.0x on Meta and Google. TikTok tends to need higher ROAS targets (3.5x+) because of higher return rates. Always calculate break-even from your actual margin, not a rule of thumb.
Why do Shopify and Meta Ads show different revenue numbers?
Meta attributes revenue using its own pixel and algorithm, which overcounts when customers click an ad but buy later from email or organic search. Shopify records the actual order source. The gap is typically 15-40% inflation on Meta's side. Matching ad spend CSV to Shopify order revenue (not Meta's reported revenue) gives you the real ROAS.
Can I track ad spend without giving an app OAuth access to my ad accounts?
Yes. Export ad spend as a CSV from each platform and upload it alongside your Shopify Orders CSV. This is the most privacy-preserving approach — no API tokens, no read access to your campaigns, no risk of an app accidentally pausing or editing your ads. You get the numbers you need without granting control.
How do I merge Facebook Ads, Google Ads, and TikTok Ads spend into one ROAS view?
Export each platform's spend CSV, ensure the date formats match, and combine them into a single file (or upload separately to a tool that merges them). Total monthly spend across platforms divided by Shopify revenue gives blended ROAS. For per-platform ROAS, match each platform's spend to Shopify orders attributed to that source via UTM parameters.