Description
TagFlux is a server-side Google Ads conversion tracking plugin for WordPress forms. It auto-detects the forms already installed on your site, lets you choose which submissions count as conversions, and sends them to Google Ads through the TagFlux backend using the Google Click Identifier (gclid) — no code, no Google Tag Manager, no manual event setup.
Features
- Server-side Google Ads conversion tracking for WordPress forms
- Conversion submission through the TagFlux backend using the Google Ads API
- Google Ads connection via OAuth
- GCLID capture and first-party cookie storage
- Auto-detection of supported WordPress forms
- Support for Contact Form 7, WPForms, Elementor Pro Forms, Ninja Forms and Divi Forms
- Choose which forms to track from the WordPress admin
- Track form submissions from Google Ads traffic
- Dashboard with clicks, CPC, conversions and total cost
- Breakdowns by form, campaign and landing page
- No Google Tag Manager setup required
- No custom JavaScript required
- Built for Google Ads lead generation campaigns
- Consent Mode v2 aware: reads the visitor’s real consent state from your consent banner and forwards it with each server-side conversion
- Optional Enhanced Conversions: email/phone sent as SHA-256 hashes, only if you enable it and the visitor granted consent
- Compatible with consent managers (GDPR-friendly)
- Available in English and Spanish
Server-side Google Ads conversion tracking for WordPress
TagFlux uses server-side conversion tracking to send WordPress form submissions to Google Ads through the TagFlux backend.
When a visitor arrives from a Google Ads click, TagFlux picks up the Google Click Identifier (gclid) from the ad URL and, where consent allows it, keeps it in a first-party cookie. If that visitor submits a tracked WordPress form, TagFlux sends the conversion event to Google Ads through the backend instead of relying only on browser-side tags — and if there is no cookie, it recovers the identifier from the submission request itself, so declining cookies costs you the visit-to-visit bridge but not the conversion.
This is useful for lead generation websites that want more reliable Google Ads conversion tracking without maintaining a custom Google Tag Manager or gtag setup.
Why TagFlux instead of Google Tag Manager?
Setting up Google Ads conversion tracking by hand usually means editing gtag snippets, configuring triggers in Google Tag Manager, and testing events one by one.
TagFlux skips the manual tag setup. It detects your WordPress forms, captures the Google Click Identifier (gclid), and reports form submissions to Google Ads server-side through the TagFlux backend using the Google Ads API.
That means no GTM container to maintain, no custom JavaScript, no manual event setup, and fewer moving parts between your WordPress forms and Google Ads conversion actions.
Supported form plugins
TagFlux currently supports:
- Contact Form 7
- WPForms
- Elementor Pro Forms
- Ninja Forms
- Divi Forms
If your Google Ads traffic lands on a WordPress page using one of these form plugins, TagFlux can help track those form submissions as Google Ads conversions.
How it works
- Install and activate the plugin — activation contacts no external service.
- Click “Connect to TagFlux” and connect your Google Ads account via OAuth.
- Select which forms to track. From then on, every submission is sent to Google Ads as a conversion automatically.
External services
This plugin connects to two external services to provide conversion tracking. It does not work without them.
1. TagFlux backend (api.tagflux.io)
TagFlux relays conversion data to Google Ads through its own backend.
- When you connect the site: activating the plugin sends nothing. Only after you explicitly click “Connect to TagFlux” on the plugin settings screen does it send this site’s URL and name to
https://api.tagflux.io/api/auth/registerto register the site and obtain an API key. No personal data is sent at this step. - When you ask for setup help (optional): while the plugin is not yet connected, an admin-only banner offers free help activating TagFlux. Nothing is sent unless you type an email address and explicitly click “Yes, help me” — then the plugin sends that email address plus your site URL and name, site language and WordPress/plugin versions to
https://api.tagflux.io/api/support/help-requestsso the TagFlux team can contact you. Dismissing the banner sends nothing and it will not be shown again. - When a tracked form is submitted: it sends a Google Click Identifier (
gclid/wbraid/gbraid, taken from the submission request, from a hidden form field, or from a first-party cookie tagged asmarketing— which on a site with a consent banner is only written once advertising consent is granted), the visitor’s Consent Mode v2 state, an order ID used for deduplication, the form/campaign identifiers and the conversion event tohttps://api.tagflux.io. The contents of the form fields (names, emails, messages) are not sent — with one exception: if you enable the optional Enhanced Conversions setting and the visitor has granted ad consent, the email and/or phone number from the submitted form are sent as SHA-256 hashes (never in plain text).
TagFlux terms: https://tagflux.io/plugin-terms/ — privacy policy: https://tagflux.io/plugin-privacy-policy/
2. Google Ads / Google OAuth
To connect your Google Ads account the plugin uses Google’s OAuth flow, and the backend reads/writes conversion data via the Google Ads API on your behalf.
Google terms: https://policies.google.com/terms — privacy policy: https://policies.google.com/privacy
Screenshots



