A PPC report answers two questions. Where did the money go, and did it work?
The second one is harder than it looks. Every platform reports its own conversions, and none of them knows what your site actually recorded.
This template puts both side by side.
Download the PPC report template (Excel) or the CSV. The Excel file has three sheets: Campaigns, Summary and Tracking checks.
What the template includes
Campaigns
One row per campaign, the same columns for every platform:
| Column | Why it is there |
|---|---|
| Spend, impressions, clicks | What you bought |
| CTR, CPC | Whether the ads earn the click, and at what price |
| Conversions (platform) | What Google Ads, Meta or TikTok says happened |
| Conversions (site) | What your site recorded for the same campaign |
| Gap | The difference between the two |
| Conversion value, CPA, ROAS | What it was worth |
| Change vs previous period | What moved |
The rows start with Google Ads, Meta Ads, Microsoft Ads, LinkedIn Ads and TikTok Ads, and end in a total. Add the platforms you run and delete the rest.
Summary
Four lines: the headline, what changed, why, and what happens next. "ROAS fell from 4.1 to 3.2 because the new Performance Max campaign took 40% of spend and its conversions are not reaching the site" tells the reader what to do. A table alone does not.
Tracking checks
Eight checks to run before you trust the ROAS column:
- Auto-tagging is on.
- Click IDs (gclid, fbclid, ttclid) reach the site and survive redirects.
- Every ad has UTMs.
- UTM naming follows one convention across platforms.
- Platform conversions match the site's conversions.
- Conversion values are right: value, currency, tax and shipping.
- Pixel and server-side events are deduplicated.
- No ad pixel fires before consent where consent is required.
Each has a column for how to verify it, its status and its owner. The PPC audit checklist explains each one in depth.
Read the gap column first
Platforms optimize on the conversions they see. If Meta counts 240 purchases and your site recorded 180, the bidding is learning from 60 that may not exist, and the ROAS in the report is wrong in the same direction.
A gap is not always an error: each platform has its own conversion window and attribution rules. What matters is the change. A gap that was 5% last month and 25% this month is a tracking problem until proven otherwise.
Weekly for the team, monthly for the client
- Weekly: campaigns and the gap column, for the people who change bids and budgets. Look for what moved.
- Monthly: the summary sheet on top, totals by platform, and the tracking checks, for leadership or the client.
For the whole marketing picture, traffic, SEO and email included, the marketing report template uses the same structure. And if you are choosing a tool to build it, SEM reporting tools compares eight.
Automate the report, keep the judgment
Filling this template by hand means exporting from each ad platform, matching campaigns to your analytics and checking the tracking yourself, every week.
Trackingplan does the reading. It pulls spend, impressions, clicks, CTR, CPC, conversions, value and ROAS from eleven ad platforms, sets them against what your pixels captured, and flags the gaps: clicks without UTMs, conversions the platform counts and the site never sent, campaigns that spend and bring no traffic.
Trackingplan reports turn that into the PPC report: written, with the charts, scheduled daily, weekly or monthly, and sent by email, in Slack or Teams, or as a link. Agencies send it to each client with their own logo. You still read it and add your call before it goes out.