product

Call Attribution From Click to Sale: One Record per Caller

Follow one inbound call from click to sale: what a per-visitor tracking number carries, how the voice agent uses the form, and how callbacks keep their click.

TapQuality Team8 min read
attributionring-poolsvoice-aicall-trackingconversion-tracking

A visitor clicks your ad, types a ZIP code and says they already have Medicare, then taps your number. In many call setups the call reaches the agent as a bare phone number. The screener asks the same questions again. Two days later the sale shows up in a dialer export, and someone has to work out which click it came from.

Each of those steps is a place where the record can break. This piece walks one call through seven hops and shows what has to travel at each one for the sale to land back on the click that earned it. Values in the examples (ZIP 331••, 555 numbers) are illustrative.

A tracking number tells you more when it belongs to one visitor

There are three common ways to put a number on a landing page:

FeatureKnows the campaignKnows the visitorCarries form answersSurvives a callback
One static number
A number per campaign or source
A number leased to one session

A campaign number tells you which campaign or source a caller came through. It can't tell you which visitor dialled, so it can't carry anything that visitor did on the page.

A TapQuality ring pool leases a number to one session while your call button is on screen. One session gets one number; ask again from the same session and you get the same number back. The lease carries:

  • Click IDs: gclid, gbraid, wbraid, fbclid, msclkid and ttclid
  • Campaign: UTM source, medium, campaign, term and content, plus ref
  • Visit: referrer, landing page and device
  • Partner sub-IDs passed in the URL
  • Form answers the visitor has given so far

When the visitor leaves, the lease runs out and the number goes back to the pool for someone else. If leasing fails, the page shows your static fallback number, so a caller never sees a dead line. More on how leases work on the ring pools page.

Only allowlisted form fields reach the voice agent

The answers a visitor typed should be on the call before the agent says hello. They should also be treated as claims, not facts.

TapQuality attaches form answers to the lease. When the call connects, the voice agent receives an allowlisted set of fields as variables, each marked unverified:

  • Medicare status and whether they are new to Medicare
  • Medicaid (yes or no)
  • Chronic condition (yes or no)
  • Age or age range
  • ZIP code
  • First name, last name and email, if your form collects them

The caller's phone number is never sent to the voice agent. The call is matched to the visit on our side.

Agent:  Thanks for calling. I see you're in 331•• and you already
        have Medicare. Is that still right?
Caller: Yes, that's right.

Why "unverified" matters. People mistype ZIP codes, share devices and click through forms quickly. The agent confirms what the form says instead of acting on it. Confirming a form answer is not the same as verifying eligibility, and the screener does not claim to do that.

Screening confirms submitted answers before transfer

With the form already on the call, screening becomes a quick confirmation plus the questions only a conversation can answer. You write the greeting, the questions and the rules for when to transfer.

1

Answer with context

The agent opens knowing the visitor's form answers, marked unverified.

2

Confirm, then ask

It confirms what the form said and asks the questions you wrote, in your order.

3

Check the ZIP

Mid-call, the agent can look up the caller's ZIP and get back the state and county, from the same data your geo targeting uses.

4

Transfer

Qualified callers go to your queue or phone line. The answers are saved on the call record. On EnrollHere queues they reach the floor before the transfer.

5

Retry on failure

If a transfer doesn't connect, it is retried up to two more times, about two seconds apart, before the caller hears an apology.

The record also notes who ended the call, the caller or the buyer, so a buyer hanging up is not mistaken for a caller who lost interest. Details on the voice AI page.

Late dispositions are matched back to the call

Sales rarely arrive while the caller is still on the line. They come from dialers and CRMs hours or days later. If a disposition can't find its call, CPA drifts and bids follow the wrong numbers.

In TapQuality, dispositions arrive through the conversions API, EnrollHere event feeds, email or CSV upload. The ones that match your conversion rules become conversions, and matched sales feed CPA. Each path ties the outcome to its call in its own way: the API takes the call's ID directly, and for EnrollHere a background sweep retries unmatched dispositions from the past 48 hours. Sales uploaded as a CSV are matched to calls within two windows:

Exact match window

30 days

CSV sales matched exactly to the call that earned them

Soft match window

90 days

A looser match for CSV sales that arrive later

Calls that didn't bill carry the reason they didn't, so a missing sale can be told apart from a call that never qualified.

The outcome goes back to the source and to the ad platform

Two parties need to hear about the sale. The traffic source needs it to get paid and to tune its traffic. The ad platform needs it to bid on sales instead of calls.

Postbacks can be scoped so each source hears only about its own billable calls, with the original click ID in your field mapping. Sales also go back to Google Ads and Meta as offline conversions against the original click ID. The Google Ads call conversions guide covers that setup step by step; Google documents the import in its offline conversion help and Meta in its Conversions API docs.

The click ID captured at the first hop is what makes the upload match. Without a number tied to the visitor, or some other link between the call and the visit, the click ID can't reliably follow the call.

Callback recall preserves attribution after number reassignment

People save numbers and call back days later, often after the number has gone to another visitor.

Callback recall

30 days

A returning caller is matched to the session from their earlier call on that number

TapQuality matches a returning caller, by a hashed phone number, to the session from their most recent call on that tracking number within 30 days, even if the number has since been leased to someone else. Attribution follows that earlier visit, so the sale traces back to the ad that earned it. Routing and price follow the pool's current settings, not the ones in place three days ago.

Some state should not travel

A stateful setup needs limits as much as plumbing. These are the ones TapQuality holds today:

  • The phone number stays out of the voice agent. It gets the answers it needs to screen, not the number the caller dialled from.
  • Health questions on the lease are yes/no. Medicaid and chronic condition travel as booleans in the allowlisted fields, never as named conditions. Even booleans deserve care, which is why the list is short.
  • Call outcomes don't change the website. Nothing from the call alters what the site shows a visitor. That would need a compliance review first.
  • Downstream outcomes don't move bids yet. Outcomes your systems send back, such as retention, are stored against the caller and shown in reports, but they don't yet change bidding or routing. The one exception is a caller you already paid for in the last 30 days, whom you can bid down or skip.

Six questions to ask any call vendor

The record has to survive five breaks: the dial, the screen, the transfer, the late disposition and the callback. Put these to any vendor, including us:

  1. Does the number on the page belong to one visitor, or to a whole campaign?
  2. Does what the visitor typed reach the call, and which fields exactly?
  3. Is it marked unverified, so the screener confirms instead of trusting it?
  4. When a disposition arrives late, does it find its call, and how far back?
  5. When someone calls back a week later on a reassigned number, whose visit gets the credit?
  6. Does the sale reach the ad platform and the source with the original click ID?

See how TapQuality answers them on the ring pools and voice AI pages, or book a walkthrough with your own call history.