All / Analytics / Conversions
Call Tracking: Every Way to Track Phone Calls with AB Split Test
For many businesses — especially local service businesses and the agencies that run their sites — the conversion that matters isn’t a form fill or a checkout. It’s a phone call. AB Split Test gives you several ways to record phone calls (or the intent to call) as test conversions, from a 30-second setup to full call-platform integration. This guide walks through all of them, from simplest to most advanced, so you can pick the one that fits your stack.
Which method should I use?
| Method | What it measures | Requires |
|---|---|---|
Link Click on a tel: link | Taps/clicks on your phone number (call intent) | Nothing extra |
| Element Click on a call button | Clicks on any call button or element | Nothing extra |
| CallTrackingMetrics integration | Actual phone calls, attributed to the variation the caller saw | A CallTrackingMetrics account |
| Google Tag Manager | Passes test data to any call-tracking platform | GTM + your call platform’s tag |
| JavaScript events | Anything your call platform’s JavaScript can detect | A few lines of JS |
| Server-side conversion endpoint | Answered calls reported by any platform that can send a webhook | UUID tracking enabled |
A quick note on the difference: the first two methods count the click — a visitor tapping your number or call button. That’s a strong intent signal and is enough for most tests. The CallTrackingMetrics and webhook methods count the actual call, so unanswered pocket-dials don’t inflate your results. Use whichever level of rigor your test needs.
1. Track clicks on your phone number (Link Click + tel:)
The fastest way to track calls. If your phone number is a clickable link — <a href="tel:+15551234567">Call us</a> — you can convert the test whenever anyone clicks it:
- Edit your test and set the Conversion Trigger to Link Click.
- Enter
tel:as the link pattern.
That’s it. The pattern is a partial match against the link’s href, so tel: matches every click-to-call link on the page. To track one specific number (for example when different departments have different numbers), use a more specific pattern like tel:+15551234567.
Link Clicked is also available as a goal type, so you can keep your main conversion as a form fill and add “clicked the phone number” as a secondary goal on the same test.
2. Track clicks on a call button (Element Click)
If your call-to-action is a button or any other element (not necessarily a link), use the Element Click conversion trigger with a CSS selector:
- Give your button a class, e.g.
call-now-button(every page builder lets you add a CSS class to a button). - Edit your test, set the Conversion Trigger to Element Click, and enter
.call-now-buttonas the selector.
Alternatively, skip the test settings entirely and tag the button itself: add the class ab-click-convert-123 (where 123 is your test’s ID) to any element and clicks on it will convert that test. See using classes to tag variations and conversions and button conversion tests for more.
3. CallTrackingMetrics: track actual calls, not just clicks
AB Split Test has a native CallTrackingMetrics (CTM) integration. If the CTM tracking code is on your site, AB Split Test automatically attaches test events (test name, variation, and event type) to each visitor’s CTM session — so when a visitor calls one of your tracking numbers, you can see in CTM exactly which variation they saw before picking up the phone.
It goes further: using a CTM Trigger, qualifying calls can be sent back to your site and recorded as conversions in your test results automatically — genuine closed-loop call attribution. You can also enable AB Split Test → Settings → Integrations → CallTrackingMetrics to attach the visitor’s UUID directly to the call as a CTM custom field.
Full setup guide: CallTrackingMetrics Integration: Track Calls as Conversions.
4. Google Tag Manager: connect any call-tracking platform
Most call-tracking platforms — CallRail, WhatConverts, CallScaler, Nimbata, and others — integrate with Google Tag Manager. AB Split Test pushes every test event into the GTM data layer automatically (no configuration needed):
{
"event": "ab_split_test",
"test_name": "Homepage Hero",
"test_variation": "Variation 1",
"test_event": "visit", // or "conversion", or a goal number
"test_id": "12345"
}
Create GTM Data Layer Variables for test_name and test_variation, then pass them into your call-tracking tag as custom parameters, tags, or session attributes — whatever your platform supports. Every tracked call then carries the variation the caller saw, and you can compare call volume per variation in your call platform’s reporting.
There’s also an ab-test-setup-complete data layer event that fires once tests are initialized, which you can use as a GTM trigger. See the Google Tag Manager + GA4 setup guide and Analytics Events and Tagging for details.
5. JavaScript events: convert from any script
If your call-tracking provider fires a JavaScript event or callback when a call happens (many do — check their docs for something like an “on call” or “phone revealed” event), you can record the conversion with one line:
abstConvert(123); // convert test ID 123
abstGoal(123, 2); // or record goal 2 on test 123
Drop that into your provider’s callback and the conversion is attributed to whichever variation the visitor was bucketed into. Repeat conversions from the same visitor are de-duplicated automatically. The full list of functions and events is in JavaScript Split Test Events & Functions.
6. Server-side: record calls from any platform’s webhook
For call platforms that can send a webhook when a call completes (with a custom/session variable attached), your site has a built-in endpoint that records a conversion server-side — no browser involved:
https://yoursite.com/wp-admin/admin-ajax.php?action=ab_fp_event&type=conversion&eid=TEST_ID&uuid=VISITOR_UUID
The flow: enable UUID tracking in AB Split Test settings, pass the visitor’s UUID to your call platform (via GTM as above, or a hidden field / custom variable), and have the platform’s call webhook fire a GET request to this endpoint with that UUID. The call is then recorded against the exact variation that visitor saw. This is the same mechanism our CallTrackingMetrics integration uses — but it works with anything that can send an HTTP request. See also Server Side Events.
Don’t see your call-tracking service?
If your call-tracking system isn’t listed here but has an API or webhooks, we’re more than happy to add an integration — just let us know which platform you use. In the meantime, the Google Tag Manager and server-side methods above work with virtually every call-tracking product on the market.