← Blog·Marketing Measurement

Marketing Measurement

Client reporting: what to include, how often and why

Client reporting explained: the sections every report needs, the right cadence, the metrics to include and how to catch data errors early.

David PombarSwiss army knife at Trackingplan
13 min read · 2803 words

In 2024, 55% of advertising and data professionals expected it to become harder to track conversions, attribute campaign or channel performance, and measure ROI, according to the Interactive Advertising Bureau's State of Data study. That difficulty lands on the client report first. The report is where measurement problems become visible, in a meeting where nobody can check your working.

A client report is a decision document. Every number in it should carry its source, its definition, its data health status and a stated uncertainty. When those four things are missing, the client supplies their own interpretation, and it's rarely the generous one.

Most reporting advice stops at dashboard design. The harder work is reconciliation: explaining why two numbers disagree and which one should drive the next decision.

Why client reports decide whether clients stay

On Monday the account lead sends a clean monthly report. Spend, conversions, cost per acquisition, a green trend line. On Tuesday the client asks why conversions fell while spend rose, and the page has no answer.

Client reporting is the recurring document that shows a client what was spent, what it produced, what changed and why. It's part receipt, part map. The receipt proves the budget went where it was agreed. The map points to the next decision.

Clients judge the agency by the document they read, not by the work behind it. And most clients decide on a handful of key performance indicators, not on the whole dashboard.

That sets the discipline for everything below. A short set of explained numbers earns more trust than a wide dashboard, because every extra metric is another line the client has to interpret alone.

Trust also has to survive bad months. When a client stops believing the figures, the repair is evidence rather than redesign. CSA, part of Havas Media Network lived the other side of it: before they monitored every account, tracking errors often came to light only after a client noticed, and the team had to explain why nobody caught them sooner.

Three questions hold the format together. What happened? The result against the agreed goal. Why did it happen? The campaign, budget, offer or tracking change behind each movement. What does the team check next? The specific number and test that will confirm or overturn the current read. A report that answers all three earns the next month's retainer more reliably than one that answers forty others.

What every client report needs to contain

Seven parts, in this order. The structure holds for a $3k retainer and a $30k one. Only the depth changes. If you want the blank version to fill in, our marketing report template and PPC report template lay these sections out in Excel and CSV.

  1. Headline summary. Two or three sentences that state the result against the goal agreed with the client. If the target was 200 leads at $40 and you delivered 186 at $43, that's the opening line, not a paragraph about momentum.
  2. Core KPI set. One to five metrics the client uses to decide, each shown against the prior period and the target. Everything else belongs in an appendix.
  3. Explanation of change. The two or three biggest movements, each tied to something concrete: a campaign launch, an offer change, a budget shift, a tracking fix.
  4. Definitions and sources. For each metric, name the source system, the conversion definition and the attribution window. This section ends most arguments before they start.
  5. Data health status. What was checked, which conversion actions were verified, which issues are open, who owns each one and when it gets fixed.
  6. Labelled uncertainty. Observed conversions sit apart from modeled or assisted outcomes, and coverage limits are written in plain words rather than implied.
  7. Next actions. What the agency will do before the next report, and what the client should verify or approve.

Parts four to six are the ones most reports skip, and they're the ones that make the rest credible.

Practical rule: if a metric can't be given a source system and a window in one line, it isn't ready for the client summary.

The format is half the job. The other half is making the page argue: a report should read as a recommendation with evidence, not a data export with a logo on it.

Here's the test I'd apply before hitting send. After reading, the client should be able to repeat the headline in one sentence and name the one number they'll watch next month. If they can't, the document has presented work without supporting a decision.

How often to send each report

Two clocks run at once, and many teams only wind one. The report clock sets when the client receives a summary. The data clock sets when conversions arrive in the platforms that bid on them. Miss the second and the first becomes a record of what the system learned from stale outcomes.

The report clock is the familiar one: tracking checks daily or weekly for the analyst, a weekly performance review for the paid media lead, a monthly summary for the client and a quarterly review for the sponsor. The PPC report template walks through that rhythm. Daily and weekly checks belong to the analyst, not the client: broken tags, missing conversions, click ID coverage and consent status move fast enough that a monthly review is too late to act on them.

The data clock is the one that decides whether the numbers in the report are true.

The data clock has a published standard

