Call tracking API: measure calls by source, campaign and ad

Assign a dedicated number to a source, insert it dynamically on your site and send conversion events to your tools. Custom quote pricing.

Custom quote

Call tracking ties a call to what caused it: a channel, a campaign, an ad. Each source gets a dedicated number. When someone dials it, you know where they came from.

Dynamic number insertion shows a different number on your site depending on where the visitor came from. The page stays the same, only the number changes. This respects the consent choices of the site you integrate into: without consent, the fallback number is shown.

Calls become conversion events that you send to your measurement tools. A conversion is attributed only when a valid signal links it to a source. Otherwise the call stays unattributed.

How it flows

Visitor arrives
Number inserted
Call received
Source linked
Conversion sent

Practical uses

Compare your campaigns

One number per campaign and per ad, to read the calls each one generates.

Track a multi-entry site

Show a number specific to each channel without duplicating your pages.

Report to a client

An agency pulls calls by source for each project it manages.

Feed your tools

Send qualified calls as conversion events to your own system.

Features

  • Dedicated numbers per source, campaign or ad
  • Dynamic number insertion on your site
  • Fallback number when consent is not given
  • Call log with the associated source
  • Conversion events sent through a signed webhook
  • Calls readable by project, number and period

Limits to know

  • Dynamic insertion depends on consent and on your site's setup. Without a valid signal, the call is not attributed.
  • Call tracking promises no revenue and no increase in conversions. It measures the calls received.
  • A visitor who notes a number and calls later from another device can escape attribution.
  • How many dedicated numbers you can have depends on the country's stock and your contract.
  • Visitor information and consent duties are determined by the service, the country and your actual role.
Fictional example: read a project's calls to match them with their sources. The data shown is made up.
curl "https://api.example.test/v1/calls?limit=20" \
  -H "Authorization: Bearer tq_test_EXEMPLE"
# => { "data": [{ "id": "call_example", "direction": "inbound", "status": "completed",
#      "duration_seconds": 95, "billable_seconds": 95, "project_id": "campaign_a" }],
#      "next_cursor": null }

Technical details

NumbersOne dedicated number per source, attached to a project
InsertionSite-side script, conditional on consent
EventsCalls and conversions sent through a signed webhook
PrivacyNo visitor phone number in the site's measurement events

Frequently asked questions

What if the visitor declines tracking?

The script does not enable dynamic insertion and the fallback number is shown. The call is still received, but with no source attached.

How many numbers do I need?

It depends on how many sources you want to tell apart and on simultaneous traffic. We size this with you in the quote.

Does call tracking guarantee more calls?

No. It tells you where received calls come from. What you do with that is up to your strategy.

Related use cases

Documentation

Related services

Let's measure your calls by source

Tell us your channels, your site and your countries. We will prepare a quote with the number of dedicated numbers required.