Skip to content

Templates

PPC report template: Google Ads and Meta in one client sheet

A PPC report template for clients puts each ad platform in its own block: Google Ads with Cost and Conv. value, Meta with Amount spent and Purchases conversion value. Under them goes one line of payments that cleared for the same dates. Keep the platform totals side by side, but never add them, because both platforms can claim the same sale. Copy the sheet below and fill one block per platform.

Want this live for every client?

This template keeps a payment line because platform columns can't show what cleared. To fill that line from real payments, see Thexly for agencies.

The template

Three blocks, top to bottom. Each line uses the column name the client will see in that platform. The spend lines are typed in by hand from each platform.

The template
BlockLineWhat goes here
HeaderDates and time zoneOne date range for every block, and the time zone you used
1. Google Ads (Google-reported)CostFrom Google Ads
1. Google Ads (Google-reported)ConversionsFrom Google Ads
1. Google Ads (Google-reported)Conv. valueFrom Google Ads
1. Google Ads (Google-reported)Conv. value / costFrom Google Ads
1. Google Ads (Google-reported)Settings noteWhich conversion actions count, and any change to them
Between blocksDo not addDo not add Block 1 and Block 2 values
2. Meta Ads (Meta-reported)Amount spentFrom Meta Ads Manager
2. Meta Ads (Meta-reported)ResultsFrom Meta Ads Manager, with the result type
2. Meta Ads (Meta-reported)Purchases conversion valueFrom Meta Ads Manager
2. Meta Ads (Meta-reported)Purchase ROASFrom Meta Ads Manager
2. Meta Ads (Meta-reported)Attribution settingAs set on the ad sets
3. Payments (Stripe)Payments that clearedSame dates as the header
3. Payments (Stripe)RefundsSame dates
3. Payments (Stripe)Total ad spendCost plus Amount spent, typed in from each platform
3. Payments (Stripe)Payments ÷ total ad spendPayments after refunds, divided by total ad spend. Label it "blended, from payments"
FooterChange noteWhat you changed on either platform, with dates

Prefer a sheet? Download the template.

Spend is the one figure you can add across platforms, because each platform's spend is money that left the account. Conversion value can't be added. That's the whole point of the "do not add" row.

Only one platform on the account? Use the Google Ads report template for clients or the Facebook Ads report template. They go deeper on each platform's own columns.

A filled example

Illustrative example: round numbers for a made-up store. Not a customer and not a benchmark.

A filled example
BlockLineExample
HeaderDates and time zone1 to 31 October, Europe/Dublin
1. Google AdsCost€3,000
1. Google AdsConversions60
1. Google AdsConv. value€9,000
1. Google AdsConv. value / cost3.0
1. Google AdsSettings notePurchase is the only primary action; no change this month
Between blocksDo not addDo not add Block 1 and Block 2 values
2. Meta AdsAmount spent€2,000
2. Meta AdsResults40 website purchases
2. Meta AdsPurchases conversion value€6,000
2. Meta AdsPurchase ROAS3.00
2. Meta AdsAttribution setting7-day click, 1-day view and 1-day engagement conversion
3. PaymentsPayments that cleared€10,500
3. PaymentsRefunds€500
3. PaymentsTotal ad spend€5,000
3. PaymentsPayments ÷ total ad spend2.0 (blended, from payments)
FooterChange noteMoved €500 from Meta prospecting to Google brand search on 14 October

Look at what the "do not add" row stops. Google claims €9,000 and Meta claims €6,000. Added together, that's €15,000 and a combined ROAS of 3.0. The payments that cleared, after €500 of refunds, come to €10,000. On that, €5,000 of spend returns 2.0.

The gap is €5,000 of value that at least one platform is crediting to itself. Some of it may be the same orders claimed twice. Some may be timing, or values that don't match what was charged. The template doesn't decide which. It shows the client both views and labels them.

Filling the payment row by hand each week?

Thexly matches each payment to the campaign visit behind it, so the row is ready when you open the report.

No card required.

Why the platform totals aren't summed

Each platform counts by its own rules. Google says its main conversion columns "are calculated based on the time of the click, not the time of the conversion" (Google Ads help: conversion columns). Meta counts under the ad set's attribution setting, and its default is "7-day click, 1-day view and 1-day engagement conversion" (Meta help: Results). A buyer who sees a Meta ad, then clicks a Google ad and pays can fit both rules at once.

It comes up in agency threads. In an r/GoogleAnalytics thread about a client on both platforms, one reply said: "Platform ROAS often is way off with multiple platforms claiming the same sale." Another put the split well: "Platform stats are useful for optimising within the platform. For a campaign on multiple platforms you need something that can see multiple platforms." (r/GoogleAnalytics, April 2026)

That's how the blocks are meant to be read. Blocks 1 and 2 are for decisions inside each platform. Block 3 is the one number that covers both. More on the overlap: when Meta and Google both claim the same sale.

Monthly vs weekly version

The monthly version is the full sheet above.

For a weekly send, keep the header, Cost and Conv. value from Google, Amount spent and Purchases conversion value from Meta, the payments line and the change note. Drop the settings note and attribution setting unless something changed that week. If it did, that line goes first.

Two lines matter more weekly than monthly. The time zone, because a short range shifts a lot when one platform reports in another zone. One agency that automated its Monday reports warned: "also watch out for timezones on Monday morning runs, that one bit us hard." And the change note. In the same thread, another reply said: "We need to provide what actions/ optimizations were performed in order to achieve the performance and next steps for the campaign." (r/DigitalMarketing, April 2026)

For what to say about each block in the meeting, see our PPC reporting guide.

When a two-platform sheet gets heavy

Blocks 1 and 2 are two exports. Block 3 is where the work is: Stripe for the same dates, refunds taken out, spend from both platforms typed in, then the question of which campaigns the money came from. Across several clients, it adds up fast.

Want this live for every client?

Send the client a live link instead of this week's PDF: Thexly for agencies.

Which block do your clients read first? We'd like to hear.

FAQ

Questions & answers

Sources