How to Set Up Call Tracking with Number Pools in Sparkforge

By Sparkforge Support Team ·Last reviewed May 3, 2026

Number pools rotate tracking phone numbers on your site based on visitor source, so Sparkforge can attribute every inbound call to the ad, page, or keyword that drove it.

Number pools (also called call tracking codes) attribute inbound phone calls back to the ad, landing page, or keyword that drove the visitor. Sparkforge swaps the displayed phone number based on the visitor’s source, then ties the call back to that source in reporting.

Create a number pool

  1. Go to Settings > Phone Numbers.
  2. Click the + Add Number dropdown and choose Add Number Pool.
  3. Select Visitors Activity as the pool type.
  4. Choose which visitors to track. All visitors is recommended. PPC search only swaps numbers for paid-ad arrivals.
  5. Click Next: Create Pool.

Configure the pool

  • Number Name: internal label for the pool.
  • Pool Size: minimum 4 numbers. Higher traffic needs more numbers to avoid collisions.
  • Forwarding Number: where calls actually ring. Do not use a Sparkforge or Twilio number here — it creates a routing loop.
  • Swapping Number: the number shown on the page. Can match the forwarding number or be different.

Choose tracking numbers

Click Next: Choose Numbers. Pick local numbers (matched to your forwarding area code), toll-free, or numbers from any specific area code. Each number bills at the standard phone-number rate for your account.

Number features

  • Whisper message: plays to you (the agent) when the call connects — e.g. "Call from Google Ads." The caller does not hear it.
  • Call recording: optional. Add a recording disclosure if you turn it on.

Click Activate Number when done.

Install the snippet on your site

  1. Open the pool, click the three dots, choose Number Pool Info.
  2. Copy the Normal Snippet Code.
  3. In Sites > Funnels (or Websites), open the funnel and go to Settings.
  4. Paste the snippet into the Body Tracking code field. Save.

To swap on a single page only, open the page editor, click the Tracking Code icon, choose Footer Tracking, paste the snippet, and save.

Swap a number inside a button

Use a standard tel: anchor and the script will swap the displayed number:

<a href="tel:(972) 421-5139" class="btn btn-blue">Call Us</a>

Test number swapping

Open an incognito window and visit yourwebsite.com/landing-page. The displayed phone number should change. If you set All Except Direct as the tracking option, you must reach the page from another link — not by typing the URL directly.

Track keywords from Google Ads

Add ?keyword={keyword} to the destination URL on your Google Ads. Sparkforge will fill the Keyword column in the Call Report when matching visitors call the tracking number.

yourwebsite.com/landingpage/?keyword={keyword}

Group ID for multi-ad sites

If you run multiple ads pointing to the same site and want each ad to swap to its own pool, use a Group ID. Edit the pool, click Add/Edit Group ID, name it, and use the group snippet on the matching pages. The script picks the best-matching pool for each visitor.

Phone number formats supported by the swap script

For 10-digit US numbers, all of these formats are recognized and swapped:

  • 111-222-3333
  • 111.222.3333
  • (111) 222-3333

Frequently Asked Questions

Why do I need a number pool to track calls?
A pool rotates several tracking numbers on the page based on visitor source. When a lead calls one of those numbers, Sparkforge ties the call back to the source, ad, and keyword — something a single static number cannot do.
How much does a number pool cost?
Each number in the pool bills at the same per-number rate as a regular Sparkforge phone number. Minimum 4 numbers per pool. On LC-Twilio that is roughly $1/month per US number plus usage.
Can calls from the pool ring my web app or mobile app?
No. Number pool calls only route to the Forwarding Number you set during pool setup. Use a regular phone number assigned to a user if you need web/mobile app ringing.
Can I use a Sparkforge or Twilio number as the Forwarding Number?
No — that creates a routing loop. The forwarding target must be an external phone number outside Sparkforge.
How do I capture the Google Ads keyword in reporting?
Add ?keyword={keyword} to the destination URL on your Google Ads. The Call Report's Keyword column will populate when matching visitors call the tracking number.

Was this article helpful?