I pulled the conversion settings of 50 live Google Ads accounts last week, and 42 of them counted their main conversions with two different attribution models at the same time. That’s one platform disagreeing with itself before Meta, LinkedIn or GA4 get a say.
So when a client asks why the report and their CRM show different lead counts, the answer usually isn’t one broken tag. It’s a stack of small setting differences that no one wrote down, multiplied by every channel and every client you add.
What I found in 50 accounts
- 42 of 50 mixed attribution models across their primary conversion actions.
- 9 of 50 had the same lead type set up twice, once imported from GA4 and once from the Google Ads tag. In 3 of them both counted leads in the same 90 days.
- 16 of 50 got a quarter or more of their “conversions” from store visits, directions and page views.
Below is why multi-channel reporting breaks, how I’d connect the data so it stops breaking, where AI helps and where it makes things worse, and a rollout you can run one client at a time.
Why multi-channel reporting breaks
Most agencies I talk to build reporting the same way. Someone logs into Google Ads, Meta and GA4, exports a CSV from each, pastes them into a sheet and fixes the column names by hand.
That works for 2 clients. It falls apart around client 5, for 5 reasons:
- The data lives in separate platforms. Each one has its own login, its own export and its own idea of a date range.
- The metrics have the same name and a different meaning. A “conversion” in Meta, Google Ads and GA4 is counted over different windows, with different credit rules.
- The CSVs get stitched together by hand. One wrong paste and a client’s cost per lead can be wrong for a month before anyone sees it.
- The report is stale the day it’s sent. A monthly PDF answers last month’s questions. The client’s budget question is about this week.
- The work grows with every client. 10 clients with Google Ads, Meta and GA4 is 30 accounts to log into, export and check, every reporting cycle.
The second one is where most of the trust gets lost, so here are the defaults side by side.
| Platform | Default window | Who gets the credit | Date it’s reported on |
|---|---|---|---|
| Google Ads | 30 days after a click | Set per conversion action | The day of the ad click |
| Meta Ads | 7 days after a click, 1 day after a view | Meta’s ad that was clicked or seen | Set in Ads Manager |
| GA4 | 90 days for key events | The reporting model in GA4 | The day the key event happened |
Google’s conversion window help page gives the 30 days and GA4’s attribution settings page gives the 90. For Meta, Jon Loomer puts it plainly: if you didn’t change anything, it’s 7-day click and 1-day view.
The same sale can be in Meta’s report, missing from GA4 and on a different day in Google Ads, and all three are working as designed. Loomer says he expects around 10-15% of his Meta conversions to be view-through, which GA4 doesn’t credit to Meta because there was no click.
What I found in 50 live accounts
I wanted to know how much of the mismatch starts inside Google Ads itself, before you blend anything. So I pulled every enabled conversion action from the 50 Google Ads accounts I can see that spent $100 or more between 4 August and 1 November 2026. They’re mostly local home and leisure retailers, and between them they spent $592,146 in those 90 days.
Here’s what each one means for a report:
- Mixed attribution models (42 accounts). Some primary actions use last click and some use data-driven. The “Conversions” column adds them together as if they were counted the same way.
- Mixed click windows (44 accounts). A form fill might count for 30 days after a click and a phone call for 90. Change the date range in a report and the two move differently.
- Conversions that aren’t leads (16 accounts). Store visits, directions and page views sat in the same column as form fills. In those 16 accounts, a quarter or more of the “conversions” a client would see weren’t a person asking to buy.
- The same lead set up twice (9 accounts). A GA4 import and a Google Ads tag, both primary, both for the same lead type.
That last one matches what Aaron Rovner, founder of SaaS Hero, wrote about wrong conversion counts: a gap of 2x or 3x between the platform and the CRM is almost always double counting or a broken link. I agree, with one change. In my 50 accounts the double setup was common (9 of them) but it only fired twice in 3. The bigger, quieter problem was micro-conversions sitting in the main column (16 accounts), because that never shows up as a sudden jump. It just makes every month look better than it was.
If you only fix one thing this week, open the conversions summary in each client account and make sure the primary actions are the leads the client actually counts. My conversion tracking guide walks through that check, and calls deserve their own look (in 44 accounts I checked for calls, calls were 44% of conversions in the median one).
The fix: connect the data instead of copying it
Cleaning up conversion settings stops the numbers being wrong. It doesn’t stop the copying and pasting, and that’s what eats the hours.
The fix is boring and it works:
- Pull every source into one place automatically.
- Refresh it on a schedule, so the report is never older than a day.
- Blend it into one dataset where “lead”, “spend” and “cost per lead” mean one thing for every channel.
This is the job of a data connector. Coupler.io is a reporting automation platform for business teams. It pulls data from Google Ads, Meta, LinkedIn, GA4 and 400+ other sources on a schedule, blends them, and sends the result to Looker Studio, Google Sheets, Power BI, BigQuery or an AI tool. You can see it at www.coupler.io.
I’ve used Coupler.io and liked it, and it costs less than most of the tools in my PPC reporting tools list, where it’s already #4. Databox starts at $64 a month, Opteo at $129 and Funnel.io at $300. The prices and screenshots below are from their pricing page and the PPC multi-channel dashboard template, both opened on 3 November 2026.
Their pricing is per connected account, and an account is one ad, analytics or CRM account. That’s the number to work out first:
| Plan | Price | Accounts | Refresh | Fits |
|---|---|---|---|---|
| Free | $0 | 1 | Manual | Trying it on one account |
| Starter | $24/mo | 3 | Daily | 1 client with 3 sources |
| Active | $99/mo | 15 | Daily | Up to 5 clients with 3 sources each |
| Pro | $199/mo | 50 | Hourly | Up to 16 clients, with client workspaces |
| Agency | Talk to sales | Custom | Every 15 min | Past 50 accounts |
Prices are per month, billed annually. An agency with 10 clients on Google Ads, Meta and GA4 has 30 accounts, so it needs Pro at $199 a month. That’s the plan that adds team and client workspaces too, so each client’s data stays separate.
The free alternative is Looker Studio on its own. Google’s blending documentation caps a blend at 5 data sources, and you still need a way to get Meta data in. That’s fine for a handful of clients. Past that, you’re maintaining connectors instead of reading reports.
Where AI helps in reporting, and where it doesn’t
AI is good at three reporting jobs:
- Summaries. Turning 40 rows into the 3 sentences a client will actually read.
- Anomalies. Spotting the campaign where cost per lead doubled on Tuesday.
- Commentary. A first draft of “what happened and what we’ll do” that an account manager edits.
But it only reads what you give it. Coupler.io has an AI Insights panel on its dashboards, and their page says it delivers trends, 5-6 key findings and 3 recommendations.
I clicked it on the demo PPC template. The first recommendation moved budget out of Google Ads campaigns because of their $2.17 CPC and toward Bing at $0.56. That’s a sensible read of the data on the screen. But that template has no conversion column, so the AI could only judge channels on clicks. Put the same AI on a dashboard where 25% of “conversions” are store visits, and it will happily tell your client the account is improving.
So the order matters. Clean conversion settings first, then connected data, then AI on top. I wrote up how I build the AI part in AI-powered PPC client reports.
Traditional reports vs AI reports
Neither one wins outright. They do different jobs.
| Dashboard (Looker Studio, Power BI) | Spreadsheet | AI narrative report | |
|---|---|---|---|
| Best at | Live numbers the client can filter | Custom maths and one-off analysis | Explaining what changed and why |
| Weak at | Saying what the numbers mean | Staying current | Being checked line by line |
| Breaks when | A connector stops refreshing | Someone pastes over a formula | The data underneath is wrong |
| Use it for | Weekly self-serve checks | Budget planning and audits | The monthly summary email |
What I’d run for most agency clients is a live dashboard they can open any time, plus a short AI-drafted summary each month that a person reads and edits before it goes out. The dashboard is the evidence. The summary is the story. (And if a client never opens the dashboard, that tells you the summary is the only part that matters to them.)
How to roll it out client by client
Don’t switch every client in one week. Do one, fix what breaks, then copy it.
- Audit the sources. List every platform and account per client. Note the conversion actions, which are primary, and their windows.
- Standardise names and metrics. One naming pattern for campaigns, and one written definition per metric. Use the template below.
- Automate the data flows. Connect each account once, set the refresh, and blend into one table per client.
- Pick the output. Looker Studio for clients who like to click around, Sheets for clients who live in spreadsheets, an AI summary for clients who only read email.
- Roll out client by client. Run the new report next to the old one for a month. When the numbers match (or you can explain every gap), switch.
Metric definitions sheet (copy into a Google Sheet)
Metric | Definition | Google Ads source | Meta source | GA4 source | Window | Notes
Spend | Money billed by the platform, in the client's currency | Cost | Amount spent | - | n/a | Check currency per account
Lead | A form fill, call over 60 seconds or booking | Primary lead actions only | Leads (website) | generate_lead key event | 30-day click | No store visits, directions or page views
Cost per lead | Spend / Lead | Calculated | Calculated | - | Same as Lead | Never mix windows in one number
Qualified lead | A lead the client marks as sales-ready | Imported from CRM | Imported from CRM | - | n/a | Monthly CRM import
Campaign name | Client_Channel_Goal_Geo_Date | Campaign | Campaign | Session campaign | n/a | Example: ACME_GADS_LEADS_US_2026-11 If onboarding a new client is where this usually goes wrong, my client onboarding checklist puts the source audit in week one. And if reporting is the reason you think you need another hire, read how I’d scale an agency without hiring first.
- What should a multi-channel agency report include?
- Spend, leads and cost per lead per channel, all using one written definition of a lead, plus a short note on what changed. Put the attribution window next to any number that comes from a platform, so the client knows a Meta lead and a GA4 lead were counted differently.
- Why don't Google Ads and GA4 conversions match?
- Different windows and credit rules, and different dates. Google Ads reports a conversion on the date of the ad click, while GA4 reports it on the date the key event happened, so a click on 30 October that converts on 2 November sits in different months in each tool.
- Can Looker Studio combine Google Ads and Meta Ads data for free?
- Google Ads and GA4 connect for free. Meta Ads needs a partner connector, and most of them are paid. A blend in Looker Studio also tops out at 5 data sources, which is fine for one client and painful across twenty.
- How many connected accounts does an agency need in Coupler.io?
- Count every ad, analytics and CRM account across your clients. A client on Google Ads, Meta, LinkedIn and GA4 is 4 accounts, so 12 clients like that is 48 accounts, just under the 50 on the Pro plan.
- Should an AI write the whole client report?
- Let it draft the summary and flag anomalies, then have the account manager read every line before it is sent. An AI summary on top of a conversion column full of page views will describe growth that did not happen.
Our AI Tools








