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
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.
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
| Numbers | One dedicated number per source, attached to a project |
|---|---|
| Insertion | Site-side script, conditional on consent |
| Events | Calls and conversions sent through a signed webhook |
| Privacy | No 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.