Google recommends importing offline conversions at least daily, or at the very least on a consistent schedule, so Smart Bidding learns from recent outcomes, per Google Ads Help on offline conversion imports. Irregular uploads or wrong conversion settings weaken the signal the bidding runs on.

A CRM export that lands once a month and gets uploaded three days later leaves the bidding system well behind the buyer's actual behaviour. That's a reporting failure that shows up later as a performance failure.

Put the cadence in the document: one fixed day per report type, written in the header, with the line "data current as of [date and time]" attached.

A quarterly review tests whether the goals still match the business: budget direction, attribution limits, and whether the KPI set chosen three months ago still reflects how the client makes money.

Which metrics to include and the context each one needs

Pick the metrics the client uses to decide, not every number the platform exposes. Five or fewer is about how much explanation a person will read before a meeting, and most decision-makers read less than you'd like.

These five appear in most paid media reports. The final column is for the agency, not the client.

MetricSourceContext to addCheck before sending
SpendAd platform billing or campaign reportBudget changes and pacing against planTotal matches the period invoice
ConversionsAd platform and CRMLead stage or sale definition usedDuplicate rate and share of events missing event_id
Cost per acquisition or ROASAd platform spend and conversion valueAttribution window and conversion value rulesSame value logic on both sides: spend divided by conversions for CPA, conversion value divided by spend for ROAS
Event match rateMeta Events Manager match quality and Google enhanced conversion reportsConsent changes and identifier capture changesNo unexplained drop after a release
Click ID coverageConversion records from landing page and form hitsCampaigns or platforms with gapsShare of conversions carrying a gclid or fbclid

A gap is not a result

Say a month shows 420 purchases in the Meta Ads report and 380 sales in the CRM. The 40-unit gap is not a performance problem and not a rounding error. It's a question, and it has an order of checks: was the same purchase sent twice through the Meta Pixel and the Conversions API, did both events carry the same deduplication key, and does the CRM count only closed sales while the platform counts form submissions?

Meta's deduplication model answers the first two. A browser event and a server event count as one conversion only when both carry the same event_name and a stable event_id, and Meta recommends sending external_id and fbp as additional identifiers, per Meta's Conversions API best practices. Match quality does a separate job: only events Meta can match to a person feed ad attribution and delivery optimization. When the counts still don't agree, CAPI deduplication issues walks through the diagnosis step by step.

Context is what turns a figure into a decision. Each metric needs its attribution window, its conversion definition, and any budget or offer change inside the period. Cost per acquisition and ROAS need the same conversion value on both sides of the division. When the platform's value differs from the CRM's value, the ratio describes neither.

Keep the checks out of the summary. The client sees the result and the explanation. The evidence lives in an appendix, ready for the meeting but not in the way of it.

Two habits prevent most of this. Keep a shared definition sheet so a metric name means the same thing in March and November. And if you want the fuller list of measures worth tracking, our guide to key analytics metrics for marketing success covers the ones that survive contact with a client meeting.

Data quality problems that change the numbers

A clean report is not a correct report. Most client disputes start with two numbers that disagree, and the report rarely says which of them should drive the decision. Presentation problems are visible. Data problems are not.

The common faults are few and they repeat:

Separate a defect from a difference before writing a word to the client.

The distinction: a repeated event_id across two events is a defect, with an owner and a fix date. A gap created by different attribution models is a difference to explain, with no fix required.

SymptomLikely causeFirst check
Platform conversions higher than CRM salesDuplicate browser and server eventsShared event_id and deduplicated volume for the same event
Google Ads conversions fell sharplyBroken gclid or mismatched conversion action nameUpload results file for rejected rows and the conversion action setup
Ad platform and GA4 totals disagreeDifferent attribution models or windowsDefinitions, attribution windows and date ranges on both sides
Match rate dropped after a releaseChanged identifiers or new consent restrictionsEvent schema changes and consent status on affected hits
Recent conversions missing from the reportLate CRM export or import processing delayUpload timestamps and the report date range

When the gap sits between an ad platform and GA4, why Meta reports more or fewer conversions than GA4 and Google Ads conversions don't match Analytics go through the checks platform by platform.

For Google Ads imports the check is specific. Offline conversions are imported against a conversion action set up for clicks, and when you investigate a discrepancy the conversion data has to line up with the external report's date range and reporting date. Imported conversions can be rejected, so compare the Google Ads report against the upload results file rather than assuming every submitted row landed.

