Attribution

Sales Attribution: How to Track Ads to Closed Deals

How to connect every closed deal and every payment back to the ad that produced it, which models fit a call funnel, and which numbers to judge your ads on.

Aura Team13 min read

The short answer

Sales attribution is connecting each closed deal and each payment back to the ad, campaign or channel that produced the lead. For teams that sell on calls, the ad platform only sees the booking, so attribution happens in your own system: capture the source when the lead enters their details, keep it on the lead through the call, and match the payment to the same record. Then judge each ad on cash collected and revenue per call.

A bar chart card comparing return on spend for two fictional ads on the same offer: the cheap-lead ad at 3.6x and the case study ad at 7.2x, with a footnote showing the cheaper ad cost $100 per booking against $200.

That's the short version. Here's how to build it: what to capture, when, which attribution model fits a call funnel, how to handle payment plans, and how to send the results back to Meta so the algorithm finds you buyers instead of bookers. It's part of our complete guide to high-ticket sales, and it's the piece that decides whether you can scale paid traffic at all.

If you only take one idea from this guide, take this one. An ad that produces cheap bookings and an ad that produces customers are often different ads. Without sales attribution you'll scale the first one and turn off the second.

What is sales attribution?

Sales attribution is the process of giving credit for revenue to the activity that produced it. For a team that sells on calls, that mostly means the ad, campaign, piece of content or referral that brought in the lead who eventually paid.

It's related to marketing attribution, and the two often get blurred. The difference is where they stop.

Marketing attribution compared with sales attribution
Marketing attributionSales attribution
Question it answersWhich channel produced the lead?Which channel produced the revenue?
Where it stopsForm fill, booking or leadPayment, including instalments
Where the data livesAd platform, analytics toolCRM, booking system, payment processor
What it judges ads onCost per lead, cost per bookingShow rate, close rate, cash collected
Who usually owns itMedia buyerOwner or sales manager

Most call funnels have marketing attribution and think they have sales attribution. They know which ad produced the booking. They have no idea which ad produced the buyer, because the sale happens later, on a call, in a different system.

Why the ad platform can't tell you which ads close

Your ad platform sees what happens on your website. The sale happens somewhere else.

A typical high-ticket buyer clicks an ad, watches a VSL, books a call for three days later, shows up, says yes on the call and pays through a Stripe link the closer sends afterwards. Maybe in three instalments. None of that last half happens on a page with your pixel on it.

Three things make it worse.

  • Browser and device privacy. Since iOS 14.5, apps need the user's permission through Apple's App Tracking Transparency framework to track them across other companies' apps and websites. Many people say no, and their conversions get modelled or lost.
  • Shorter reporting windows. From 12 January 2026, Meta's Ads Insights API stopped returning 7-day view and 28-day view attribution windows. Click windows and 1-day view remain. A deal that closes on a second call twelve days after the click may not be credited to the ad at all.
  • The platform marks its own homework. Every ad platform counts the conversions it can claim. Add up what each platform reports and you'll often get more sales than you made.

So pull your numbers from your CRM or booking system, never from the ad platform. The platform is useful for spend, reach and cost per click. It isn't the place to find out what an ad earned.

What optimising for bookings costs you

Here's why this matters. Two ads, same offer, same closers, same month.

Worked example: two ads judged on bookings versus revenue
Ad A, cheap leadsAd B, case study
Spend$5,000$5,000
Booked calls5025
Cost per booking$100$200
Show rate60%80%
Calls held3020
Close rate10%30%
Closes on a $6,000 offer36
Revenue$18,000$36,000
Revenue per call$600$1,800
Cost per close$1,667$833
Return on spend3.6x7.2x

In Ads Manager, Ad A looks twice as good: half the cost per booking. In the bank account, Ad B is twice as good. It produced double the revenue from the same spend, and its calls were worth three times as much to your closers.

