Google Ads call extensions vs. website DNI tracking: two separate setups
If you run Google Ads and have a phone number on your website, customers can call you in two different ways.
Nimbata tracks both, but through separate setups.
1. Website calls (tracked via DNI)
A website call happens when someone clicks your Google ad, lands on your website, sees your phone number on the page, and calls it.
The customer's journey: Ad click > your website > phone number on page > call.
The DNI script detects the gclid parameter in the URL, swaps your phone number for a Nimbata tracking number, and records the call with full campaign attribution.
- Tracking number source: Online Paid (or a Google Ads swap group)
- Only shown to visitors who arrived from a paid click
- Requires the DNI script installed on your website
2. Call extension calls, tracked via a dedicated number
The customer's journey: Ad with phone number → call directly from search results.
The caller never visits your website, so the DNI script never runs.
The number shown in your ad must itself be a Nimbata tracking number.
- Tracking number source: Google Ads Call Extension
- Not connected to your DNI script
- Requires placing the Nimbata number directly in your Google Ads call asset
Why they are independent
| Website call | Call extension call |
|---|---|---|
Customer visits your website first | Yes | No |
DNI script runs | Yes | No |
gclid parameter is used | Yes | No |
Tracking number shown on your site | Yes - dynamically inserted | N/A - number is in the ad itself |
Source in Nimbata | Online Paid (or Google Ads swap group) | Google Ads Call Extension |
Nimbata setup required | DNI script + swap group | Separate tracking number added to Google Ads call asset |
Setting up one does not cover the other.
The most common symptom
- You set up DNI.
- Calls appear in Nimbata.
- Calls shown as conversions in Google Ads are missing from Nimbata.
- Those calls came directly from the call extension.
- The DNI script never ran because the caller never visited your site.
Check what you currently have
Website DNI:
- Go to Tracking > Tracking Code.
- Look for a swap group with source set to Google Ads or Online Paid.
- Verify by visiting your site with
?gclid=testin the URL. - If the number swaps, DNI is active.
Call extension:
- Go to Tracking > Numbers.
- Look for a number with source set to Google Ads Call Extension.
- Confirm that exact number appears in Assets > Call inside your Google Ads campaign.
Set up both
Website DNI (calls from your website):
- Go to Tracking > Numbers.
- Get a tracking number sourced as Online Paid.
- Install the DNI script on your website.
- Configure a swap group under Tracking > Tracking Code.
- Assign the number to a call flow.
Detailed Guide: DNI script 101: how to install and configure it
Call extension (calls directly from your ads):
- Go to Tracking > Numbers.
- Get a separate tracking number sourced as Google Ads Call Extension.
- Assign it to a call flow.
- In Google Ads, go to Admin > Account settings > Call reporting and turn it on.
- Go to Assets > Call and enter this Nimbata number as the phone number for the call asset.
Detailed Guide: Google Ads call extensions and call ads: how to track calls with Nimbata
Do I need both?
If your ads never show a phone number directly, you only need DNI.
If you use call extensions or call-only ads, you need both.
Running only DNI while call extensions are active means those calls will show in Google Ads as conversions but won't appear in Nimbata at all.
A note on tracking number sources
Online Paid numbers are candidates for DNI swapping.
The script will show them to qualifying visitors.
Google Ads Call Extension numbers are never injected by the DNI script.
They are static numbers placed in your ad assets and only receive calls if that exact number is in your call asset.
Detailed guide: How to set up swap groups
Detailed guide: Google Ads integration: how to set it up in Nimbata
Troubleshooting: Tracking number not swapping: full troubleshooting guide
Updated on: 07/04/2026
Thank you!