What we changed, what you need to verify, and a reusable recipe for any future client that needs GFN call tracking.
When someone clicks a Google Ads ad and lands on the site, Google's gtag.js detects the gclid parameter in the URL. It then requests a temporary forwarding number from Google's servers and dynamically swaps all phone numbers on the page for that visitor. When they call that number, Google logs it as a conversion.
This means: only calls from people who clicked an ad get tracked. Organic, direct, and Google Maps calls are never counted — that's a hard limit of the tool, not a configuration problem.
support.google.com/google-ads/answer/3111300| Problem | Why It Broke GFN |
|---|---|
| No gtag.js on the live site | The site only had a GTM container (GTM-TH67S8M). The Google Ads conversion tag (AW-871296311) was configured inside GTM but there was no standalone gtag.js loading it. Without the GFN-specific gtag('config', ...) call with phone_conversion_number, the swap never triggers. Zero GFN was possible — full stop. |
| Phone number format mismatch | Google Ads was configured to look for 06 (70) 62 62 777, but the HTML buttons had +36 70 626 2777 — a different format. Google requires an exact text match. No match = no swap. |
| No CSS class targeting | Google's script has two ways to find phone elements: exact text match, or a CSS class. Text match is fragile (breaks with any formatting change). CSS class is robust. Neither was set up. Even if the text matched, the script had no explicit targets to swap. |
main branch. All the GFN work was committed on a feature branch (feature/location-pages-v6) which only creates preview deployments, not a production update. That's why it looked done but wasn't live.Added gtag.js and initial GFN config. Injected the Google Ads pixel (AW-871296311) and the phone conversion config (phone_conversion_number: '06 (70) 62 62 777') into all 13 HTML pages. This made the swap theoretically possible.
Standardized phone number format in HTML. All phone number text across the site was updated from +36 70 626 2777 to 06 (70) 62 62 777 to match the Google Ads config exactly.
Added CSS class targeting — bulletproof approach. Added phone_conversion_css_class: 'gfn-track-phone' to the gtag config and applied the gfn-track-phone class to every phone link/button on all 13 pages. This makes the setup resistant to future text format changes.
<a href="tel:+36706262777" class="gfn-track-phone top-bar-phone"> <span>06 (70) 62 62 777</span> </a>
Deployed to production (main branch). Previous deploys were to the feature branch preview only. This commit deployed to main, which is what csupiautomentes.hu actually serves. Also corrected the project docs which wrongly described the site as WordPress.
#google-wcc-debug → clicked "Force" → all 6 phone number elements swapped simultaneously from 06 (70) 62 62 777 to Google's test number (99 (99) 99 99 999). The debug overlay confirmed: "Updated 6 element(s) with 99 (99) 99 99 999".The account had a conversion action called "Tel szám kattintás" (phone number tap/click) set as Primary. This is a CLICK_TO_CALL-type conversion — it fires when someone taps the phone link, before any call is connected. Smart Bidding was optimizing for taps, not actual connected calls.
| Conversion Action | Type | Before | After |
|---|---|---|---|
| "Hirdetésekből származó hívások" | WEBSITE_CALL (GFN) |
Secondary | Secondary |
| "Tel szám kattintás" | CLICK_TO_CALL |
Primary | Secondary |
| Task | Status | Notes |
|---|---|---|
| Verify GFN working on live site | ✅ Done | Test with #google-wcc-debug confirmed 6 elements swap. See proof above. |
| Wait for Google's 24-48h approval | ⏳ Pending | Google reviews new forwarding numbers before activating them. Started ~evening July 10. Should be live by July 12. |
| Confirm GFN recording in Ads UI | ⏳ Your job | Go to Google Ads → Goals → Conversions → "Hirdetésekből származó hívások". Status should flip from "Pending" to "Recording". If you see a conversion come in, it's confirmed. |
| Set GFN action to Primary | ⏳ Your job | Once you see the GFN action recording, make it Primary. This re-trains Smart Bidding toward actual calls. Don't do it before — it needs data first. |
| "Tel szám kattintás" → Secondary | ✅ Done | Already set to Secondary on July 11. Smart Bidding is no longer optimizing for taps. |
| Negative keywords added | ✅ Done | Added -szállítás and excluded non-relevant regions (Sopron, Balaton, Mezőkövesd) to reduce wasted spend. |
This is on every page, inside <head>:
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/
gtag/js?id=AW-871296311"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'AW-871296311');
</script>
<script>
gtag('config',
'AW-871296311/Ac9uCO-s9LscELfau58D', {
'phone_conversion_number': '06 (70) 62 62 777',
'phone_conversion_css_class': 'gfn-track-phone'
});
</script>
| Google Ads Tag | AW-871296311 |
| Conversion Action | Ac9uCO-s9LscELfau58D |
| Phone (for swap) | 06 (70) 62 62 777 |
| CSS Class | gfn-track-phone |
| HTML href | tel:+36706262777 |
| Pages with GFN | All 13 (index + 12 location) |
| Phone elements/page | 6 (top bar, hero CTA, mid CTA, form CTA, footer, floating widget) |
There are two ways to trigger the GFN swap in a browser without waiting for a real ad click:
Google WCC Debug Mode
https://csupiautomentes.hu/#google-wcc-debug99 (99) 99 99 999. The popup shows how many elements were updated.Simulated gclid Parameter
https://csupiautomentes.hu/?gclid=EAIaIQob...?gclid=test may not trigger the swap — Google validates gclid format. Use a realistic one or use Method 1.AW-XXXXXXXXX) and the conversion label.
gfn-track-phone class to every phone element in the HTML.<a href="tel:...">, every button, every span with a phone number — all of them get this class. Don't miss any.
[telefonszám eltávolítva]) and use it everywhere. The text inside the element must exactly match what you put in phone_conversion_number.
<head>).gtag('config', 'AW-...') (the tag) and gtag('config', 'AW-.../label', {...}) (the conversion config with phone number + CSS class). See the snippet in the Technical Spec section above.
wrangler pages deploy ./dist --project-name=PROJECT --branch=main. If you're on a feature branch, you're only creating a preview — production won't update.
#google-wcc-debug.CLICK_TO_CALL or WEBPAGE conversion action for the phone button tap, set it to Secondary. Smart Bidding should only optimize for connected calls, not taps.