Dynamic Number Insertion Explained
Dynamic number insertion (DNI) is a website technique that swaps your displayed phone number for a tracking number unique to each visitor. When that visitor calls, Call Bullet matches the call to their visit — source, landing page, campaign and click ID — so online calls are attributed as precisely as online forms.
Last updated · Call Bullet
What is dynamic number insertion?
Dynamic number insertion is the website half of call tracking. Instead of one phone number for every visitor, your site draws numbers from a pool and gives each visitor their own while they browse.
It exists because a website has many sources at once. The same page can be reached from Google Ads, organic search, an email and a Facebook post in the same minute. A fixed number cannot tell them apart; a swapped number can. For the wider context, see how call tracking works.
How does DNI work on a page?
DNI runs in the visitor's browser after the page loads.
- The page loads with your normal main number in the HTML.
- Call Bullet's script reads the visit: referrer, landing page, UTM tags and Google click ID.
- It asks Call Bullet for a number from your pool for this visit.
- It replaces every instance of your number on the page, including tap-to-call links.
- The visitor keeps that number for their session; if they call, the call is matched to the visit.
Because your main number stays in the original HTML, search engines and visitors without scripts still see a working number.
What is a number pool and how big should it be?
A number pool is the set of tracking numbers your website shares between visitors. The pool must be big enough that, at your busiest time, each active visitor can hold their own number.
Call Bullet suggests five website numbers by default for a typical small business site, and you can add more as traffic grows. The rough guide below assumes visitors stay a few minutes.
| Visitors at the busiest hour | Suggested pool | Notes |
|---|---|---|
| Up to about 50 | 5 numbers | The default for most small sites |
| About 50–150 | 8–12 numbers | Common for busy local services |
| About 150–400 | 15–25 numbers | Multi-location or high paid traffic |
| More than 400 | Talk to us | Consider tracking only paid traffic dynamically |
If the pool runs short, numbers are shared and precision drops, but calls are still logged. You can see pool use on the Numbers page.
Should you swap numbers for every visitor or just paid traffic?
Swapping for every visitor gives the most complete picture, including organic search, which matters if you want to prove SEO value. See call tracking for SEO.
If you have very high traffic and a small budget, swapping only for paid visitors keeps the pool small while still measuring ad spend.
Does DNI work with WordPress, caching and Google Tag Manager?
Yes, with a few practical points.
- WordPress: the Call Bullet WordPress plugin installs the script, swaps numbers straight after you save your install key, and clears common page caches.
- Other sites: add a single script tag; instructions are in the integrations section.
- Caching: because swapping happens in the browser, cached pages still get a fresh number per visitor.
- Google Tag Manager: Call Bullet runs alongside GTM and never overrides scripts GTM injects.
- Multiple locations: each location can have its own pool, so a Leeds page and a Manchester page swap the right local numbers.
Is dynamic number insertion bad for SEO?
No. Search engines read your main number in the page HTML, which does not change. The swap only happens for real visitors in the browser. Keep your main number consistent on your website and Google Business Profile, which matters for local search.
What about privacy and consent?
DNI stores a visit identifier so a call can be matched to the visit. If your site uses a consent banner, Call Bullet can respect the visitor's choice. UK rules on cookies and similar technologies are explained in the ICO's guidance. Details of what we store are in our privacy policy.
Key takeaways
- DNI swaps your website number per visitor so calls match a specific visit.
- Your main number stays in the HTML for search engines and script-blocked visitors.
- Size the pool to your busiest hour; five numbers suits most small sites.
- It works with WordPress, page caching, Google Tag Manager and multiple locations.
Frequently asked questions
What does DNI stand for?
Dynamic number insertion: automatically inserting a tracking number into a web page for each visitor.
How many numbers do I need for DNI?
Enough for everyone browsing at your busiest time to hold one. Five is the default for small sites.
Does DNI slow my website down?
No noticeable effect. The script is small and swaps numbers after the page has loaded.
Will DNI change numbers in images?
No. It swaps text and tap-to-call links. Keep phone numbers in images to a minimum.
Can a visitor see a different number each time?
The same visitor keeps the same number during their session. A new visit may get a different number.
Does DNI work on mobile?
Yes. It also swaps tap-to-call links, which is where most mobile calls start.
See which marketing makes your phone ring
Start with one UK tracking number or a full website pool. Every call is recorded, transcribed and traced back to its source.