{"id":323356,"date":"2026-06-10T14:38:49","date_gmt":"2026-06-10T14:38:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/tagflux\/"},"modified":"2026-07-12T10:03:31","modified_gmt":"2026-07-12T10:03:31","slug":"tagflux","status":"publish","type":"plugin","link":"https:\/\/scn.wordpress.org\/plugins\/tagflux\/","author":23512796,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.0.1","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"TagFlux","header_author":"Equipo TagFlux","header_description":"Auto-detect your WordPress forms and track their submissions as Google Ads conversions \u2014 no code or Tag Manager needed.","assets_banners_color":"f9ded0","last_updated":"2026-07-12 10:03:31","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/tagflux.io\/tagflux-plugin","header_author_uri":"https:\/\/tagflux.io","rating":5,"author_block_rating":0,"active_installs":0,"downloads":279,"num_ratings":1,"support_threads":1,"support_threads_resolved":1,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"tagflux","date":"2026-06-10 14:38:39"},"1.0.1":{"tag":"1.0.1","author":"tagflux","date":"2026-06-25 10:52:39"},"1.0.2":{"tag":"1.0.2","author":"tagflux","date":"2026-06-26 15:12:49"},"1.1.0":{"tag":"1.1.0","author":"tagflux","date":"2026-07-12 10:03:31"}},"upgrade_notice":{"1.1.0":"<p>Adds server-side conversion tracking (dual mode) with Consent Mode v2 and optional Enhanced Conversions \u2014 recovers conversions lost to blocked scripts, deduplicated via order ID. Also fixes the Spanish admin translations not loading. Recommended update.<\/p>","1.0.2":"<p>Clearer setup docs and an expanded FAQ for Google Ads conversion tracking. No functional changes.<\/p>","1.0.1":"<p>Improves error reporting when connecting to Google Ads. Recommended update.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3567692,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3567692,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3567692,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3567692,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3567702,"resolution":"1","location":"assets","locale":"","width":1219,"height":1264},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3567702,"resolution":"2","location":"assets","locale":"","width":1100,"height":451},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3567702,"resolution":"3","location":"assets","locale":"","width":1093,"height":1277}},"screenshots":{"1":"Dashboard with Google Ads metrics (clicks, CPC, conversions, cost) and breakdowns by form and campaign.","2":"Onboarding: the explicit \"Connect to TagFlux\" opt-in, disclosing exactly what data is sent before anything leaves your site.","3":"Settings: connect your Google Ads account, set the cookie consent mode, and disconnect the site whenever you want."}},"plugin_section":[],"plugin_tags":[1152,986,76538,985,130711],"plugin_category":[],"plugin_contributors":[266527],"plugin_business_model":[],"class_list":["post-323356","plugin","type-plugin","status-publish","hentry","plugin_tags-contact-form-7","plugin_tags-conversion-tracking","plugin_tags-elementor","plugin_tags-google-ads","plugin_tags-wpforms","plugin_contributors-tagflux","plugin_committers-tagflux"],"banners":{"banner":"https:\/\/ps.w.org\/tagflux\/assets\/banner-772x250.png?rev=3567692","banner_2x":"https:\/\/ps.w.org\/tagflux\/assets\/banner-1544x500.png?rev=3567692","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/tagflux\/assets\/icon-128x128.png?rev=3567692","icon_2x":"https:\/\/ps.w.org\/tagflux\/assets\/icon-256x256.png?rev=3567692","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/tagflux\/assets\/screenshot-1.jpg?rev=3567702","caption":"Dashboard with Google Ads metrics (clicks, CPC, conversions, cost) and breakdowns by form and campaign."},{"src":"https:\/\/ps.w.org\/tagflux\/assets\/screenshot-2.jpg?rev=3567702","caption":"Onboarding: the explicit \"Connect to TagFlux\" opt-in, disclosing exactly what data is sent before anything leaves your site."},{"src":"https:\/\/ps.w.org\/tagflux\/assets\/screenshot-3.jpg?rev=3567702","caption":"Settings: connect your Google Ads account, set the cookie consent mode, and disconnect the site whenever you want."}],"raw_content":"<!--section=description-->\n<p>TagFlux is a Google Ads conversion tracking plugin for WordPress forms. It auto-detects the forms already installed on your site, lets you pick which submissions count as conversions, and sends them to Google Ads automatically \u2014 no code, no Google Tag Manager, no manual event setup.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Google Ads connection via OAuth<\/li>\n<li>Auto-detection of forms: WPForms, Divi 4, Contact Form 7, Elementor Pro, Ninja Forms<\/li>\n<li>Pick which forms to track from the admin<\/li>\n<li>Automatic conversion submission to Google Ads<\/li>\n<li>Dashboard with key metrics: clicks, CPC, conversions, total cost<\/li>\n<li>Breakdowns by form, campaign and landing page<\/li>\n<li>Server-side conversion tracking (dual mode): submissions are also reported through the TagFlux backend, recovering conversions lost when the gtag script is blocked \u2014 deduplicated in Google Ads via a shared order ID<\/li>\n<li>Consent Mode v2 aware: reads the visitor's real consent state from your consent banner and forwards it with each server-side conversion<\/li>\n<li>Optional Enhanced Conversions: email\/phone sent as SHA-256 hashes, only if you enable it and the visitor granted consent<\/li>\n<li>Compatible with consent managers (GDPR-friendly)<\/li>\n<li>Available in English and Spanish<\/li>\n<\/ul>\n\n<p><strong>How it works:<\/strong><\/p>\n\n<ol>\n<li>Install and activate the plugin \u2014 activation contacts no external service.<\/li>\n<li>Click \"Connect to TagFlux\" and connect your Google Ads account via OAuth.<\/li>\n<li>Select which forms to track. From then on, every submission is sent to Google Ads as a conversion automatically.<\/li>\n<\/ol>\n\n<p><strong>Why TagFlux instead of Google Tag Manager?<\/strong><\/p>\n\n<p>Setting up Google Ads conversion tracking by hand usually means editing gtag snippets, wiring up triggers in Google Tag Manager, and testing events one by one. TagFlux skips all of that: it detects your forms, maps each one to a conversion, and reports submissions to Google Ads through its own backend using the Google Click Identifier (gclid). No tags to maintain, no Tag Manager container, no developer needed.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to two external services to provide conversion tracking. It does not work without them.<\/p>\n\n<p><strong>1. TagFlux backend (api.tagflux.io)<\/strong><\/p>\n\n<p>TagFlux relays conversion data to Google Ads through its own backend.<\/p>\n\n<ul>\n<li><strong>When you connect the site:<\/strong> 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 <code>https:\/\/api.tagflux.io\/api\/auth\/register<\/code> to register the site and obtain an API key. No personal data is sent at this step.<\/li>\n<li><strong>When a tracked form is submitted:<\/strong> it sends a Google Click Identifier (<code>gclid<\/code>\/<code>wbraid<\/code>\/<code>gbraid<\/code>, stored in a first-party cookie tagged as <code>marketing<\/code>), the visitor's Consent Mode v2 state, an order ID used for deduplication, the form\/campaign identifiers and the conversion event to <code>https:\/\/api.tagflux.io<\/code>. The contents of the form fields (names, emails, messages) are <strong>not<\/strong> sent \u2014 with one exception: if you enable the optional Enhanced Conversions setting <strong>and<\/strong> 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).<\/li>\n<\/ul>\n\n<p>TagFlux terms: https:\/\/tagflux.io\/plugin-terms\/ \u2014 privacy policy: https:\/\/tagflux.io\/plugin-privacy-policy\/<\/p>\n\n<p><strong>2. Google Ads \/ Google OAuth<\/strong><\/p>\n\n<p>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.<\/p>\n\n<p>Google terms: https:\/\/policies.google.com\/terms \u2014 privacy policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>tagflux<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install it from the WordPress plugin repository.<\/li>\n<li>Activate the plugin from the WordPress \"Plugins\" menu. Activation does not contact any external service.<\/li>\n<li>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) \u2014 and only after you click. See the \"External services\" section below.<\/li>\n<li>Connect your Google Ads account.<\/li>\n<li>Select the forms you want to track.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"which%20form%20plugins%20are%20supported%3F\"><h3>Which form plugins are supported?<\/h3><\/dt>\n<dd><p>WPForms, Divi 4, Contact Form 7, Elementor Pro and Ninja Forms.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20google%20ads%20account%3F\"><h3>Do I need a Google Ads account?<\/h3><\/dt>\n<dd><p>Yes, you need an active Google Ads account to track conversions.<\/p><\/dd>\n<dt id=\"does%20this%20work%20without%20google%20tag%20manager%3F\"><h3>Does this work without Google Tag Manager?<\/h3><\/dt>\n<dd><p>Yes. TagFlux does not require Google Tag Manager or any manual gtag setup. It detects your forms and reports conversions to Google Ads on its own.<\/p><\/dd>\n<dt id=\"how%20is%20it%20different%20from%20tracking%20google%20ads%20conversions%20with%20gtm%20or%20gtag%3F\"><h3>How is it different from tracking Google Ads conversions with GTM or gtag?<\/h3><\/dt>\n<dd><p>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 \u2014 no container, no code.<\/p><\/dd>\n<dt id=\"can%20i%20track%20more%20than%20one%20conversion%20action%3F\"><h3>Can I track more than one conversion action?<\/h3><\/dt>\n<dd><p>Yes. You can choose multiple forms to track, and every submission of each tracked form is reported to Google Ads.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%3F\"><h3>Does it work with WooCommerce?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"which%20page%20builders%20and%20themes%20are%20supported%3F\"><h3>Which page builders and themes are supported?<\/h3><\/dt>\n<dd><p>Any theme. Form detection currently covers Contact Form 7, WPForms, Elementor Pro, Ninja Forms and Divi 4 forms, regardless of the theme you use.<\/p><\/dd>\n<dt id=\"is%20it%20gdpr%20compliant%3F\"><h3>Is it GDPR compliant?<\/h3><\/dt>\n<dd><p>Yes. The tracking cookie is tagged as <code>marketing<\/code> so consent managers can control it. 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.<\/p><\/dd>\n<dt id=\"what%20is%20server-side%20%28dual%29%20conversion%20tracking%3F\"><h3>What is server-side (dual) conversion tracking?<\/h3><\/dt>\n<dd><p>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 \u2014 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.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20any%20data%20when%20i%20activate%20it%3F\"><h3>Does the plugin send any data when I activate it?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"how%20do%20i%20disconnect%20or%20remove%20my%20data%3F\"><h3>How do I disconnect or remove my data?<\/h3><\/dt>\n<dd><p>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 <code>uninstall.php<\/code>).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>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.<\/li>\n<li>New: first-party capture of <code>gclid<\/code>\/<code>wbraid<\/code>\/<code>gbraid<\/code> in a cookie and a hidden form field (cookieless fallback).<\/li>\n<li>New: Consent Mode v2 support \u2014 reads the visitor's real consent state from the consent banner (dataLayer) and forwards it with each server-side conversion.<\/li>\n<li>New: optional Enhanced Conversions \u2014 email\/phone are SHA-256-hashed before leaving the site, and only sent if you enable the setting and the visitor granted ad consent.<\/li>\n<li>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.<\/li>\n<li>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).<\/li>\n<li>Fix: the admin now displays in Spanish on Spanish sites \u2014 the plugin never loaded its textdomain; all strings extracted and translated (es_ES).<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Docs: clearer setup guide and an expanded FAQ for Google Ads conversion tracking with Contact Form 7, WPForms, Elementor, Ninja Forms and Divi.<\/li>\n<li>No functional changes.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: Google connection errors (e.g. missing permissions) are now shown in the admin panel instead of failing silently.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release on WordPress.org<\/li>\n<li>Google Ads OAuth<\/li>\n<li>Form detection: WPForms, Divi 4, Contact Form 7, Elementor Pro, Ninja Forms<\/li>\n<li>Metrics dashboard (clicks, CPC, conversions, cost)<\/li>\n<li>Breakdowns by form, campaign and landing page<\/li>\n<li>Site ownership verification via REST API<\/li>\n<li>Privacy: explicit opt-in (\"Connect to TagFlux\") before any data leaves the site; activation makes no remote calls. \"Disconnect site\" button and uninstall cleanup<\/li>\n<li>Privacy: external-services disclosure + suggested privacy policy content<\/li>\n<li>Upgrade routine (version-gated migrations via plugins_loaded)<\/li>\n<li>Available in English and Spanish<\/li>\n<\/ul>","raw_excerpt":"Google Ads conversion tracking for WordPress forms \u2014 auto-detect Contact Form 7, WPForms, Elementor, Ninja Forms &amp; Divi. No code, no GTM.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/323356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=323356"}],"author":[{"embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tagflux"}],"wp:attachment":[{"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=323356"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=323356"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=323356"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=323356"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=323356"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/scn.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=323356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}