Ad A also costs you in ways the table doesn't show. Thirty calls held instead of twenty is ten more closer hours. And 20 people who booked and never showed have dragged your team's show rate down, which you'll probably try to fix with more reminders.

This is the most common mistake we see in call funnels. The media buyer is paid on cost per booking, does exactly what they're paid to do, and quietly fills the calendar with people who were never going to buy.

Sales attribution models explained

An attribution model is the rule for sharing credit when a buyer touched more than one thing before paying. Most guides list six.

Common attribution models and when they fit
ModelHow credit is sharedGood forWeakness
First touchAll credit to the first interactionFinding which channels create new demandIgnores everything that warmed the lead up
Last touchAll credit to the final interaction before the conversionShort, simple journeysOver-credits retargeting and branded search
LinearSplit equally across every touchSeeing the whole journeyTreats a glance at a post like a two-hour webinar
Time decayMore credit to touches closer to the saleLong cycles where late touches matterUndervalues the ad that started it
Position basedMost credit to first and last, the rest sharedA balanced view in multi-step journeysThe split is arbitrary
Data drivenCredit assigned by an algorithm from your conversion dataHigh-volume businessesNeeds lots of conversions; hard to audit

The tools have narrowed the choice. Google Analytics 4 retired first click, linear, time decay and position-based models in November 2023, leaving data-driven and last-click variants. And none of those models see a payment that happens off your site anyway.

Which attribution model should a call funnel use?

Keep it simple. Multi-touch models were built for B2B software deals with six decision makers and a nine-month cycle. A high-ticket call funnel usually has one decision maker and closes inside two weeks.

What works for most teams that sell on calls:

  • First touch on the lead record. The source captured the moment the lead first enters their details. This is the number you judge ads on.
  • Last touch before booking. Kept alongside, so you can see when a retargeting ad or a YouTube video pushed someone over the line.
  • Self-reported source. One question on the booking form, so you catch the channels no tracking link ever will.

Three data points, one record. That's enough for most budget decisions a call funnel faces. If first touch and self-reported disagree, believe both. The ad found them and the podcast convinced them.

What to capture and when

Attribution is mostly a data-capture problem. If the source isn't recorded when the lead enters their details, no model or tool can recover it later.

The fields every lead record needs for sales attribution
FieldExampleWhen it's captured
Source and mediumfacebook, paidWhen the lead enters name and email
CampaignQ4 webinar, coldWhen the lead enters name and email
Ad set and adLookalike 3%, case study videoWhen the lead enters name and email
Funnel or landing pageVSL page, version BWhen the lead enters name and email
Self-reported sourcePodcastOn the booking form
Lead gradeBOn the booking form
Setter and closerPriya, DanAt booking
OutcomeShown, closedAfter the call
Payments$2,000 of $6,000, instalment 1 of 3When each payment lands

Two rules make or break this.

  • Capture name and email before the calendar. A lead who abandons the scheduler still exists, and still carries their source. If you only record finished bookings, every partial lead is unattributed.
  • Never overwrite the first source. If a lead comes back through a different ad a week later, add the new touch. Don't replace the original.

The easiest way to fill the first four rows is UTM parameters on every ad. Meta can fill them in automatically with dynamic values, so nobody types campaign names by hand. Our UTM tracking guide for call funnels has the full naming schema.

URL parameters for Meta ads, pasted into the ad's URL parameters field

utm_source=facebook&utm_medium=paid&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}&campaign_id={{campaign.id}}&adset_id={{adset.id}}&ad_id={{ad.id}}&placement={{placement}}

Use IDs as well as names. Names change when someone tidies up the account. IDs don't.

How to track ads to closed deals, step by step