Timing creates its own false alarms. A conversion can only be imported within the click-to-conversion window, up to 90 days depending on the data source, per Google Ads Help on importing with the GCLID, and imported conversions don't show up in reports the moment they're uploaded. Check upload timestamps before calling a drop.

The controls worth reporting aren't the number of uploaded conversions. Report received records, accepted records, partial failures, rejected records and upload delay by conversion action. Every finding goes into the report with three fields: status, owner, date. An open issue with a name attached reads as management. The same issue kept in a Slack thread reads as a surprise waiting to happen.

Report uncertainty when the journey is not observed

When the path can't be observed end to end, the honest report says so. The alternative, a single confident number, buys a quiet month and an argument later.

The market evidence is blunt. In a February 2025 survey of 168 programmatic-market participants, only 30% were extremely or very satisfied with their ability to attribute campaign performance to specific outcomes, with fragmented data, inconsistent metrics and attribution accuracy named as the main obstacles, according to AdExchanger's programmatic measurement report.

Every report needs a three-tier split:

  1. Observed conversions. Records that matched across platform and CRM, with the window and definition stated next to them.
  2. Modeled or assisted outcomes. Labelled as such, with the model named. Never blended into the observed total without a separate line.
  3. Unobserved paths. Stated in plain words, with no number attached. "Purchases from people who saw the ad on a phone and bought in store are not in this figure" is a complete sentence.

Where one number would imply false precision, show the range instead: the platform figure beside the CRM figure, each with its source and window.

Write "the data shows", not "the campaign drove", whenever the evidence is assisted rather than observed.

Name the coverage limit once per report: which channels, consent states or identifiers the numbers can't see. Then say what decision is still safe. Budget can usually be defended on bounded numbers. A claim about which creative caused a sale often can't.

The client question this answers is direct: how should performance be reported when the system can't observe the whole journey? With a bounded number, its source, and the test that would change it.

Cut manual reporting work and confirm setup this week

Most reporting hours go on rebuilding and hunting, not on interpretation. Pull the data the same way every month, on a schedule that finishes before report day, and the time moves to the part clients pay for. Which tool covers which part of that work is in analytics for agencies.

The workflow that holds across a portfolio:

  1. One definition sheet, reused. Metrics, source systems, attribution windows, conversion definitions. Build it once per client type and reuse it everywhere.
  2. Scheduled pulls and summary tables. Data lands and tables populate before anyone writes a sentence.
  3. Automated tracking checks, daily or weekly. Duplicate conversions, missing properties, consent status, click ID coverage, match rate.
  4. An exception report ranked by business impact. A ranked list with evidence for each finding, ordered so the costliest problem sits on top.
  5. Human narrative, written only where it matters. Two or three movements explained by hand, with the judgement call left to a person.

Step five is where automation stops. Software can tell you conversions fell sharply on Tuesday. It can't tell you whether the cause is demand, a consent change, a lost click ID or an attribution model update. That call needs someone who knows the account.

The checks underneath that judgement can run without anyone touching them. Trackingplan's monitoring catches anomalies, missing properties, duplicate fires, broken triggers and consent breaches the moment they appear, and sends each one to the team responsible. It inspects every hit for PII leaks across websites, apps and server-side, and for Consent Mode misfires and vendors firing without permission on websites and server-side. You describe a check once in plain English and it runs daily or weekly across more than 170 analytics and ad providers, with links to the tracking hits behind every finding and delivery to Slack, Teams, email or Jira. Agencies run every client from one workspace and reuse the same event specifications across their plans. The agent names a cause only when two independent pieces of evidence agree. It never bids, manages budgets or changes campaigns; it makes sure campaigns are optimized on conversion data the team can trust, and the evidence arrives before the client call.

For the reporting layer itself, the guide to GA4 automation for reporting covers how to put it on a schedule.

Five checks for this week

David PombarSwiss army knife at Trackingplan

Read more from David, a Senior Product Strategist with 18+ years in digital product development and an atypical error detection knack.

Read next

All Blog →

Trackingplan

See everything. Miss nothing.

Your implementations audited around the clock with real-time, real-user data. Real-time alerts about errors or changes in your data, campaigns, pixels, privacy and consent. Let AI flag issues before they cost you.