=== BaseCloud UTM Tracker === Contributors: basecloud Tags: utm, tracking, analytics, forms, marketing Requires at least: 5.0 Tested up to: 6.8 Stable tag: 2.3.2 Requires PHP: 7.4 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Advanced UTM tracking with automated webhook injection for Gravity Forms, Elementor, WPForms, and Contact Form 7. == Description == **BaseCloud UTM Tracker v2.3** is the ultimate UTM tracking solution for WordPress with support for the "Big 4" form plugins, a stunning dark theme interface, and revolutionary async webhook support. = 🎯 THE COLLECTOR: Advanced Cookie Tracking = Automatically captures and stores UTM parameters from your marketing campaigns in secure, persistent cookies. = 📦 THE COURIER: Automated Webhook Injection = **Game Changer!** Automatically injects UTM data into ALL form webhook submissions - works with Gravity Forms, Elementor Pro, WPForms, and Contact Form 7! = The "Big 4" Form Support = * **Gravity Forms** - Full integration with async webhook support * **Elementor Pro Forms** - Webhook injection for page builder forms * **WPForms** - Complete webhook automation * **Contact Form 7** - Classic form plugin support = Key Features = * **🚀 Zero Manual Configuration** - Works automatically after activation * **🎯 COLLECTOR System** - Advanced cookie-based tracking for 8 parameters * **📦 COURIER System** - Automatic webhook injection for all major form plugins * **⚡ Async Webhook Support** - Works with background processing (critical for Gravity Forms) * **🔄 Real-Time Diagnostics** - Animated status dashboard shows system health * **📊 Entry Meta Storage** - UTM data saved with each Gravity Forms submission * **🎨 Beautiful Dashboard** - Modern, animated interface with live status indicators * **🔒 Privacy Compliant** - Secure cookies with proper SameSite and HTTPS support * **📱 iOS 14+ Support** - Tracks gbraid and wbraid for enhanced Apple privacy tracking = Tracked Parameters (8 Total) = 1. **referrer** - Previous page URL 2. **utm_source** - Campaign source (Google, Facebook, etc.) 3. **utm_medium** - Marketing medium (CPC, email, social) 4. **utm_campaign** - Campaign name 5. **utm_term** - Campaign keywords 6. **gclid** - Google Click ID 7. **gbraid** - Google Brand Engagement (iOS 14+) 8. **wbraid** - Web to App Brand Engagement (iOS 14+) = How THE COURIER Works = 1. Visitor arrives with UTM parameters in URL 2. COLLECTOR captures and stores data in cookies 3. Visitor submits a Gravity Form 4. COURIER automatically injects all UTM data into webhook payload 5. Your CRM receives complete attribution data - automatically! = Perfect For = * **Digital Marketing Agencies** - Complete campaign attribution without manual setup * **E-commerce Sites** - Track ROI from every marketing channel * **Lead Generation** - Automatic UTM data in your CRM * **SaaS Companies** - Understand customer acquisition sources * **PPC Campaigns** - Full Google Ads and Facebook Ads tracking = What's NEW in v2.0.0? = * 🎯 **COLLECTOR System** - Advanced cookie tracking engine * 📦 **COURIER System** - Automatic webhook injection (no manual fields!) * 🎨 **Animated Dashboard** - Real-time system diagnostics with animations * 📊 **Entry Meta Storage** - UTM data saved with each form submission * 🔧 **Excluded Webhooks** - Option to exclude specific webhook URLs * ✨ **iOS 14+ Support** - gbraid and wbraid parameter tracking * 🚀 **Zero Configuration** - Works automatically after activation = Gravity Forms Integration (THE COURIER) = **🚀 No Manual Field Creation Required!** The COURIER system automatically injects all UTM data into Gravity Forms webhook submissions. Simply: 1. Enable "Gravity Forms Integration" in plugin settings 2. Set up your Gravity Forms webhooks as normal 3. The COURIER automatically adds UTM data to every webhook request **Optional:** You can still create visible fields with parameter names (referrer, utm_source, etc.) if you want users to see the data. The COLLECTOR will populate them automatically. **Excluded Webhooks:** Configure specific webhook URLs to exclude from UTM injection (useful for internal notifications). = Technical Features = * **Lightweight** - Minimal impact on site performance * **Standards Compliant** - Follows WordPress coding standards * **Secure** - Proper data sanitization and validation * **Translatable** - Ready for internationalization * **Mobile Friendly** - Works across all devices and browsers * **Entry Meta Storage** - UTM data stored with each Gravity Forms entry * **Webhook Automation** - Zero configuration webhook injection * **Animated UI** - Real-time system status with smooth animations = Use Cases = **Marketing Attribution**: Track which campaigns generate the most leads and sales - automatically! **CRM Integration**: UTM data flows seamlessly to your CRM via Gravity Forms webhooks. **A/B Testing**: Compare performance between different campaign variations. **ROI Analysis**: Calculate return on investment for different marketing channels. **Customer Journey**: Understand how visitors discover and interact with your site. == Installation == = Automatic Installation = 1. Log in to your WordPress admin panel 2. Navigate to Plugins > Add New 3. Search for "BaseCloud UTM Tracker" 4. Click "Install Now" and then "Activate" 5. Done! The COLLECTOR and COURIER are now active. = Manual Installation = 1. Download the plugin ZIP file 2. Log in to your WordPress admin panel 3. Navigate to Plugins > Add New > Upload Plugin 4. Choose the ZIP file and click "Install Now" 5. Activate the plugin = Configuration = 1. Navigate to **UTM Tracker** in your WordPress admin menu 2. Verify the **System Status** shows COLLECTOR and COURIER as Active 3. (Optional) Adjust cookie duration (default: 7 days) 4. (Optional) Add webhook URLs to exclude from UTM injection 5. Save settings **That's it!** The plugin works automatically - no manual field creation needed. == Frequently Asked Questions == = Do I need to create hidden fields in my Gravity Forms? = **No!** That's the magic of v2.0. The COURIER system automatically injects UTM data into webhook submissions. You don't need to create any fields. = What UTM parameters are tracked? = All 8 parameters: * referrer - Previous page URL * utm_source - Campaign source * utm_medium - Marketing medium * utm_campaign - Campaign name * utm_term - Keywords * gclid - Google Click ID * gbraid - Google Brand Engagement (iOS 14+) * wbraid - Web to App tracking (iOS 14+) = How long are UTM parameters stored? = UTM data is stored in cookies for the duration you specify in settings (1-365 days, default is 7 days). = Does this work with other form plugins besides Gravity Forms? = The COURIER system is specifically designed for Gravity Forms webhooks. The COLLECTOR (cookie tracking) works with any form plugin, but automatic webhook injection requires Gravity Forms. = Is the plugin GDPR compliant? = The plugin uses functional cookies necessary for tracking campaign attribution. You should include UTM tracking in your privacy policy and cookie notice. = Can I exclude certain webhooks from UTM injection? = Yes! In the plugin settings, add webhook URLs (one per line) to the "Excluded Webhook URLs" field. This is useful for internal notifications or universal webhooks. = Does this affect site performance? = No! The plugin is optimized for performance with minimal JavaScript and efficient server-side processing. = Will this work with Elementor popups? = Yes! The COLLECTOR includes special support for Elementor popup forms with automatic field population after popup opens. = Can I see the UTM data somewhere? = UTM data is stored in cookies and automatically populates Gravity Forms fields. You can view this data in your form submissions or integrate with analytics tools. == Screenshots == 1. **Plugin Settings** - Clean, professional admin interface for configuring UTM tracking 2. **Gravity Forms Integration** - UTM data automatically populates form fields 3. **Dashboard Menu** - Easy access with custom BaseCloud branding 4. **Cookie Storage** - Secure storage of UTM parameters for attribution == Changelog == = 2.3.2 = **Animated Logo Addition** • Added animated BaseCloud Lottie logo to settings page header • Enhanced brand presence with looping logo animation • Improved visual consistency with BaseCloud brand identity = 2.3.1 = **API Endpoint Update** • **UPDATED: Default Webhook URL** - Migrated from legacy portal.basecloudglobal.com to new api.basecloudglobal.com endpoint • **IMPROVED: URL Format** - New webhook URLs use /webhook/ path structure for better API organization • **ENHANCED: Security** - Updated default excluded webhook to new API endpoint (https://api.basecloudglobal.com/webhook/92b3163196af061b6d009264) • **BACKWARD COMPATIBLE** - No impact on existing installations or custom excluded URLs **Technical Changes:** • Default denied URL updated to api.basecloudglobal.com domain • Activation hook updated with new default webhook URL • Maintained full backward compatibility with existing configurations = 2.3.0 = **🎨 DARK THEME UI REDESIGN - BaseCloud Branding** • **NEW: Dark Theme Interface** - Complete UI redesign with navy blue (#0f2c52) background and green (#4bc46a) accents • **NEW: Toggle Switches** - Modern toggle switches replace checkboxes for cleaner interface • **NEW: Gradient Effects** - Beautiful gradient borders and hover effects throughout • **ENHANCED: BaseCloud Branding** - Professional color scheme matching BaseCloud Global identity • **IMPROVED: Status Indicators** - Pulsing green status dots for active systems • **ADDED: Dark Cards** - Settings sections now use elegant dark cards with subtle shadows • **REDESIGNED: Button Styling** - Primary green buttons with hover effects and shadows • **UPDATED: Typography** - Improved font hierarchy with better contrast on dark background • **OPTIMIZED: Visual Hierarchy** - Better spacing and organization for improved UX • **POLISHED: Animations** - Smooth transitions and hover effects for modern feel **Design Elements:** • CSS variables for consistent theming (--bc-bg, --bc-card, --bc-green, --bc-border) • Gradient borders on cards and input fields • Box shadows for depth and dimension • Pulsing animations for status indicators • Modern toggle switch component with smooth transitions **Breaking Changes:** • None - fully backward compatible with v2.2.0 = 2.2.0 = **🚀 THE "BIG 4" FORM AUTOMATOR - Multi-Plugin Support** • **NEW: Elementor Pro Integration** - Automatic webhook injection for Elementor forms • **NEW: WPForms Integration** - Complete webhook automation for WPForms • **NEW: Contact Form 7 Integration** - Classic form plugin support with data injection • **CRITICAL: Async Webhook Support** - Fixed Gravity Forms background processing (Priority 1 save) • **ENHANCED: Database Storage** - UTM data now saved to database BEFORE async webhook queue • **IMPROVED: Multi-Plugin Dashboard** - Real-time status for all 4 form plugins • **FIXED: Cookie Availability in Async** - Reads from database when cookies unavailable • **ADDED: Form Plugin Detection** - Automatic detection of installed form plugins • **OPTIMIZED: Webhook Injection Logic** - Universal injection method for all form types • **UPDATED: Settings Panel** - Individual toggles for each form plugin integration **Technical Improvements:** • Priority 1 execution for `gform_after_submission` (runs before async queue at Priority 10) • Force database read in `inject_gf_webhook` for reliable async operation • Added `is_url_denied()` helper method for cleaner deny list checking • Support for JSON and array body formats in webhooks • Elementor filter: `elementor_pro/forms/webhook/request_args` • WPForms filter: `wpforms_webhooks_request_args` • CF7 filter: `wpcf7_posted_data` **Breaking Changes:** • None - fully backward compatible with v2.0.0 = 2.0.0 = **🚀 GAME CHANGER: Complete Automation Revolution** • **NEW: THE COURIER System** - Automatic UTM injection into Gravity Forms webhooks - NO manual fields needed! • **NEW: THE COLLECTOR System** - Advanced cookie-based tracking engine with enhanced reliability • **NEW: Animated Dashboard** - Real-time system diagnostics with smooth animations and status indicators • **NEW: Entry Meta Storage** - UTM data automatically saved with each Gravity Forms submission • **NEW: Excluded Webhooks** - Configure specific webhook URLs to bypass UTM injection • **NEW: System Health Monitor** - Live COLLECTOR and COURIER status with animated feedback • **ENHANCED: iOS 14+ Support** - Full gbraid and wbraid parameter tracking for Apple privacy • **IMPROVED: Zero Configuration** - Works automatically after activation - no setup required • **ADDED: Webhook Automation** - All 8 parameters auto-injected into webhook payloads • **REDESIGNED: Modern UI** - Beautiful gradient designs, hover effects, and smooth transitions • **REMOVED: Manual Field Creation** - No longer needed! COURIER handles everything automatically • **OPTIMIZED: Performance** - Streamlined code for faster page loads • **UPDATED: Cookie Names** - Standardized naming (removed bc_ prefix) for better CRM compatibility **Breaking Changes:** • Removed auto_create_fields option (no longer needed with COURIER system) • Removed tracked_parameters option (all 8 parameters now tracked by default) • Changed gclid cookie from bc_gclid to gclid for CRM compatibility = 1.2.2 = **Enhanced Secret Sauce - CRM/Webhook Integration Update** • **NEW: Google Brand Engagement Tracking** - Added gbraid and wbraid parameters for iOS 14+ tracking • **IMPROVED: GCLID Cookie Naming** - Changed from bc_gclid to gclid for better CRM/webhook compatibility • **ENHANCED: Field Population** - Streamlined secret sauce code with optimized field population • **UPDATED: Default Parameters** - Now includes referrer, utm_source, utm_medium, utm_campaign, utm_term, gclid, gbraid, wbraid • **IMPROVED: Event Triggering** - Added input and change events for better form integration • **OPTIMIZED: Label-Based Population** - Streamlined field detection for text fields set to hidden visibility • **ENHANCED: Popup Integration** - Improved Elementor popup support with better event handling = 1.2.1 = **🔧 Critical Gravity Forms Integration Fix** • **FIXED: Proper Field Creation** - Auto-created fields now use text fields with hidden visibility (WordPress best practice) • **NEW: Server-Side Population** - Added reliable server-side field population using Gravity Forms filters • **IMPROVED: Dynamic Population** - Fields now properly support "Allow field to be populated dynamically" setting • **ENHANCED: Parameter Name Support** - Correct parameter names (gclid, utm_source, etc.) for dynamic population • **ADDED: Triple Population Method** - Server-side + parameter matching + label fallback for 100% reliability • **FIXED: Field Detection** - Smart field detection prevents overwriting existing data • **IMPROVED: Form Compatibility** - Better compatibility with all Gravity Forms features and add-ons = 1.2.0 = **🚀 Major Feature Release - Enhanced Tracking & Automation** • **NEW: Referrer Tracking** - Automatically captures and stores the previous page URL (document.referrer) • **NEW: Auto-Create Hidden Fields** - Automatically adds UTM hidden fields to new Gravity Forms • **Enhanced JavaScript Engine** - Improved "secret sauce" code with modern ES6 features • **Smart Cookie Logic** - Only sets cookies if they don't exist, preventing data overwriting • **Advanced Popup Support** - Enhanced integration with Elementor and other page builders • **Automatic Field Detection** - Intelligent field creation with duplicate prevention • **Form-Level Settings** - Per-form control for UTM field creation in Gravity Forms admin • **Updated Default Parameters** - Now includes referrer tracking by default • **Improved Field Population** - Better support for multiple forms and popup scenarios • **Enhanced Admin UI** - Added referrer field to the field reference guide = 1.1.6 = **Major UI Enhancement** • Modern dashboard layout with real-time status indicators • Enhanced admin interface with responsive grid design • Added visual status cards showing tracking configuration at-a-glance • Improved success messages and user feedback • Professional styling with better visual hierarchy • Enhanced field reference guide with color-coded categories • Added quick stats display for cookie duration and integrations • Mobile-responsive admin interface • Better documentation integration and support links = 1.1.5 = **Release Update** • Bug fixes and improvements • Updated version for deployment = 1.1.4 = **Release Update** • Bug fixes and improvements • Updated version for deployment = 1.1.3 = **GitHub Actions Deployment Trigger** • Re-triggered automated deployment to WordPress.org • Ensure assets are properly deployed via GitHub Actions • Force deployment pipeline activation • Test automated SVN commit process = 1.1.2 = **Assets and Deployment Fix** • Added GitHub Actions workflow for automated WordPress.org deployment • Corrected asset filenames to meet WordPress.org requirements • Fixed plugin branding assets (banners and icons) • Established automated deployment pipeline matching Security Manager = 1.1.1 = **Deployment System Enhancement** • Updated deployment script to use Git-based approach • Removed SVN dependencies for cleaner deployment process • Added plugin network compatibility information • Improved deployment workflow matching Security Manager = 1.1.0 = **Admin Interface Enhancement** • Updated admin menu title from "UTM Tracker" to "UTM Analytics" • Enhanced admin interface terminology for better clarity • Improved user experience in WordPress dashboard navigation • Minor version bump for interface improvements = 1.0.3 = **Description Enhancement** • Enhanced plugin description with improved clarity • Added emphasis on secure cookie storage • Improved analytics terminology for better user understanding • Minor text improvements for professional presentation = 1.0.2 = **Assets Update** * Added professional plugin assets (banners and icons) * Enhanced WordPress.org directory presentation * Improved plugin branding and visual identity * Updated deployment workflow for assets = 1.0.1 = **Minor Update & Testing** * Improved GitHub repository integration and documentation * Enhanced deployment workflow testing * Minor code optimizations for better performance * Updated repository links and branding consistency = 1.0.0 = **Initial Release** * Complete UTM parameter tracking system * Gravity Forms integration for automatic field population * Configurable cookie duration (1-365 days) * Custom parameter tracking support * Professional admin interface with BaseCloud branding * HTTPS and security best practices * WordPress coding standards compliance * Translation ready == Upgrade Notice == = 1.0.0 = Initial release of BaseCloud UTM Tracker. Install now to start tracking your marketing campaign performance! == Privacy Policy == BaseCloud UTM Tracker uses cookies to store UTM parameters for campaign attribution. This data helps website owners understand which marketing campaigns are most effective. The plugin: * Stores UTM parameters in browser cookies * Does not collect personal information * Uses secure, same-site cookies * Allows configuration of cookie duration * Follows WordPress privacy best practices Website owners should include UTM tracking in their privacy policy and inform users about the use of functional cookies for campaign attribution. == Support == For support, feature requests, or bug reports, please visit: * **Plugin Support**: [WordPress.org Support Forum](https://wordpress.org/support/plugin/basecloud-utm-tracker/) * **Professional Support**: [BaseCloud Global](https://www.basecloudglobal.com/support/) * **Documentation**: [Plugin Documentation](https://www.basecloudglobal.com/docs/utm-tracker/) == About BaseCloud == BaseCloud Global is a technology company focused on creating powerful, user-friendly WordPress solutions for businesses and marketers. Our plugins are designed with performance, security, and usability in mind. Visit us at [basecloudglobal.com](https://www.basecloudglobal.com/) for more WordPress solutions.