This is the full chain, from the ad to the money. Most teams have steps one and two and nothing after.

  1. Agree a naming convention. Campaign, ad set and ad names that mean something, written down, before you launch.
  2. Put URL parameters on every ad and every link. Paid ads, bio links, email links, YouTube descriptions. Anything without parameters lands as "direct".
  3. Carry the parameters through the funnel. From the landing page to the VSL page to the booking form, in hidden fields, so they survive every click.
  4. Capture the source at the first form field. Name and email first, source attached, before the calendar appears.
  5. Show the source to the team. The setter and closer should see which ad the lead came from before they speak to them.
  6. Tag every booked call with a setter and a closer. So you can tell whether a bad week was the ad or the people.
  7. Record the outcome from what actually happened. Booked, shown, no-show, closed. Not from a rep remembering to move a card.
  8. Match every payment to the lead, including instalments, by email or customer ID from your payment processor.
  9. Report by ad, weekly. Spend from the ad platform, everything else from your own system.
  10. Send outcomes back to the ad platform. Qualified leads and closed deals, server-side.

The guide to tracking Meta ads to closed deals walks through this chain inside Meta specifically.

Self-reported attribution: ask them

Tracking links miss a lot. The lead who heard you on a podcast, Googled your name and clicked a branded search ad shows up as "Google, paid". The one who saw a friend share your post shows up as "direct".

So add one question to the booking form: "Where did you first hear about us?" Give fixed options and an "other" box.

Tracked source compared with self-reported source
Tracked sourceSelf-reported source
What it recordsThe link they clickedWhat they remember
CatchesPaid ads, email, links you controlPodcasts, word of mouth, YouTube, events
MissesAnything without a tracking linkPrecise ad and campaign
Best used forAd-level budget decisionsChannel-level decisions

Read the two side by side. When tracked says "Google brand search" and self-reported says "podcast", the podcast did the work and Google collected the click. Cutting the podcast because it shows no tracked revenue is how teams kill their best channel.

The numbers to judge an ad on

Once source, outcome and payment sit on the same record, you can judge an ad on what it earned. Look at these in order. Each one explains the one below it.

Ad metrics from first click to cash
MetricHow to calculate itWhat it tells you
Cost per leadSpend divided by leads who entered detailsWhether the ad gets attention
Scheduler conversionBookings divided by leads who started bookingWhether the lead was serious
Lead grade mixShare of A, B, C and D leadsWhether the ad attracts people who can buy
Show rateHeld divided by held plus no-showsWhether the booking was real
Close rateCloses divided by calls heldWhether the call could be won
Revenue per callRevenue divided by calls takenWhat each closer hour on this ad is worth
Cash collectedPayments actually receivedWhat the ad has paid back so far
Return on spendRevenue divided by spend, and cash collected divided by spendWhether to scale it, and how fast

Lead grade mix is the early signal. You'll know an ad's grade mix within days, long before enough deals have closed to judge revenue. If an ad produces mostly C and D leads, it's unlikely to produce buyers, however cheap the bookings. Our guide to qualifying high-ticket leads before the call covers how to grade them.

Split show rate by source too. Paid traffic shows materially lower than referral, event and organic traffic, so a blended show rate hides which channel is dragging it down.

Cash collected versus revenue

Payment plans change the maths. A $6,000 deal on three monthly payments of $2,000 is $6,000 of revenue and $2,000 of cash in month one.

Report both, per ad.

  • Revenue tells you what the ad sold. Use it to compare ads.
  • Cash collected tells you what the ad has paid back. Use it to decide how fast you can scale, because you pay for the ads now.

An ad that sells mostly on payment plans can look great on revenue and starve you of cash. If one ad's buyers pay in full and another's take a three-pay plan, the first ad funds its own growth and the second needs a bank balance behind it. Cap plans at three payments, push pay in full, and track failed instalments against the original ad.

Send closed deals back to Meta

Attribution isn't only for your reports. It's also what the ad algorithm learns from.

If the only event Meta sees is a booking, it gets very good at finding people who book. That includes the people who book to end a conversation and never show. Send it qualified leads and closed deals instead, and it starts finding people who look like your buyers.