Installation
- Upload the
tagfluxfolder to/wp-content/plugins/, or install it from the WordPress plugin repository. - Activate the plugin from the WordPress “Plugins” menu. Activation does not contact any external service.
- Go to “TagFlux” in the admin sidebar and click “Connect to TagFlux”. This registers your site with the TagFlux service (api.tagflux.io) and is the first and only time the plugin sends anything (your site URL and name) — and only after you click. See the “External services” section below.
- Connect your Google Ads account.
- Select the forms you want to track.
FAQ
-
Does TagFlux support server-side tracking?
-
Yes. TagFlux sends tracked WordPress form submissions to Google Ads through the TagFlux backend using the Google Ads API. It captures the Google Click Identifier (gclid) from Google Ads traffic and uses it to report the conversion server-side.
-
Is this the same as Google Tag Manager server-side tracking?
-
No. TagFlux does not require you to set up a server-side Google Tag Manager container. It provides a simpler server-side tracking flow for WordPress form submissions and Google Ads conversions.
-
Do I still need Google Tag Manager?
-
No. TagFlux is designed to track Google Ads form conversions without Google Tag Manager, gtag snippets or custom JavaScript. It auto-detects supported WordPress forms and sends conversions to Google Ads through the backend.
-
Which WordPress form plugins does TagFlux support?
-
TagFlux currently supports Contact Form 7, WPForms, Elementor Pro Forms, Ninja Forms and Divi Forms.
-
What does TagFlux track?
-
TagFlux tracks WordPress form submissions that come from Google Ads traffic. It captures the gclid from the ad click, keeps it in a first-party cookie where consent allows, and sends the conversion to Google Ads through the TagFlux backend when a tracked form is submitted. Without a cookie it falls back to the identifier carried by the submission request.
-
Do I need a Google Ads account?
-
Yes, you need an active Google Ads account to track conversions.
-
How is it different from tracking Google Ads conversions with GTM or gtag?
-
With Google Tag Manager or gtag you build triggers and tags by hand and maintain them over time. TagFlux auto-detects your forms, maps each one to a conversion action, and sends submissions to Google Ads automatically — no container, no code.
-
Can I track more than one conversion action?
-
Yes. You can choose multiple forms to track, and every submission of each tracked form is reported to Google Ads.
-
Does it work with WooCommerce?
-
Not yet. TagFlux currently tracks form submissions (contact, lead and quote forms). WooCommerce checkout and purchase tracking is on the roadmap, not in this version.
-
Which page builders and themes are supported?
-
Any theme. Form detection currently covers Contact Form 7, WPForms, Elementor Pro, Ninja Forms and Divi forms — both the Divi 4 builder and Divi 5 — regardless of the theme you use.
-
Is it GDPR compliant?
-
Yes. On a site where TagFlux detects a consent banner, the tracking cookie is not written until the visitor grants advertising consent, and declining removes it; the cookie is also tagged as
marketingso consent managers can control it themselves. Server-side conversions carry the visitor’s real Consent Mode v2 state (read from your consent banner), and Enhanced Conversions data is only sent when the visitor has granted ad consent. See the “External services” section below for exactly what data is sent and where. -
What is server-side (dual) conversion tracking?
-
In dual mode each tracked submission is reported twice: by the classic gtag script in the browser and by your server through the TagFlux backend. Google Ads deduplicates the two with a shared order ID, so conversions are never double-counted — but they are recovered when an ad blocker or strict browser blocks the gtag script. You can turn it off in Settings at any time.
-
Does the plugin send any data when I activate it?
-
No. Activation only creates local options; no request is made to any external service. Your site is registered with api.tagflux.io only after you explicitly click “Connect to TagFlux” on the settings screen, where the data to be sent (your site URL and name) and the links to our Terms and Privacy Policy are shown beforehand.
-
How do I disconnect or remove my data?
-
Click “Disconnect site” on the TagFlux settings screen to clear the local registration and the Google Ads connection stored in WordPress; you can connect again afterwards. Deleting the plugin removes all TagFlux options from your database (via
uninstall.php).
Reviews
Contributors & Developers
“Google Ads Conversion Tracking for WordPress Forms – TagFlux” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Google Ads Conversion Tracking for WordPress Forms – TagFlux” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.2.5
- Fix: declining consent after having accepted it now releases the click identifier everywhere — the value already painted in the hidden field, and carried by links clicked afterwards, stops travelling; not just the cookie. A click identifier arriving in the URL of the current request is kept, as it reads nothing from the visitor’s device.
- Fix: forms that appear after the page loads (popups, modals, AJAX tabs) now receive the click identifier and the shared order ID at submit time, so dual-mode conversions keep deduplicating instead of counting the same lead twice.
- New: TagFlux now obeys the Google Consent Mode v2 signal even when the consent banner is not one of the recognised plugins — a custom banner that emits Consent Mode is honoured automatically.
ad_storagegoverns the cookie, the visitor’s choice survives navigation between pages, and region-scoped consent defaults are no longer misread as global. - New:
tagflux_consent_managedfilter so custom banners can declare themselves in code, and a settings notice when the detected consent manager does not emit Consent Mode v2 — on those sites the attribution cookie waits for a signal that never arrives, which was working as designed but silently.
1.2.4
- New: conversions are no longer lost when a visitor declines cookies. The click identifier is now also read from the submission request itself — the query string or the referring URL — which reads nothing from, and stores nothing on, the visitor’s device. Measured against real submissions: WPForms posts to the page itself, Contact Form 7 and Ninja Forms only carry the referrer.
- New: internal links carry the click identifier while no cookie is available, so the attribution survives a visit that lands on one page and submits on another. Links to other domains,
mailto:,tel:and anchors are left alone, and nothing is added once the cookie is in place. - Privacy: on sites with a consent banner, the click identifier cookie now waits for advertising consent, and is written as soon as consent is granted — including later in the same visit. Declining removes it and stops it being read. Sites without a banner are unaffected. Visitors who never accept keep their attribution through the URL, the referrer and the decorated links; only the bridge between separate visits is lost.
- Fix: the click identifier is validated and length-limited whatever its source, so a crafted link or a tampered form field cannot inject arbitrary content into the conversion upload.
- Fix: a site served both with and without
wwwno longer discards its own referrer and loses the conversion. - Fix: links added to the page after it loads are now handled too, and relative links stay relative instead of being frozen to one scheme and host.
1.2.3
- New: Divi 5 support. Divi 5 builds its contact forms as blocks instead of shortcodes, so on a Divi 5 site no form was detected at all — nothing to select, nothing to track. Divi 4 and Divi 5 forms are now detected side by side, which is what a site migrated to Divi 5 actually looks like.
- Fix: pages embedding a WPForms block did not load the tracking script, so the browser-side conversion was never fired. With server-side tracking enabled the conversion still reached Google Ads; without it, the submission was lost entirely.
- Fix: the “used on these pages” list of a form no longer misses block embeds, and no longer confuses one form with another whose ID starts with the same digits (form 2 was matched by form 23).
- Fix: Divi form identifiers are now resolved on the server in document order, so a page holding more than one Divi form reports the right one.
- Internal: every form-detection pattern now lives in a single place and is validated every night against the real form builders, including Divi 4 and Divi 5.
1.2.2
- New: the Google Ads account list is now shown as a hierarchy. Manager accounts (MCC) head their own group and the client accounts underneath are listed indented, so it is clear where conversions are actually recorded.
- Fix: the “Link” button is only offered for accounts that can record conversions. Manager accounts and cancelled or suspended accounts now explain why they cannot be linked, instead of offering a button that fails afterwards.
- Fix: auto-linking now only considers linkable accounts. A site whose only visible account was a manager could end up linked to it, which silently records nothing.
- i18n: new strings translated (es_ES).
1.2.1
- Fix: uninstalling the plugin now removes every setting it created. Four options survived deletion (server-side tracking mode, Enhanced Conversions, and the setup-help opt-in state and email), so reinstalling inherited the old configuration instead of starting clean.
- i18n: plugin headers are now translatable and the Spanish (es_ES) catalogue has been updated.
1.2.0
- New: optional setup-help banner for administrators while the plugin is not connected (Dashboard, Plugins and TagFlux screens). Leave your email and the TagFlux team contacts you to set everything up, free of charge.
- Privacy: the banner is strictly opt-in — nothing is sent unless you explicitly submit it; dismissing it is permanent and sends nothing. Disclosure added to the External services section.
- i18n: banner fully translated (es_ES).
1.1.0
- New: server-side conversion tracking (dual mode). Submissions are also reported through the TagFlux backend using the Google Click Identifier, recovering conversions lost when the gtag script is blocked. Google Ads deduplicates both paths via a shared order ID.
- New: first-party capture of
gclid/wbraid/gbraidin a cookie and a hidden form field (cookieless fallback). - New: Consent Mode v2 support — reads the visitor’s real consent state from the consent banner (dataLayer) and forwards it with each server-side conversion.
- New: optional Enhanced Conversions — email/phone are SHA-256-hashed before leaving the site, and only sent if you enable the setting and the visitor granted ad consent.
- New: “Server-side conversions” dashboard card with upload status (sent/failed/pending) and failure reasons, including a notice when the Enhanced Conversions terms are pending acceptance in Google Ads.
- New: non-blocking configuration warnings in Settings when server-side tracking is misconfigured (no Google account connected, no forms selected, or Enhanced Conversions without a consent manager).
- Fix: the admin now displays in Spanish on Spanish sites — the plugin never loaded its textdomain; all strings extracted and translated (es_ES).
1.0.2
- Docs: clearer setup guide and an expanded FAQ for Google Ads conversion tracking with Contact Form 7, WPForms, Elementor, Ninja Forms and Divi.
- No functional changes.
1.0.1
- Fix: Google connection errors (e.g. missing permissions) are now shown in the admin panel instead of failing silently.
1.0.0
- Initial release on WordPress.org
- Google Ads OAuth
- Form detection: WPForms, Divi 4, Contact Form 7, Elementor Pro, Ninja Forms
- Metrics dashboard (clicks, CPC, conversions, cost)
- Breakdowns by form, campaign and landing page
- Site ownership verification via REST API
- Privacy: explicit opt-in (“Connect to TagFlux”) before any data leaves the site; activation makes no remote calls. “Disconnect site” button and uninstall cleanup
- Privacy: external-services disclosure + suggested privacy policy content
- Upgrade routine (version-gated migrations via plugins_loaded)
- Available in English and Spanish
