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.
How do you set up dynamic number insertion?
Dynamic number insertion with Call Bullet takes a few steps and needs no developer for most sites.
- Add your main business number to the workspace — this is the number DNI looks for and replaces.
- Create a website pool for each location, choosing UK numbers on Buy numbers.
- Install the WordPress plugin, or add the single tracking script to every page, for example through Google Tag Manager.
- Purge your page cache so visitors receive the updated page.
- Open the site in a private window from an advert link, check the number swaps, and place a test call.
What goes wrong with DNI and how do you fix it?
Most DNI problems come down to the script not finding the number or not loading.
| Symptom | Likely cause | Fix |
|---|---|---|
| Number never swaps | Number written differently on the page | Match the main number format, or check spacing such as 0161 496 0000 |
| Swaps on some pages only | Script missing from a template | Add the script site-wide or through Tag Manager |
| Old number shows after changes | Page or CDN cache | Purge the cache after setup |
| Calls marked as direct | Visitor reached the site with no tracking data | Expected for typed-in visits; check advert links keep their parameters |
Can you use DNI with static numbers at the same time?
Yes, and most businesses should. DNI covers website visitors; fixed numbers cover places where a script cannot run, such as print, radio, vehicles or a Google Business Profile.
Call Bullet manages website pools and fixed placements separately, so each has a clear job. See static vs dynamic call tracking for when to use each, and how call tracking works for the full call journey.
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.