Marketing data belongs next to deal data
Which channel produced the most leads is one question. Which channel produced the deals that closed is another. Only the second tells you where to spend next.

The short answer
- Lead-level attribution shows which channel generated interest. It does not show which channel's leads turned into closed revenue.
- The revenue question joins marketing spend and source data with the deal's full path through the pipeline, not only the moment a lead was created.
- That join usually means exporting from an ad platform and matching by hand against the CRM, unless both data sets already live in the same place.
- SalesCrew keeps GA4, GSC, Bing, Google Ads, Meta Ads and PostHog data in the same database as leads and deals. Which channel a closed deal came from is a query joining spend and stage.
Two different questions that get conflated
"Which channel is working" has two answers, depending on which end of the funnel you look at. Lead volume by channel answers "which channel generates interest". Closed revenue by channel answers "which channel generates customers". These are not the same number. A channel can rank very differently on each. One channel produces many leads that rarely convert. Another produces fewer leads that convert at a much higher rate. Compared at the revenue end, the second channel wins.
Judging channels by lead volume alone favors the channels that are good at volume. It punishes the channels that are good at qualified interest. That is the opposite of what a budget decision should optimize for. Teams do it anyway, because lead volume is the number that is easy to see inside the ad platform's own dashboard.
Why the harder question needs data from two different places
"Which channel produced the deals that closed" needs two things joined together. The first is which channel or campaign a lead came from. The second is what happened to that lead after it entered the pipeline: advanced, stalled, or closed. The first piece lives in an ad platform or an analytics tool, such as GA4, Google Ads or Meta Ads. Each one tracks its own slice of where traffic came from. The second piece lives in a CRM, which tracks stage, forecast and outcome. The CRM usually has no idea which ad campaign the contact came from.
When those two data sets live in separate tools, connecting them means exporting from one side and matching records by hand or with a spreadsheet formula. That work repeats every time someone wants an updated answer. It is slow enough that most teams do it monthly at best. It is fragile enough that a naming mismatch between a campaign ID and a CRM field can quietly break the join. Nobody notices until the numbers look wrong.
What changes when spend data and deal data share a database
SalesCrew's marketing module pulls GA4, Google Search Console, Bing, Google Ads, Meta Ads and PostHog data into the same database that holds leads and deals. A set of collectors keeps the marketing data current, rather than exported once and left to go stale. Because both data sets sit in one place, joining spend or source data to a deal's outcome is a normal query. It is not an export-and-match exercise repeated by hand.
The channel economics view is built on that join. It lets a team ask the revenue-side question routinely instead of occasionally. Not only "which channel brought the most leads this month", but "which channel's leads end up as closed deals". That is the number that should drive where budget goes next. Getting it needs no new integration project and no recurring export. The data is already in one place. Someone only has to ask.
Questions
- Isn't lead-level attribution enough to judge a channel?
- Lead volume shows that a channel generates interest. It does not show whether that interest turns into revenue. Two channels can produce the same number of leads and very different numbers of closed deals. Only deal-stage data reveals which is which.
- Why does this usually require exporting data between tools instead of just checking two dashboards?
- Attributing a closed deal to a channel joins a record that started in an ad platform with a record that ended in a CRM pipeline. Most ad platforms and CRMs cannot read each other's data directly. So someone exports from both and matches by hand.
- Does SalesCrew calculate return on ad spend automatically?
- SalesCrew's marketing module keeps GA4, GSC, Bing, Google Ads, Meta Ads and PostHog data in the same database as leads and deals, with channel economics as a queryable comparison. The return-on-spend figure still depends on what a team counts as a conversion and over what window. The data supports that judgment; the platform does not make it for you.