Analistable

How to combine Meta Ads, TikTok Ads and Google Ads spend in one sheet

By the Analistable team · Updated · 5 min read

Export each platform by day and campaign, rename the spend, click and conversion columns to shared names, convert every row to one currency, record each platform's attribution window in its own column, then stack the three exports with a platform column. Compare spend freely; compare platform-reported conversions only with the attribution caveat visible.

Part of our guide: How to answer questions across multiple spreadsheets

What differs between the three exports

Spend is the easy part — it's money that left your account. The hard parts are naming, currency and what each platform counts as a conversion. Headers below are typical of current exports but change with platform updates and custom column sets, so check yours:

Typical headers by platform
Shared columnMeta Ads ManagerTikTok Ads ManagerGoogle Ads
dateReporting startsBy day / DateDay
campaignCampaign nameCampaign nameCampaign
spendAmount spent (GBP)CostCost
impressionsImpressionsImpressionsImpr.
clicksLink clicksClicks (destination)Clicks
conversionsResults / PurchasesConversionsConversions

Meta's “Results” column changes meaning with the campaign objective — it can be purchases for one campaign and leads for another. If you mix objectives, export a specific action column (such as Purchases) instead of Results.

Currency

Each ad account bills in one currency set when the account is created. If you run a GBP Meta account and a USD TikTok account, the Cost column in TikTok is in dollars. Add a currency column per platform and convert with a single, recorded rate per month (or per day, if your finance team does).

=IF([@currency]="GBP", [@spend], [@spend] * XLOOKUP([@month] & [@currency], Rates[key], Rates[to_gbp]))

Keep the original amount and currency columns. When finance asks why September's TikTok spend moved, you can show the rate rather than re-export.

Attribution windows

Each platform credits conversions using its own attribution setting, and those settings are configurable per account or per campaign. Meta has commonly defaulted to 7-day click and 1-day view; Google Ads conversion actions have their own click-through and view-through windows; TikTok has its own click and view windows. Check the settings in each account rather than assuming defaults.

Because each platform counts a conversion it influenced, a customer who saw a TikTok video, clicked a Meta ad and then searched on Google can be counted three times. Record the window in an attribution column so the sheet itself carries the caveat:

Attribution recorded alongside the data
platformattributionconversion counted
Meta7-day click, 1-day viewPurchase pixel/CAPI event
TikTok7-day click, 1-day viewPurchase pixel event
Google Ads30-day clickPurchase conversion action

Worked example: September by platform

Stacked and converted to GBP, September 2026
platformspend (orig.)currencyspend (GBP)platform conversionsCPA (GBP)
Meta6400GBP6400160£40.00
TikTok3000USD225045£50.00
Google Ads5350GBP5350214£25.00
Total14000419—

TikTok's $3,000 at an illustrative 0.75 rate is £2,250. Total spend in GBP is £14,000. The 419 conversions are the sum of three platforms' claims, so don't divide £14,000 by 419 and call it a blended CPA. Compare it with orders in your shop or CRM over the same month; if you took 300 orders, the platforms have over-claimed by about 40%.

For a de-duplicated cost per acquisition, join spend to conversions from one neutral source such as GA4 or your order system — the method is in merging GA4 data with ad cost data.

Stacking the three files

With the columns renamed, the stack is a UNION ALL with a platform label:

SELECT 'Meta' AS platform, "Reporting starts" AS date, "Campaign name" AS campaign,
       "Amount spent (GBP)" AS spend, 'GBP' AS currency, "Purchases" AS conversions
FROM meta
UNION ALL
SELECT 'TikTok', "Date", "Campaign name", "Cost", 'USD', "Conversions" FROM tiktok
UNION ALL
SELECT 'Google Ads', "Day", "Campaign", "Cost", 'GBP', "Conversions" FROM google_ads;

In Analistable you can add the three exports and ask “spend in GBP by platform by week” — the AI writes this kind of query from the column names, and the data stays in your browser. For the wider report including email and organic, see building a cross-channel report from CSV exports, and the cross-spreadsheet guide for other question types.

Check the stacked table before reporting

A few checks catch most mistakes before anyone sees the numbers:

  1. Totals match the platform: sum spend per platform in the stacked table and compare with each platform's account total for the same dates and currency. A difference usually means a totals row, a filter or a missing day.
  2. No duplicate days: count rows per platform, campaign and date. More than one means an export overlapped the previous one.
  3. Currency column filled on every row: a blank currency silently drops out of the conversion formula.
  4. Conversion column means the same event: if one platform exports Results and another exports Purchases, they aren't comparable.

Keep the checks as a small pivot or query next to the report. Rerun them each time you add a week, rather than once when you build the sheet.

It also helps to separate prospecting and retargeting campaigns with a campaign_type column. Retargeting usually shows far lower cost per conversion on every platform because it reaches people already close to buying, so mixing it into a platform average makes the platform with more retargeting look better than it is.

Frequently asked questions

Can I combine the exports in Google Sheets instead of Excel?
Yes. Paste or import each export into its own tab, rename the headers to the shared schema, and stack them with a {range1; range2} array or VSTACK. The currency and attribution columns work the same way.
Should I include agency fees in spend?
Keep media spend and fees in separate columns. Platform exports only contain media spend, and mixing fees in makes your figures impossible to reconcile with the platforms.
Can I add TikTok and Meta conversions together?
You can, but the total is the sum of two platforms' claims, not the number of customers. Treat it as an upper bound and compare it with your actual orders.
Which spend column should I use from Meta?
Amount spent, which is reported in the ad account's currency (the header usually names it). It excludes any VAT or tax you're invoiced separately, so it may not match your bank statement exactly.
Why does Google Ads spend differ slightly from my invoice?
Invoices can include taxes, credits and invalid-click adjustments that the daily Cost column doesn't. Use Cost for performance reporting and invoices for accounting.

Related guides