Skip to content

How attribution works

Attribution is how Call Tracking links a phone call to the website visit that led to it. This page explains what is captured, how numbers are assigned, and how a call is matched to a session, so you can explain any result to a client.

What a session captures

The tracking script starts a session the first time a visitor loads a page with the script. The session records:

  • The landing page: the full URL of the first page viewed, including any query string.
  • The referrer: the page that linked to the landing page, if the browser sent one.
  • UTM parameters from the landing URL: utm_source, utm_medium, utm_campaign, utm_term, utm_content and related tags.
  • Click IDs from the landing URL: gclid, gbraid and wbraid from Google Ads, fbclid from Meta, msclkid from Microsoft Ads. A Google Ads or Meta click ID that appears on a later page in the same session is captured too.
  • The last page viewed, updated on every page view.
  • The browser's user agent, and any Google Analytics _ga cookies, for session stitching in Google Analytics 4.
  • An approximate location derived from the visitor's connection.

A session continues across pages and browser tabs, and ends after 30 minutes without activity. The script doesn't capture form input, page content or the visitor's phone number.

How numbers are assigned

For each number pool whose rules apply to the page, Call Tracking assigns the session the pool's least-used number: one that no other visitor holds, if there is one. The assignment is renewed on every page view and while the visitor is active, so an active visitor keeps the same number. It lapses about 2 minutes after the visitor leaves or goes idle, and the number can then go to another visitor. A visitor who comes back after that can be given a different number.

When every number in the pool is already assigned, a number has to be shared. This is pool exhaustion, and it is the main cause of lower confidence. See Size a number pool.

How a call is matched to a session

When a call reaches a tracking number, Call Tracking looks at the sessions that held that number at the moment the call started:

  • No session held the number: the call has no attribution. The visitor may have dialled a number they saw earlier, or the script wasn't running when they saw it.
  • One session held the number: the call is attributed to it with High confidence.
  • Several sessions held the number: Call Tracking compares the caller's location, supplied by the carrier, with each session's location. If every location is known and only one of them is within 50 km of the caller, the call is attributed to it with Medium confidence. Otherwise the best candidate is chosen with Low confidence, and the other candidates are kept as alternatives.

A visitor can call after their assignment has lapsed, from a tab left open or a number they noted down. If another visitor holds the number by then, the call is matched to that visitor by the rules above. If no one holds it, the call has no attribution, unless it's a repeat call (below).

Before any of that, Call Tracking checks whether the same caller has called the same tracking number in the last 7 days. If so, and the earlier call was attributed, the new call inherits its attribution. See Attribution confidence and reason flags.

What is recorded on the call

The matched session's landing page, last page, referrer, source, medium, campaign, term, content, channel and location are copied onto the tracked call, along with the confidence level and the reasons for the match. Source, medium and campaign are worked out from the landing page, so a session that started from a Google Ads click and later browsed organically still counts as a paid visit. See Sources, mediums, campaigns and channels.

Static numbers

Calls to a static tracking number don't have a session. Their campaign, medium, source and content come from the number's settings, and they have no confidence level. See Add a static tracking number.

What's next