{"id":350705,"date":"2026-08-14T13:14:48","date_gmt":"2026-08-14T13:14:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ad-click-tracking-for-gravity-forms\/"},"modified":"2026-08-14T13:14:34","modified_gmt":"2026-08-14T13:14:34","slug":"ad-click-tracking-for-gravity-forms","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/ad-click-tracking-for-gravity-forms\/","author":18824358,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Ad Click Tracking for Gravity Forms","header_author":"Plugin Brewery","header_description":"Capture Google, Microsoft and Meta ad click IDs (gclid, msclkid, fbclid) on every Gravity Forms entry for reliable lead attribution.","assets_banners_color":"74716a","last_updated":"2026-08-14 13:14:34","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/pluginbrewery.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":33,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"pluginbrewery","date":"2026-08-14 13:14:34"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3647409,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3647409,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3647409,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3647409,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3647409,"resolution":"1","location":"assets","locale":"","width":1280,"height":1240},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3647409,"resolution":"2","location":"assets","locale":"","width":1280,"height":660},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3647409,"resolution":"3","location":"assets","locale":"","width":1280,"height":880}},"screenshots":{"1":"Choose first or last click attribution, and turn tracking on for every form at once.","2":"Enable or disable ad click tracking on any individual Gravity Form.","3":"The captured Ad Source, Ad Network and Ad Click ID saved with the entry."}},"plugin_section":[],"plugin_tags":[5375,986,34183,985,1655],"plugin_category":[],"plugin_contributors":[251686],"plugin_business_model":[],"class_list":["post-350705","plugin","type-plugin","status-publish","hentry","plugin_tags-click-tracking","plugin_tags-conversion-tracking","plugin_tags-gclid","plugin_tags-google-ads","plugin_tags-gravity-forms","plugin_contributors-pluginbrewery","plugin_committers-pluginbrewery"],"banners":{"banner":"https:\/\/ps.w.org\/ad-click-tracking-for-gravity-forms\/assets\/banner-772x250.jpg?rev=3647409","banner_2x":"https:\/\/ps.w.org\/ad-click-tracking-for-gravity-forms\/assets\/banner-1544x500.jpg?rev=3647409","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/ad-click-tracking-for-gravity-forms\/assets\/icon.svg?rev=3647409","icon":"https:\/\/ps.w.org\/ad-click-tracking-for-gravity-forms\/assets\/icon.svg?rev=3647409","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ad-click-tracking-for-gravity-forms\/assets\/screenshot-1.png?rev=3647409","caption":"Choose first or last click attribution, and turn tracking on for every form at once."},{"src":"https:\/\/ps.w.org\/ad-click-tracking-for-gravity-forms\/assets\/screenshot-2.png?rev=3647409","caption":"Enable or disable ad click tracking on any individual Gravity Form."},{"src":"https:\/\/ps.w.org\/ad-click-tracking-for-gravity-forms\/assets\/screenshot-3.png?rev=3647409","caption":"The captured Ad Source, Ad Network and Ad Click ID saved with the entry."}],"raw_content":"<!--section=description-->\n<p>Ad Click Tracking for Gravity Forms records which ad click brought each lead to your site, so you can connect Gravity Forms entries back to your paid campaigns. When a visitor arrives from a paid ad, the plugin captures the click identifier and stores it for 30 days in a first-party cookie. The next time that visitor submits one of your forms, the captured values are saved with the entry.<\/p>\n\n<p>It detects the major ad networks automatically:<\/p>\n\n<ul>\n<li><strong>Google Ads<\/strong> \u2014 <code>gclid<\/code>, <code>gbraid<\/code>, <code>wbraid<\/code>, plus the <code>gad_source<\/code> and <code>gad_campaignid<\/code> markers Google adds to every ad click (and Google Ads landing-page referrers)<\/li>\n<li><strong>Microsoft Advertising<\/strong> \u2014 <code>msclkid<\/code><\/li>\n<li><strong>Meta (Facebook\/Instagram) Ads<\/strong> \u2014 <code>fbclid<\/code>, once the visit is also marked as paid<\/li>\n<\/ul>\n\n<p>Campaigns tagged by hand are recognised too: a paid <code>utm_medium<\/code> such as <code>cpc<\/code>, <code>ppc<\/code> or <code>paid<\/code>, alongside a <code>utm_source<\/code> naming Google, Bing\/Microsoft or Facebook\/Instagram. That matters because <code>gclid<\/code> and <code>msclkid<\/code> only exist when auto-tagging is switched on.<\/p>\n\n<p>A visit that cannot be shown to come from a paid ad is recorded as <code>Unknown<\/code> rather than credited to a network. Facebook adds <code>fbclid<\/code> to organic links as well as ads, so it never counts as paid on its own.<\/p>\n\n<p>Three values are stored on every entry:<\/p>\n\n<ul>\n<li><strong>Ad Source<\/strong> \u2014 a friendly label such as <code>Google Ads<\/code>, <code>Microsoft Ads<\/code>, <code>Meta Ads<\/code>, or <code>Unknown<\/code>.<\/li>\n<li><strong>Ad Network<\/strong> \u2014 a machine-friendly slug (<code>google<\/code>, <code>microsoft<\/code>, <code>meta<\/code>).<\/li>\n<li><strong>Ad Click ID<\/strong> \u2014 the captured click identifier.<\/li>\n<\/ul>\n\n<h4>Built for Gravity Forms<\/h4>\n\n<p>Hidden tracking fields are added to your forms automatically and saved with every entry \u2014 no form editing required. Turn tracking on for all forms at once under Settings \u2192 Ad Click Tracking, or per form under Form Settings. The captured values appear on each entry like any other field, so they flow into entry exports and notifications automatically.<\/p>\n\n<h4>Lightweight by design<\/h4>\n\n<ul>\n<li>No external requests \u2014 everything happens in a small front-end script and first-party cookies.<\/li>\n<li>No custom database tables.<\/li>\n<li>Choose first-click or last-click attribution, so multi-page visits resolve correctly.<\/li>\n<\/ul>\n\n<h4>Upgrade to full attribution<\/h4>\n\n<p>Ad Click Tracking captures paid ad clicks. When you need to know where <em>every<\/em> lead came from, upgrade to <strong>Referral Source Tracking for Gravity Forms<\/strong>:<\/p>\n\n<ul>\n<li>Every traffic source \u2014 organic search, referral links, social, email and direct, not just paid ads.<\/li>\n<li>AI and LLM traffic \u2014 ChatGPT, Perplexity, Copilot, Claude, Grok and DeepSeek, with Gemini attributed under Google.<\/li>\n<li>Complete UTM capture: source, medium, campaign, term and content.<\/li>\n<li>First-touch and last-touch together, with an adjustable attribution window.<\/li>\n<li>Built-in reporting across the entries you already collect.<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/pluginbrewery.com\/wordpress-plugins\/gravity-forms-referral-tracking\/?utm_source=ad-click-tracking-for-gravity-forms&amp;utm_medium=readme&amp;utm_campaign=free-to-pro&amp;utm_content=description\">See Referral Source Tracking for Gravity Forms<\/a><\/p>\n\n<h4>Third-party libraries<\/h4>\n\n<p>This plugin bundles <a href=\"https:\/\/github.com\/js-cookie\/js-cookie\">js-cookie<\/a> v3.0.5 (MIT licence) to read and write the first-party cookie. The unminified, human-readable source for the bundled build is available at https:\/\/github.com\/js-cookie\/js-cookie\/blob\/v3.0.5\/dist\/js.cookie.js<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/ad-click-tracking-for-gravity-forms<\/code>, or install it through the Plugins screen in WordPress.<\/li>\n<li>Activate the plugin through the Plugins screen.<\/li>\n<li>Go to Settings \u2192 Ad Click Tracking to enable tracking for all forms by default, or enable it per form under Form Settings.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20send%20data%20to%20google%2C%20microsoft%2C%20or%20meta%3F\"><h3>Does this send data to Google, Microsoft, or Meta?<\/h3><\/dt>\n<dd><p>No. The plugin only stores the captured values with your Gravity Forms entries. It makes no external requests.<\/p><\/dd>\n<dt id=\"how%20long%20is%20the%20click%20id%20stored%3F\"><h3>How long is the click ID stored?<\/h3><\/dt>\n<dd><p>The click identifier is stored in a first-party cookie for 30 days. You can choose whether the first or the most recent ad click within that window is captured, under Settings \u2192 Ad Click Tracking.<\/p><\/dd>\n<dt id=\"i%20tested%20two%20different%20ads%20and%20only%20the%20first%20one%20was%20recorded\"><h3>I tested two different ads and only the first one was recorded<\/h3><\/dt>\n<dd><p>That is first-click attribution working as intended. With <strong>First click<\/strong> selected, the first ad click is kept for the full 30 days, so clicking a different ad later will not replace it. Clear this site's cookies or use a private window between tests, or switch to <strong>Last click<\/strong> under Settings \u2192 Ad Click Tracking.<\/p><\/dd>\n<dt id=\"traffic%20from%20a%20facebook%20or%20instagram%20link%20shows%20as%20unknown\"><h3>Traffic from a Facebook or Instagram link shows as Unknown<\/h3><\/dt>\n<dd><p>Facebook adds <code>fbclid<\/code> to every outbound link, organic posts included, so on its own it cannot prove the visit came from an ad. It is recorded as Meta Ads once the link is also tagged as paid \u2014 for example <code>utm_medium=paid<\/code> \u2014 which you can set under URL parameters in Ads Manager. This is deliberate: it keeps organic Facebook and Instagram traffic from being counted as paid.<\/p><\/dd>\n<dt id=\"can%20i%20use%20the%20captured%20values%20in%20notifications%20and%20confirmations%3F\"><h3>Can I use the captured values in notifications and confirmations?<\/h3><\/dt>\n<dd><p>Yes. The three tracking fields are real Gravity Forms fields, so they work as standard merge tags \u2014 for example <code>{Ad Source:2185230}<\/code> \u2014 and appear in the merge tag drop-down wherever Gravity Forms offers one.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20add%20anything%20to%20my%20forms%3F\"><h3>Do I need to add anything to my forms?<\/h3><\/dt>\n<dd><p>No. Hidden tracking fields are added automatically when tracking is enabled, and the values are saved with each entry.<\/p><\/dd>\n<dt id=\"where%20do%20i%20see%20the%20captured%20values%3F\"><h3>Where do I see the captured values?<\/h3><\/dt>\n<dd><p>On each entry, alongside your regular form fields \u2014 they also come along in entry exports and can be used in notifications like any other field.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0 Aug 13, 2026<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Capture Google, Microsoft and Meta ad click IDs (gclid, msclkid, fbclid) on every Gravity Forms entry for reliable lead attribution.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/350705","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=350705"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pluginbrewery"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=350705"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=350705"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=350705"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=350705"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=350705"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=350705"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}