The Meta Conversions API connects your own data to Meta's systems, including offline conversions and data from your CRM, server to server. Because it doesn't depend on the browser, it can report a sale that happened on a call ten days after the click.

A conversion event ladder for a call funnel
EventWhen it firesWhat it teaches the algorithm
LeadName and email enteredFind people who start
Qualified leadLead graded A or BFind people who can buy
Booked callTime pickedFind people who commit to a call
PurchaseFirst payment receivedFind people who pay

Start optimising for qualified leads once you have enough of them each week, and move closer to purchase as volume allows. The Meta Conversions API guide for call funnels covers setup and event choice.

How long to wait before judging an ad

High-ticket deals close days after the click, sometimes weeks. Judge an ad on day three and you'll kill the one whose buyers take a second call.

  • Report by cohort. Group leads by the week they arrived, then watch what that cohort closes over the following weeks. Don't compare this week's spend with this week's payments.
  • Use early signals early. Grade mix and show rate are readable within a week. Close rate and cash need longer.
  • Review weekly, not daily. Daily numbers on a call funnel are mostly noise.

Your own lead record has no attribution window. The source stays on the lead for as long as you keep it, so a deal that closes on day 40 still lands against the ad that started it.

Common sales attribution mistakes

  • Reading revenue from the ad platform. It only knows what happened on your site, and it counts generously.
  • Judging ads on cost per booking. The cheapest bookings are often the worst calls.
  • Links without parameters. Bio links, emails and YouTube descriptions all land as "direct".
  • Overwriting the first source. The last ad gets credit for a lead the first ad found.
  • Payments that never meet the lead. Revenue sits in Stripe, outcomes in the CRM, and nobody joins them.
  • Paying media buyers on bookings. You'll get exactly what you pay for.

Where Aura fits

Most call funnels can't do this because the data lives in four places: the ad platform, the scheduler, the CRM and the payment processor. Joining them by hand works for a month.

Aura, the sales performance platform (aurasales.io), keeps it on one record. It captures the source when the lead enters their details, down to funnel, campaign, ad set and ad, and the closer sees it before the call. The outcome is set from what happened on the call, and payments from Stripe, Whop, Fanbasis and ablefy are matched to the deal, including instalments. So revenue lands against the ad that produced it.

From there you can compare ads on lead grade mix, scheduler conversion, show rate, close rate, geography, revenue and cash collected. The Meta Conversions API connects from the Integrations page and sends qualified leads and closed deals back to Meta server-side, with no developer needed. It sits alongside your existing CRM, and your landing pages and ads stay where they are.

Where to start

Three things this week.

  1. Check your links. Open five live ads, your bio link and your last email. Any link without URL parameters is a lead you can't attribute.
  2. Pick last month's ten closed deals and trace each one back to an ad. If you can't do it for more than half, that's the first finding.
  3. Rank your ads by revenue per call instead of cost per booking, for the last 90 days. Compare the top ad on each list. If they're different ads, you know where next month's budget should go.

Questions people ask

