Attribution & Analytics

Funnel-Level Attribution: Reporting by Landing Site, Not Just Campaign

Campaign reports hide which funnel actually converts. Learn how to attribute leads, calls and revenue to the landing site people entered through, and act on it.


Funnel attribution means crediting leads, booked calls and revenue to the funnel a person entered through: the landing site, the VSL page, the webinar registration, the quiz. Most ad reporting doesn’t do that. It credits campaigns, ad sets and ads, and quietly assumes the page behind the ad doesn’t matter. Anyone who has run two funnels on the same offer knows that assumption is wrong. The same ad sent to a long-form application page and to a short opt-in with a VSL can produce wildly different businesses: different lead volume, different show rates, different buyers.

Once you’re running more than one funnel, campaign-only reporting starts to mislead you. A campaign looks average because it’s averaging a great funnel and a weak one. A funnel looks broken because its traffic comes from a cold audience that would struggle anywhere. This post covers how to set up reporting by landing site, the traps that make funnel numbers unreliable, and how to read funnel and campaign data together so you move budget for the right reason.

Why campaign reporting isn’t enough

Campaign structure reflects how you buy traffic. Funnel structure reflects how you convert it. They’re different axes, and collapsing them into one hides most of the interesting decisions.

Consider the common setups that break campaign-only reporting:

  • One campaign, multiple destinations. You test a VSL funnel and an application funnel in the same campaign, with ads split between them. Campaign ROAS blends both.
  • One funnel, many traffic sources. Your webinar funnel gets Meta, Google, YouTube and email traffic. Campaign reports show four slices of the funnel’s results but never the funnel’s total.
  • Organic and paid entering the same funnel. Podcast listeners and ad clickers both land on the same application page. Without a funnel view, you can’t see the funnel’s true conversion rate across all traffic.
  • Funnel changes mid-campaign. You rebuild the landing page halfway through the month. The campaign’s numbers change and you can’t tell whether the ads or the page did it.

The fix isn’t to abandon campaign reporting. It’s to add a second dimension: which funnel did this lead first land in, and what happened to them after.

Define your funnels by where people land

A funnel, for reporting purposes, is a set of entry points. The simplest and most robust definition is the landing site: the domain, subdomain or path where a visitor first arrives.

Practical ways to draw the lines:

Funnel Defined by Example
Application funnel Path on main domain yoursite.com/apply
VSL funnel Separate subdomain watch.yoursite.com
Webinar funnel Separate domain or page builder yourwebinar.com
Lead magnet funnel Path yoursite.com/guide
Low-ticket front end Checkout domain offer.yoursite.com

A few rules that save pain later:

  1. Define by first landing, not by conversion page. If someone lands on the VSL funnel and later books through the application page, they’re a VSL-funnel lead. The funnel that earned their attention gets the credit.
  2. Keep definitions stable. Changing what counts as “the VSL funnel” halfway through a quarter makes trends meaningless. Version the funnel instead (VSL v1, VSL v2) when the page changes substantially.
  3. Include a “no funnel” bucket. Leads from direct bookings, referrals and DMs who never landed on a defined funnel are real, and hiding them inflates your funnel conversion rates.
  4. Don’t make funnels for every A/B variant. Variants are a page-level test. Funnels are distinct paths a person takes.

Make sure the session survives the funnel

Funnel attribution only works if the visitor’s session, with its UTMs and ad click IDs, holds from the landing page to the conversion. This is where most funnel reporting quietly breaks.

The usual culprits:

  • Subdomain hops. The opt-in is on www., the application on apply., the confirmation on go. If your tracking cookie is scoped to one subdomain, the conversion on the next one arrives without a source.
  • Third-party forms and calendars. An embedded Typeform or Calendly widget creates the lead or booking inside another tool, which knows nothing about the ad click unless you pass it through.
  • Checkout redirects. Payment pages on a different domain lose UTMs unless they’re passed in the URL.
  • Links shared by hand. Someone copies the application link into a DM. The person who clicks it never saw the ad.

In Callix, the pixel keeps one session across your subdomains, so a funnel that moves from an application on www. to a confirmation on go. keeps the ad and UTMs from the first page. Calendly bookings and Typeform applications on pages with the pixel get passed the visitor’s session too (Typeform needs a hidden field named callix_sid), so the call or application lands on the visit and ad that brought it in. Whatever tool you use, test each funnel end to end: click a tagged link, go through every step, and check that the lead, booking and sale all carry the original source. Our UTM setup guide covers the tagging side.

The funnel report you actually want

Once funnels are defined and sessions hold, build a table with one row per funnel and the full chain of outcomes across:

Funnel Leads Booked calls Book rate Shows Show rate Sales Close rate (shown) Revenue Revenue per lead
Application 420 168 40% 126 75% 25 20% $175,000 $417
VSL 1,100 220 20% 143 65% 21 15% $147,000 $134
Webinar 800 120 15% 72 60% 14 19% $98,000 $123
No funnel 90 60 67% 51 85% 15 29% $105,000 $1,167

These numbers are illustrative, but the pattern is typical. The VSL funnel produces the most leads and looks like the volume winner. The application funnel produces fewer leads but three times the revenue per lead, because the application itself filters people. The “no funnel” row (referrals, DMs, direct bookings) is small and extremely valuable, which is a good reminder not to judge your marketing only by paid funnels.

Revenue per lead is the column that makes the table useful for ads. If you know a VSL lead is worth $134 and an application lead $417, you know how much you can afford to pay for each, and you can stop comparing their cost per lead as if they were the same thing.

Read funnel and campaign data together

The real insight comes from crossing the two dimensions. Filter your campaign or ad table to one funnel and you see which ads work for that funnel specifically. Filter your funnel table to one campaign and you see whether a campaign’s problem is its audience or its destination.

In Callix, a table view of campaigns, ad sets or ads filtered to a funnel lists only the ads that brought someone into that funnel, and its leads, bookings, events and site visits count only that funnel. Spend and clicks stay each ad’s full numbers from the ad platform, which is worth remembering: if an ad sends traffic to two funnels, its spend isn’t split between them. The same funnel filter is available on every CRM tab, so you can see only the leads, calls, dials or sales that first landed in a given funnel, plus a “No funnel” option for the ones that landed nowhere you’ve defined. Funnels are set up under Tracking → Funnels, and you can also split dashboard reporting by landing site.

Three questions this crossed view answers:

  1. Is this ad good, or is it just pointed at a good funnel? An ad with a strong close rate in the application funnel and a weak one in the VSL funnel is fine; the VSL funnel is the variable.
  2. Is this funnel bad, or is it getting bad traffic? A webinar funnel that converts well on email traffic and badly on cold Meta traffic may need a different ad angle, not a rebuilt page.
  3. Which funnel should a new campaign point at? Look at revenue per lead by funnel for similar audiences, not at blended averages.

Funnel-specific conversion events

If you send conversion events back to Meta or Google Ads, funnels add a wrinkle. A “qualified call” from the application funnel and one from the VSL funnel may be worth different amounts, and lumping them into one event tells the algorithm they’re equal.

Two approaches:

  • One event per funnel. Send “Qualified Call - Application” and “Qualified Call - VSL” as separate events, and optimize each campaign on its own funnel’s event.
  • One event with funnel-specific values. Send the same event with a value reflecting that funnel’s revenue per qualified call.

Callix’s conversion events have a Lead’s funnel condition under Logic and Value, so you can send a conversion only for leads who came in through chosen funnels, or exclude them. That’s how you’d set up one qualified-call event per funnel without building separate tracking for each. For background on why the signal you send matters, see pixel conditioning explained.

Common mistakes with funnel reporting

Crediting the conversion page instead of the landing page. Every lead “comes from” the booking page if you define funnels by conversion. That tells you nothing.

Judging funnels on too little data. A funnel with 40 leads and 3 sales can swing from great to terrible on one deal. For high-ticket offers, wait for at least a few dozen shown calls per funnel before drawing conclusions about close rate.

Ignoring lag. The webinar funnel might take three weeks to convert while the application funnel converts in five days. Compare cohorts by lead date, not sales by sale date, or the slower funnel will always look worse this month.

Forgetting spend is shared. If one ad set feeds two funnels, you can’t calculate a clean ROAS per funnel from ad-platform spend. Either split ad sets by destination, or compare funnels on revenue per lead and conversion rates rather than ROAS.

Letting “no funnel” grow unnoticed. A rising no-funnel bucket usually means a new page went live without being added to a funnel definition, or tracking broke on an existing one. Check it monthly.

Where to start

If you’re running more than one landing experience and reporting only by campaign, start small:

  1. List every page or domain where paid or organic traffic first arrives.
  2. Group them into three to six funnels, plus “no funnel.”
  3. Test that the session survives each funnel to the booked call and the sale.
  4. Build the one-row-per-funnel table above for the last 90 days.
  5. Filter your top five campaigns by funnel and see whether the story changes.

It usually does. The most common finding is that a “mediocre” campaign is a great campaign attached to a weaker funnel, and the fastest win is repointing ads, not rewriting them. If you want the broader picture of turning those numbers into revenue reporting, how to tie ad spend to closed-won revenue covers the rest of the chain.

Book a demo