What Is Dynamic Number Insertion (DNI)? A Complete Guide

What Is Dynamic Number Insertion (DNI)? A Complete Guide

Alex Phelps wrote this on

Dynamic Number Insertion (DNI) is the technology that automatically swaps the phone number shown on your website with a unique tracking number for each visitor, in real time, so every inbound call can be tied back to the exact channel, campaign, and even keyword that drove it. It is the engine behind accurate call tracking for digital marketing. This guide explains what DNI is, how it works, why it matters, and how to set it up.

What Is Dynamic Number Insertion?

Dynamic Number Insertion is a call tracking method that displays a different phone number to each website visitor based on how they arrived. Instead of one static number for everyone, a small script swaps in a tracking number from a pool, records who saw it, and routes any resulting call to your real business line.

The visitor never notices: they see a normal phone number, call it, and reach you as usual. Behind the scenes, the call is attributed to that visitor’s source, so you know whether it came from Google Ads, organic search, Facebook, or a specific campaign.

How Does Dynamic Number Insertion Work?

DNI works through a few pieces that act together the moment someone lands on your site:

  • A JavaScript snippet on your pages detects each visitor and how they arrived (paid search, organic, referral, direct, or a specific campaign).
  • A number pool assigns that visitor a unique tracking number from a set of numbers you control, and swaps it into the page wherever your phone number appears.
  • Visitor-level data, including the traffic source, landing page, campaign parameters, and the Google Click ID (GCLID) for paid visits, is recorded against that number.
  • Call routing forwards any call to that tracking number straight through to your real business line, so nothing changes for the caller.

When the visitor leaves, the tracking number is released back into the pool for the next person, and a returning visitor sees the same number again during their session. The result is that an inbound phone call carries the same marketing data a form fill or online purchase would, which is what makes campaign-level and keyword-level attribution possible. See how Dynamic Number Insertion is implemented in Call Tracker.

Why Does DNI Matter for Marketers?

Without DNI, a phone call is a black hole: you know it happened, but not what produced it. With DNI, every call becomes measurable, which unlocks the things marketers actually care about:

  • Channel attribution - see whether calls come from paid search, SEO, social, email, or offline, and budget accordingly.
  • Keyword-level insight - with number pools, you can trace a call back to the search keyword that earned it, not just the channel.
  • Accurate ROI - phone leads are often a business's highest-intent leads, so attributing them corrects an ROI picture that form-only tracking gets wrong.
  • Better optimization - feed call conversions into your ad platforms and bid toward the campaigns that drive calls, not just clicks.

Static Numbers vs. Dynamic Number Insertion

You can do basic call tracking with static numbers, one fixed number per channel, but DNI is what enables visitor-level detail. The difference:

  Static tracking numbers Dynamic Number Insertion
Numbers shown One per channel, same for everyone Unique number per visitor
Best for Offline ads, billboards, direct mail Websites and digital campaigns
Attribution depth Channel level Visitor, campaign, and keyword level
Google Ads keyword data No Yes, via number pools and GCLID

A common setup uses static numbers for offline placements (a number on a billboard or flyer) and DNI for everything on your website.

Number Pools: The Key to Keyword-Level Tracking

A number pool is a set of tracking numbers large enough that every concurrent visitor can be shown a unique one. The pool size you need depends on your website traffic: more simultaneous visitors means a larger pool so two people never share a number at the same time.

Pools are what make keyword-level attribution possible. Because each visitor has their own number, the call they make can be matched to the exact session, including the keyword they searched and the landing page they were on. This is the difference between knowing “a call came from Google Ads” and knowing “a call came from the keyword ‘emergency plumber near me’ on this landing page.”

DNI and Google Ads

Dynamic Number Insertion is the foundation of phone-call attribution in Google Ads. Because the number pool captures the Google Click ID and keyword for each paid visit, a resulting call can be pushed into Google Analytics as a conversion and then imported into your Google Ads account. From there, calls appear alongside your other conversions and you can optimize bids around them. For the full walkthrough, see how to track which Google Ads are driving phone calls.

Does DNI Hurt Your SEO?

This is the most common concern, and the answer is no, when it is done correctly. DNI swaps the displayed number for live web visitors through JavaScript, while your verified business number stays consistent in your Google Business Profile, structured data, and local citations. Keep your primary NAP (name, address, phone) consistent across the web for local SEO, and use DNI for on-site session tracking. Done this way, DNI gives you attribution without disrupting your local search presence.

How to Set Up Dynamic Number Insertion

Setting up DNI is usually quick:

  1. Choose a call tracking platform and create a number pool sized for your traffic.
  2. Add the platform’s JavaScript snippet to every page of your site (a single line of code). If you use WordPress, a plugin installs it for you.
  3. Configure which sources or campaigns you want to track, then connect your Google Analytics and Google Ads accounts so call conversions flow through.

Once it is live, your website automatically shows tracking numbers, attributes every call, and reports it in your dashboard with full source and keyword detail. You can see this in action with Call Tracker’s real-time call analytics.

Frequently Asked Questions

What is dynamic number insertion?

DNI automatically swaps the phone number on your website with a unique tracking number for each visitor, so every call can be attributed to the source, campaign, and keyword that drove it, while the caller still reaches your real line.

How does dynamic number insertion work?

A JavaScript snippet detects each visitor’s source and swaps in a unique number from a pool. The source, campaign, landing page, and Google Click ID are recorded, and calls route to your business line. When the visitor leaves, the number returns to the pool.

How many tracking numbers do you need?

Enough that two visitors never share a number at the same time. It scales with your concurrent traffic: small sites need a few, busy sites need larger pools.

Does DNI hurt SEO?

No, done correctly. Your verified business number stays consistent in your Google Business Profile and citations; DNI only swaps the displayed number for live web visitors.

Is DNI the same as call tracking?

DNI is one part of call tracking. Call tracking is the overall practice; DNI is the technology that assigns visitor-level tracking numbers behind it.

Put DNI to Work

Dynamic Number Insertion turns your phone calls into measurable marketing data, the same way you already measure clicks and form fills. Start a 14-day free trial to set up DNI on your site, or see the full pricing and how Call Tracker compares to other call tracking software.

Join 1000s of data-driven companies tracking calls to improve their marketing ROI.

Start 14 Day Free Trial