Form Attribution Tracking
Track the complete customer journey from first click to conversion with referral and Google Ads attribution data captured in your WordPress forms. Overview Form Attribution Tracking is a WordPress plugin that automatically captures and stores complete attribution data from Google Ads campaigns (and other traffic sources) directly in form submissions. This enables you to connect specific leads back to their originating campaigns, keywords, and ads in Google Ads for accurate conversion tracking and ROI measurement. The plugin uses first-touch attribution, meaning it captures the visitor’s original traffic source on their first visit and maintains that data through their entire journey until they convert via a form submission. Key Features Complete Google Ads Attribution Data Automatically captures 8 attribution fields for every form submission: Attribution Source – Traffic source (google, facebook, direct, etc.) Attribution Medium – Traffic medium (cpc, organic, referral, etc.) Attribution Campaign – Campaign name from utm_campaign Attribution Term – Keyword from utm_term Attribution Content – Ad variation from utm_content Google Click ID (GCLID) – Direct link to the specific Google Ads click Landing Page – The first page the visitor landed on First Click Timestamp – When the visitor first arrived Google Ads Conversion Tracking The Google Click ID (GCLID) field enables you to: – Import conversions directly back into Google Ads – Connect form submissions to specific ad clicks – Measure true campaign ROI based on actual leads/sales – Track the complete path from ad click to conversion – Attribute conversions to the exact keyword and ad that drove them Smart Tracking Technology First-Touch Attribution – Captures original source, not last-click Cookie Persistence – Maintains attribution data across multiple sessions (configurable 1-365 days) JavaScript + PHP Fallback – Dual-layer tracking ensures data capture even if JavaScript is disabled Dynamic Form Support – Mutation observer watches for forms loaded via AJAX UTM Parameter Detection – Automatically parses and stores all UTM parameters Intelligent Source Categorization – Recognizes and categorizes traffic from Google, Facebook, LinkedIn, and 15+ other platforms Universal Form Plugin Support Works seamlessly with: – Gravity Forms – Fluent Forms – Formidable Forms Modular architecture makes it easy to extend to other form plugins. Comprehensive Admin Dashboard Statistics Dashboard – View submission counts, attribution source distribution, and recent activity Form Management – See which forms have attribution tracking and bulk-add fields to all forms Debug Mode – Browser console logging for troubleshooting Flexible Configuration – Customize cookie duration and auto-add behavior How It Works Data Capture Flow Visitor Arrives – When someone visits your site, the JavaScript tracking code immediately captures: All UTM parameters from the URL Google Click ID (GCLID) if present HTTP referrer to determine traffic source Current page URL as landing page Current timestamp Attribution Stored – All data is packaged as JSON and stored in a first-party cookie with your configured expiration (default 30 days) First-Touch Persistence – If the visitor returns multiple times before converting, the original attribution data is preserved (not overwritten) Form Submission – When the visitor fills out a form, the tracking code automatically: Reads the stored attribution data Populates hidden fields in the form Submits with the complete attribution chain PHP Fallback – If JavaScript fails to populate fields, the PHP integration captures attribution server-side before form processing Integration with Google Ads To enable conversion imports in Google Ads: Forms will capture the GCLID parameter automatically from your ad URLs Export your form submissions (including attribution fields) as CSV In Google Ads, navigate to Tools → Conversions → Uploads Create a conversion action using the GCLID field to match conversions Upload your leads with timestamps and GCLIDs Google Ads will attribute the conversions to the exact campaigns, ad groups, keywords, and ads that generated them This creates a closed feedback loop between your ad spend and actual business results. Configuration Settings Access settings via Form Attribution Tracking → Settings: Auto-add to new forms – Automatically adds all 8 attribution fields when new forms are created Cookie Duration – How long to preserve first-touch attribution data (1-365 days, default 30) Debug Mode – Enables detailed logging in browser console for troubleshooting Managing Existing Forms Use the Manage Forms tab to: – View all forms and their attribution tracking status – Bulk-add attribution fields to all existing forms with one click – See which forms already have tracking enabled Statistics The Statistics tab provides: – Total submissions tracked across all forms – Breakdown of traffic sources (Google, Facebook, Direct, etc.) – Recent form submissions with their attribution data – Forms-with-tracking count Usage For Marketers Once installed and configured, the plugin works automatically. Every form submission will include complete attribution data that you can: Export to CSV and upload to Google Ads for conversion tracking Analyze in your CRM to understand which campaigns drive the best leads Use to calculate true cost-per-lead and ROI by campaign Review to optimize your landing pages and ad targeting For Developers JavaScript API The plugin exposes a global API for programmatic access: `javascript // Get full attribution data object const attribution = window.FormAttributionTracking.getAttributionData(); // Returns: { utm_source, utm_medium, utm_campaign, utm_term, utm_content, gclid, landing_page, timestamp } // Get just the traffic source (legacy method) const source = window.FormAttributionTracking.getReferralSource(); // Manually trigger form field population window.FormAttributionTracking.populateFormFields(); // Access configuration const config = window.FormAttributionTracking.config; ` JavaScript Events Listen for when attribution data is populated: `javascript window.addEventListener(‘attributionDataPopulated’, function(event) { console.log(‘Attribution captured:’, event.detail.attribution); console.log(‘Fields populated:’, event.detail.fieldsCount); }); ` PHP Hooks and Filters Extend or customize the plugin: `php // Add custom form plugin integration add_filter(‘attribution_tracking_integrations’, function($integrations) { $integrations[‘CustomForms’] = new CustomFormsIntegration(); return $integrations; }); // React to integration initialization add_action(‘attribution_tracking_integration_initialized’, function($integration_name) { error_log(“Attribution tracking initialized for: ” . $integration_name); }); // Hook into debug logging add_action(‘form_referral_source_debug_log’, function($message, $context, $source) { error_log(“[$source] $message: ” . print_r($context, true)); }, 10, 3); ` Attribution Field Names The plugin creates these hidden fields in your forms: attribution_source – Traffic source identifier attribution_medium – Marketing medium attribution_campaign – Campaign name attribution_term – Keyword/search term attribution_content – Ad content variation attribution_gclid – Google Ads Click ID attribution_landing_page – First page visited attribution_timestamp – ISO 8601 timestamp of first visit All fields are automatically populated by JavaScript and have PHP fallbacks. Traffic Source Detection The plugin intelligently categorizes traffic sources: UTM Parameters (Highest Priority) If UTM parameters are present in the URL, they are captured exactly as provided. Known Platforms (Automatic Categorization) The plugin recognizes and categorizes referrers from: – Google (google.com, google.co.uk, etc.) – Facebook (facebook.com, fb.com, m.facebook.com) – Twitter/X (twitter.com, x.com, t.co) – LinkedIn (linkedin.com, lnkd.in) – YouTube (youtube.com, youtu.be) – Instagram (instagram.com) – TikTok (tiktok.com) – Pinterest (pinterest.com, pin.it) – Reddit (reddit.com) – Bing (bing.com) – Yahoo (yahoo.com) – DuckDuckGo (duckduckgo.com) Generic Referrals For unlisted referrers, the clean hostname is stored (e.g., “example.com”) Direct Traffic When no referrer or UTM parameters are present, traffic is marked as “direct” Troubleshooting Attribution Data Not Being Captured Enable Debug Mode in plugin settings Open browser console (F12) and check for “[Referral Source]” log messages Verify cookies are enabled in the browser Check that JavaScript is not being blocked Fields Not Populating in Forms Enable Debug Mode and check console for “Field populated” messages Verify the form fields exist (check Manage Forms tab) Test with a fresh browser/incognito window Check that the form HTML includes the expected hidden field names Forms Not Showing in Dashboard Verify your form plugin (Gravity Forms, Fluent Forms, or Formidable Forms) is active Check that you have forms created in that plugin Look for PHP errors in debug.log if WP_DEBUG is enabled GCLID Not Being Captured Verify your Google Ads URLs include the {gclid} parameter Use Google’s Campaign URL Builder to test: https://ga-dev-tools.google/campaign-url-builder/ Check that cookies are working (GCLID is stored in the attribution cookie) Enable Debug Mode to see what parameters are being captured Extending the Plugin Adding Support for Other Form Plugins Create a new integration class: `php <?php namespace FormAttributionTracking\Integrations; use FormAttributionTracking\Abstracts\AbstractFormIntegration; class CustomFormPluginIntegration extends AbstractFormIntegration { public function isAvailable(): bool { return class_exists(‘CustomFormPlugin’); } public function getName(): string { return 'Custom Form Plugin'; } public function getVersion(): string { return '1.0.0'; } protected function registerHooks(): void { // Hook into your form plugin's save/render events add_action('custom_form_save', [$this, 'onFormSaved'], 10, 2); } public function addReferralSourceField(int $formId): bool { // Implement logic to add hidden fields to forms } public function removeReferralSourceField(int $formId): bool { // Implement logic to remove hidden fields } public function hasReferralSourceField(int $formId): bool { // Check if form has attribution fields } public function getAllForms(): array { // Return array of all forms } } ` Register your integration: `php add_filter(‘attribution_tracking_integrations’, function($integrations) { $integrations[‘CustomFormPlugin’] = new CustomFormPluginIntegration(); return $integrations; }); ` Architecture The plugin uses a clean, modern PHP 8+ architecture: ` src/ ├── Contracts/ │ └── FormIntegrationInterface.php # Interface all integrations must implement ├── Abstracts/ │ └── AbstractFormIntegration.php # Base class with common functionality ├── Integrations/ │ ├── GravityFormsIntegration.php # Gravity Forms support │ ├── FluentFormsIntegration.php # Fluent Forms support │ └── FormidableFormsIntegration.php # Formidable Forms support ├── Views/ │ └── admin-page.php # Admin dashboard template └── Plugin.php # Main plugin orchestration class ` Privacy & Compliance This plugin stores first-party cookies to maintain attribution data. Consider these compliance aspects: Cookie Duration: Configurable 1-365 days (default 30) Data Stored: Marketing attribution data only (no PII) First-Party Cookies: Data stays on your domain User Control: Respects browser cookie settings GDPR: Consider adding cookie consent notices per your requirements Data Retention: Attribution data is only stored in form submissions per your form plugin’s data retention policies Support & Contributing For bug reports, feature requests, or contributions: Plugin Author: Ryan Howard Website: https://www.ryanhoward.dev Text Domain: form-attribution-tracking License This plugin is licensed under the GPL v2 or later.
Top keywords
- attribution52×3.27%
- form30×1.89%
- forms29×1.82%
- google25×1.57%
- data23×1.45%
- php18×1.13%
- source17×1.07%
- ads16×1.01%
- com16×1.01%
- tracking16×1.01%
- attribution data15×0.94%
- fields15×0.94%
Rank Math SEO – AI SEO Tools to Dominate SEO Rankings
Rank Math SEO – WordPress AI SEO Plugin to Rank Higher 📈 ★★★★★ Rank Math SEO helps you stay ahead of competitors with AI-powered SEO tools built for modern search engines, AI assistants, and evolving search experiences. The plugin brings powerful AI SEO tools right into WordPress. It helps you optimize content, include Schema Markup, add smart internal links, target the right keywords, run SEO checks, and more. Over 4 million WordPress websites trust Rank Math to grow their organic traffic faster. If you know you could be doing more for your website’s SEO but don’t have the time, Rank Math SEO is exactly what you need. Try the FREE Demo of Rank Math Features | Why Choose Rank Math? | Compare | Screenshots | Benefits [NEW] AI Visibility: Monitor Your Brand Across AI Search ➜ AI Visibility score to monitor your brand’s visibility ➜ Track how ChatGPT and other AI platforms mention your brand ➜ Monitor your brand’s sentiment across AI responses ➜ See how you compare against your competitors in AI Search ➜ Access complete transcripts of AI responses ➜ Check your brand’s AI Visibility across different countries Learn more about AI Visibility ➜ [NEW] AI Link Genius: Smart Internal Linking on Autopilot ➜ View every internal and external link on your site from one dashboard ➜ Update hundreds of links at once instead of editing pages one by one ➜ Get smart link suggestions as you write, right inside the editor ➜ Monitor broken links, redirects and overall link health ➜ Automatically link keyword variations to the right pages ➜ Get related post suggestions that keep readers on your site longer ➜ Find pages nobody links to and reconnect them to the rest of your site ➜ Export your link data for reports or audits Learn more about AI Link Genius ➜ Exclusive Content AI. Write Highly Optimized SEO Content Get Started with Content AI for FREE and enjoy: ➜ 40+ AI Tools Built for SEO ➜ Use AI SEO to write high-quality content ➜ Fix SEO Issues in One Click ➜ Generate AI Image Alt Text Instantly ➜ Get Instant SEO Help with RankBot ➜ Full Control via Role Manager Learn more about Content AI ➜ Rank Math Includes Every SEO Tool You Need to Rank Higher See the features only Rank Math offers, and find out why it’s the right SEO plugin for you. ✔ Intuitive Setup Wizard that configures Rank Math automatically for your site ✔ 16+ Schema types to add rich results in few clicks ✔ Optimize post for unlimited focus keywords (5 by default, unlimited with this filter) ✔ Content AI to help you write SEO-friendly content ✔ Google Search Console integration ✔ Google Analytics Integration ✔ LSI keyword suggestions to attract more traffic ✔ XML Sitemap with custom post type support ✔ Detailed content analysis with actionable SEO recommendations ✔ 30+ SEO tests with 1-click ✔ Module based system, enable only what you need ✔ SEO optimized breadcrumbs with theme support ✔ Smart Redirection manager to create redirects at scale ✔ Built-in 404 monitor to catch and fix broken links ✔ Internal link suggestions ✔ Role Manager to control what each team member can access ✔ Automatic ALT Text and Title tags for every image ✔ WordPress Multisite support Why is Rank Math such a game-changer? ✔ Fastest SEO plugin with barely any impact on site speed ✔ WooCommerce SEO with automatic Schema and meta tags ✔ Elementor SEO with native integration ✔ Divi SEO with native integration ✔ Local SEO tools to help nearby customers find your business ✔ Google AMP SEO with SEO data added automatically to AMP pages ✔ bbPress & BuddyPress SEO support with Q&A Schema ✔ 1-Click Import from Yoast ✔ 1-Click Import from AIO SEO ✔ 1-Click Import from SEOPress ✔ 1-Click Import from All In One Schema ✔ 1-Click Import from Redirection plugin ✔ Translation plugins support including WPML, Weglot, TranslatePress and Polylang ✔ Theme support including Astra, Kadence, Flothemes, OceanWP, Themify, Schema Theme and more ✔ Page builder support including Oxygen, WPBakery, Avada, Beaver Builder, and Page Builder Framework and more Who Can Benefit From Rank Math? Rank Math Plugin is perfect for: ✔ Bloggers ✔ eCommerce Store Owners ✔ Niche Sites ✔ Businesses ✔ Agencies ✔ Local Businesses ✔ Startups ✔ The Real Estate ✔ Artists & Photographers ✔ The Solution Offerer ✔ Directories ✔ Vloggers (Video Bloggers) ✔ Or any WordPress Website Take a sneak peek into Rank Math’s features Detailed Setup Tutorial BIG Publications are Raving About Rank Math Rank Math Reviews Rank Math Review – Why I Ditched Yoast For Rank Math Rank Math on Product Hunt Rank Math Plugin Review from an SEO Consultant and many more Check Rank Math PRO Which Makes SEO Easier & Faster Rank Math FREE VS PRO COMPARISON Unique Features of Rank Math PRO AI Link Genius ✔ AI-Powered Internal Link Suggestions ✔ Auto-Link Keyword Variations ✔ Automatic Link Audits & Monitor Link Health ✔ Bulk Link Update Tool Google Analytics & Search Console Integration ✔ Integrated Google Analytics, AdSense & Search Console Data ✔ Analyze the SEO Performance of Each Post & Page ✔ See Top Winning/Losing Posts & Keywords ✔ Keep Track of Position History ✔ Rank Tracker for Important Keywords Schema aka Structured Data aka Rich Snippets ✔ 20+ Pre-defined Schema types ✔ Import Schema from Other Websites ✔ Advanced Schema Builder to create any complex Schema Markup ✔ Schema Templates for Automation ✔ Conditional Schema Markup ✔ Multiple Location Schema On Any Page (using the Shortcode) SEO Automation ✔ Automated Image SEO ✔ Advanced Filtering for Images [https://i.rankmath.com/zAUHHP] ✔ Watermark Your images ✔ Advanced Post filtering ✔ Bulk Actions [index, noindex, redirect, etc.] ✔ Quick Edit SEO Details ✔ Bulk Import SEO Meta Details Using CSV file ✔ Auto Detect Videos and Generate Schema Markup for Them ✔ Auto Fetch Thumbnail, Duration of YouTube & Vimeo Videos ✔ Automatically Flush Facebook Thumbnails ✔ Open External Links in New Tabs ✔ Nofollow External Links ✔ Noindex Paginated, Archive, Search Result Pages ✔ Instant Indexing for Bing & Yandex [Also Google using our Instant Indexing Plugin] WooCommerce SEO ✔ Automatic Schema for WooCommerce Products ✔ Advanced Open Graph Tags for WooCommerce Products ✔ Automatic NoIndex Hidden Products ✔ Remove WooCommerce Product and Category Base ✔ Add Custom Brands to Products ✔ Add Global Identifier Schema Like GTIN/MPN – Even to Variations MANY MORE FEATURES ✔ PREMIUM 24x7x365 Dedicated Support Managers ✔ MOST COMPETITIVE PRICING EVER! CHECK ALL THE PREMIUM FEATURES AND PRICING HERE Connect with the Team and SEO Experts JOIN FACEBOOK GROUP COMMUNITY: The purpose of this Facebook group is to have a collective place where the community can help each other, and we can get some feedback to improve Rank Math as well. Joining the group is also a great way to connect with like-minded people and share your SEO experience. Branding Guideline Rank Math® SEO is a registered trademark. Please use the following format when mentioning the Rank Math plugin anywhere. * Rank Math [correct] * RankMath [incorrect] * Rankmath [incorrect] * rankmath [incorrect] * rankMath [incorrect] External Services Rank Math SEO connects to several external services to provide its features. Below is a full disclosure of each service, what data is sent, and when. Rank Math Keyword Suggestions API (api.rankmath.com) Used to provide live keyword suggestions as you type in the Focus Keyword field in the post editor. Keyword suggestions: Each time you type in the Focus Keyword field, the keyword and your site’s locale are sent to api.rankmath.com to retrieve related keyword suggestions. This call is made directly from your browser. No account or login is required for this feature. Service provider: Rank Math (ONE.COM INDIA PRIVATE LIMITED) Privacy policy: https://rankmath.com/privacy-policy/ Terms of service: https://rankmath.com/terms-of-service/ Rank Math API (rankmath.com) Used for site registration, license verification, and the SEO Analysis feature. Site registration / account connection: Sends your site URL, Rank Math username, and API key when you connect your Rank Math account. This is required to activate API-based features. Site disconnection: Sends your site URL, username, and API key when you disconnect your account to remove the registration from Rank Math’s servers. SEO Analysis: Sends your site URL, target keyword, and language when you run an SEO site analysis. Results are returned as a scored report. Dashboard widget: Fetches the latest Rank Math blog posts to display in the WordPress admin dashboard widget. No personal data is sent. Results are cached for 12 hours. Service provider: Rank Math (ONE.COM INDIA PRIVATE LIMITED) Privacy policy: https://rankmath.com/privacy-policy/ Terms of service: https://rankmath.com/terms-of-service/ Rank Math OAuth Connector (oauth.rankmath.com) Used to connect your site to Google services (Search Console, Google Analytics) via OAuth. OAuth token exchange: When you authorize Google services, your browser is redirected through oauth.rankmath.com to exchange the authorization code for access and refresh tokens. The authorization code is sent to this service; it returns OAuth tokens for use on your site. Token refresh: Sends your Google refresh token to obtain a new access token when the current one expires. Service provider: Rank Math (ONE.COM INDIA PRIVATE LIMITED) Privacy policy: https://rankmath.com/privacy-policy/ Terms of service: https://rankmath.com/terms-of-service/ Rank Math Content AI (cai.rankmath.com) Used to power AI-based content features. Only active when the Content AI module is enabled and you have a connected Rank Math account. Keyword research: Sends the target keyword, language, and country to fetch keyword suggestions and metrics. Bulk SEO meta generation: Sends post title and content to generate SEO titles and descriptions in bulk. Bulk image alt text generation: Sends image data (base64-encoded) to generate descriptive alt text for images. Default prompts sync: Sends your site URL, username, API key, and plugin version daily to keep AI prompt templates up to date. Credits/wallet check: Sends your username, API key, and site URL to check remaining Content AI usage credits. Service provider: Rank Math (ONE.COM INDIA PRIVATE LIMITED) Privacy policy: https://rankmath.com/privacy-policy/ Terms of service: https://rankmath.com/terms-of-service/ Google APIs (googleapis.com, google.com) Used by the Analytics module to retrieve website performance data. Only active when you have connected Google Analytics via the Rank Math Analytics module. Google Analytics data: Sends your OAuth access token to fetch data like traffic, keyword, impressions, etc for your site from the Google Analytics API. Token verification: Sends your OAuth access token to verify its validity and authorized scopes. Google Tag Manager script (googletagmanager.com): When a Google Analytics / Google Tag property ID is configured, the Google Tag (gtag.js) script is loaded from googletagmanager.com on your site’s front end. AMP analytics (cdn.ampproject.org): When AMP is active and a Google Analytics property is configured, the AMP analytics component script is loaded from cdn.ampproject.org. Service provider: Google LLC Privacy policy: https://policies.google.com/privacy Terms of service: https://policies.google.com/terms IndexNow API (api.indexnow.org) Used by the Instant Indexing module to notify search engines of new or updated content. Only active when the Instant Indexing module is enabled. Sends a list of URLs, your site URL, and your IndexNow API key to api.indexnow.org each time content is published or updated (or manually triggered). Service provider: Microsoft (Bing) Privacy policy: https://privacy.microsoft.com/en-us/privacystatement Terms of service: https://www.indexnow.org/faq Facebook Graph API (graph.facebook.com) Used to refresh Facebook’s cached preview when a post is updated. Only active when a Facebook App ID and App Secret are configured in Rank Math’s Social settings. Sends the post’s public URL and your Facebook App credentials to trigger a re-scrape of the page by Facebook. Service provider: Meta Platforms, Inc. Privacy policy: https://www.facebook.com/privacy/policy/ Terms of service: https://developers.facebook.com/terms/