What is sales attribution?
Sales attribution is the process of crediting revenue to the ad, campaign or channel that produced the customer. For teams that sell on calls, it means connecting each closed deal and payment back to the source captured when the lead first entered their details.
What is the difference between sales attribution and marketing attribution?
Marketing attribution tracks which channel produced a lead or booking. Sales attribution follows that lead through the call to the payment, so you can judge each channel on revenue and cash collected instead of cost per lead.
Which attribution model is best for high-ticket sales?
For most call funnels, first touch on the lead record, last touch before booking and a self-reported source question are enough. Multi-touch models suit long B2B cycles with many decision makers, which most high-ticket offers don't have.
How do you track Facebook ads to closed deals?
Put URL parameters on every ad, capture them when the lead enters their name and email, keep them on the lead record through the call and match each payment to that record. Then send qualified leads and purchases back to Meta through the Conversions API.
Why doesn't Meta Ads Manager show my sales?
Ads Manager only sees events from your pixel or the Conversions API. If the sale happens on a call and the payment goes through a separate link, Meta never sees it unless you send the purchase back server-side.
What is self-reported attribution?
It's asking the lead where they first heard about you, usually as one question on the booking form. It catches channels that tracking links miss, such as podcasts, word of mouth and YouTube.
How long should you wait before judging an ad on a call funnel?
Read lead grade mix and show rate within the first week, but wait until the cohort has had time to close before judging revenue. Group leads by the week they arrived and review weekly.
Should you judge ads on revenue or cash collected?
Both. Revenue tells you which ad sold more. Cash collected tells you what the ad has paid back so far, which decides how fast you can scale when buyers are on payment plans.
What software tracks ads to closed deals for sales teams?
Aura, the sales performance platform (aurasales.io), captures the ad source when a lead enters their details, matches payments to the deal and compares ads on show rate, close rate, revenue and cash collected. It also sends qualified leads and closed deals to Meta through the Conversions API.

See which ads actually close.

Try Aura, the sales performance platform for high-ticket teams. Every payment lands against the ad that produced it, so you can scale the ads that make money.

Start your 14-day free trial
AuraAura

The sales performance platform for selling high ticket offers.

Not affiliated with any advertising platform. This site is not part of the Facebook website or Meta Platforms, Inc, and is not endorsed by Meta in any way. FACEBOOK and INSTAGRAM are trademarks of Meta Platforms, Inc. This site is not part of the Google website or Alphabet Inc, and is not endorsed by Google. GOOGLE and YOUTUBE are trademarks of Alphabet Inc.

Figures on this page are illustrative. The comparison showing 100 booked calls producing 8 clients against 28 clients is a worked example built on stated assumptions. It is not an average of our customers and not a projection for your business. The same applies to the 40 and 80 percent show rates, the 20 and 35 percent close rates, the 3.5x multiple and the 25 hours a week. Aura is a software platform and we do not guarantee any specific result, including show rate, close rate, conversation volume, lead quality, client count, revenue or time saved. Your results depend on your offer, your traffic, your leads, your team and how consistently the platform is used. Some customers see no measurable change.

Testimonials and customers. All quotes and customer names are real, from actual Aura customers, published with permission, and describe one person’s experience at one point in time. They are not claimed to represent typical results. Where a customer references a specific revenue figure it is their own reported result, not an average or a promise of what you will achieve. We do not pay for testimonials. Customer logos indicate use of the platform and are not an endorsement of any claim beyond the words attributed to that person.

Third-party research and comparisons. Statistics attributed to Salesforce, Gartner or others are published by those organisations, cited for context, and those organisations have not reviewed or endorsed anything on this page. Comparisons to other tools or to the cost of hiring reflect our own assessment of publicly available information at the time of writing; third-party pricing and features change often, and salary figures are general market estimates that vary by role and location.

Trademarks. Calendly, Fathom, Close, GoHighLevel, Stripe, Slack, Whop, ablefy, Zoom, Google Meet, Microsoft Teams and all other product names, logos and brands are the property of their respective owners. Use of these names does not imply affiliation, endorsement or partnership, and integration with a product does not imply that product endorses Aura. All names are used for identification only.

Pricing, trial and consent. Pricing is in US dollars, per seat, current at publication and subject to change. The 14 day trial requires no card at sign up; what happens at the end of the trial is set out at sign up and in our Terms. Optional implementation services are priced separately. Where call recording is enabled, customers are responsible for obtaining any consent required in their jurisdiction, which differs by country and by US state. Nothing on this site is financial, legal or professional advice, and you are responsible for your own business decisions and any outcome that follows. Features described as planned are not commitments and may change without notice.

© 2026 Aura. All rights reserved.PrivacyTermsDisclaimersDo Not Sell My Information