Description
Shulman UTM Attribution for Elementor brings real marketing attribution directly into your WordPress site.
Instead of relying only on external tools like Google Analytics, this plugin connects your traffic sources to actual leads and WooCommerce orders — so you can understand what truly drives results.
Know not just what happened — but what caused it.
Why This Matters
Most analytics tools show you traffic.
This plugin shows you what actually generated the lead or sale.
- Which campaign brought the customer?
- Which source deserves the credit?
- What really works in your marketing?
No more guessing. No more “direct traffic” confusion.
Attribution Model
Built around a Last Non-Direct Click model (like Google Analytics):
- Direct visits never overwrite real marketing sources
- Internal navigation does not break attribution
- Previous campaigns keep their credit
Optional: enable First Click + Last Click tracking for deeper funnel analysis.
Core Features
Built to give you reliable, real-world attribution — not just raw data:
- Last Non-Direct Click attribution – direct visits and internal page navigation never overwrite a previously stored source, matching Google Analytics default behavior
- 7-day attribution window – UTM data persists for 7 days in localStorage and as a cookie
- Auto-fills Elementor hidden fields – works with standard
utm_source,utm_medium,utm_campaign,utm_content,utm_termfield IDs - First Click + Last Click mode – optional per-form dual attribution using
fc_/lc_prefixed field IDs - 50+ referrer sources detected – search engines, social networks, messaging apps (WhatsApp, Telegram, Viber), email providers (Gmail, Outlook, Yahoo Mail), video platforms, Israeli news sites, and more
- Click-ID detection –
gclid(Google Ads),fbclid(Meta),msclkid(Bing),ttclid(TikTok),li_fat_id(LinkedIn),twclid(Twitter),epik(Pinterest),dclid(Google Display) - Priority chain – UTM params Click-ID Referrer Direct (never overwrites)
- localStorage fallback – if localStorage is blocked, falls back to cookie; marks lead as “untracked” when both are unavailable
UTM Attribution Dashboard (Elementor Pro)
When Elementor Pro is installed, every form submission is captured with full UTM attribution data and displayed in a dedicated reporting dashboard:
- New admin page UTM Attribution Attribution Dashboard — view lead attribution data at a glance
- See source, medium, campaign, and attribution coverage for every captured lead
- Color-coded Source column (paid = orange, organic = green, social = blue, email = purple)
- Summary cards: Total leads · Attributed leads · Top source · Attribution rate %
- Filter by form and by UTM source to analyze top-performing traffic segments
- Full-text search across name, email, source, campaign
- Export attribution records to CSV for offline analysis (UTF-8 with BOM for Excel compatibility)
- Bulk delete old records
This screen is designed for attribution and marketing analysis. Elementor’s native submissions table remains the primary source for full form-entry details.
WooCommerce Integration
Turn every order into actionable marketing insight:
- See exactly which source generated each order
- Filter orders by traffic source
- Export attribution data for analysis
- Works with HPOS and legacy storage
No external tools required.
Enable via UTM Attribution Settings Enable WooCommerce tracking:
- Saves UTM source/medium/campaign/content/term/id to every order as order meta
- Adds a color-coded UTM Source column to the WooCommerce Orders table
- Adds a UTM Tracking meta box to each order detail page
- Filter orders by UTM source using the dropdown in the Orders filter bar
- UTM columns included in WooCommerce CSV export
- Compatible with both HPOS and Legacy order storage
Elementor Form Setup
Last Click only (default — no configuration needed):
Add hidden fields with these IDs to your Elementor form:
utm_source · utm_medium · utm_campaign · utm_content · utm_term · utm_id
First Click + Last Click (configure Form ID in Settings):
Add hidden fields with these IDs:
First click: fc_source · fc_medium · fc_campaign · fc_content · fc_term
Last click: lc_source · lc_medium · lc_campaign · lc_content · lc_term
Privacy & GDPR
- All data is stored locally in the visitor’s browser (localStorage + cookie)
- No data is sent to external servers
- Cookie name:
shulmanattrib_utm_data, expiry: 7 days, contains only marketing source data (no PII) - Leads are stored in your own WordPress database for attribution reporting
- Add the cookie to your cookie consent notice
- No external APIs, no third-party tracking, no data sharing
Installation
- Upload the plugin folder to
/wp-content/plugins/ - Activate the plugin through the Plugins menu in WordPress
- Go to UTM Attribution Settings to configure options
- Add hidden UTM fields to your Elementor forms (see Elementor Form Setup above)
- Optionally enable WooCommerce integration
Upgrading from 1.3.x:
The wp_ute_leads table is created automatically on first load after activation — no manual steps required.
FAQ
-
Does this work without Elementor Pro?
-
Yes. The frontend JS and WooCommerce integration work with Elementor free. The Attribution Dashboard requires Elementor Pro (for the
elementor_pro/forms/new_recordhook). -
Does this conflict with WooCommerce’s built-in attribution (v8.5+)?
-
No. WooCommerce’s native attribution operates independently. This plugin adds its own meta fields (
_ute_utm_*) and does not modify WooCommerce’s attribution data. -
What is “Last Non-Direct Click”?
-
It means that if a visitor first arrives via Google Ads (gclid), then returns directly three days later to convert, the conversion is attributed to Google Ads — not to “direct”. This matches Google Analytics 4 default behavior. Direct traffic only gets credit when no prior source exists.
-
Can I track both the first and last click?
-
Yes. Add the Form ID to the First+Last Click list in Settings, then add
fc_*andlc_*hidden fields to that form. All other forms use last-click only. -
Is fbclid treated as paid traffic?
-
No.
fbclidis appended to all Meta link clicks — both paid ads and organic posts — so it cannot reliably indicate paid traffic. The plugin recordsfbclidvisits asfacebook / social. For reliable paid attribution, use explicit UTM tags (utm_medium=paid_social) on your campaigns. -
What happens if localStorage is blocked?
-
The plugin falls back to the cookie. If the cookie is also unavailable (e.g. Safari ITP in certain configurations), the lead is saved with
utm_sourcefrom the server-side referrer fallback, or marked as “untracked” if no referrer is available. -
Add a cookie named
shulmanattrib_utm_data, category: Marketing/Analytics, duration: 7 days, description: “Stores the visitor’s UTM traffic source for marketing attribution.”
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Shulman UTM Attribution for Elementor” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Shulman UTM Attribution for Elementor” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.7.12
- FIX: replaced inline admin JavaScript and CSS with properly enqueued assets
- FIX: switched public plugin-specific identifiers to the shulmanattrib prefix where applicable
- FIX: renamed admin/export identifiers for cleaner WordPress.org review compliance
- FIX: updated cookie documentation and packaging for the renamed plugin
1.4.0
- NEW: UTM Leads admin page — captures every Elementor Pro form submission with full UTM attribution
- NEW: wp_ute_leads database table — stores form_id, form_name, lead name, email, all UTM fields, timestamp
- NEW: Summary dashboard cards — Total leads / Tracked / Top source / Attribution rate
- NEW: Filter by form and by UTM source; full-text search; Export CSV; bulk delete
- NEW: UTM Attribution top-level admin menu with Settings and UTM Leads submenus
- NEW: load_plugin_textdomain() — plugin is now translation-ready
- NEW: uninstall.php — clean removal of all options and the ute_leads table on plugin delete
- FIX: fbclid mapped to medium ‘social’ instead of ‘paid’ (fbclid appears on organic Meta clicks too)
- FIX: twclid (Twitter) and epik (Pinterest) also mapped to medium ‘social’
- NEW: dclid (Google Display & Video) added to click-ID map with medium ‘display’
1.3.1
- FIX: Last Non-Direct Click model applied consistently to localStorage, lc_ prefix, and WooCommerce cookie
- FIX: saveUtmData() now clears all existing UTM keys before writing new ones (stale fields fixed)
- FIX: mail.yahoo.com correctly identified as email/yahoo-mail (was: organic/yahoo)
- FIX: x.com false positive — lax.com, ajax.com etc. no longer misidentified as Twitter/X
- FIX: t.co false positive — bit.com, mat.com etc. no longer misidentified as Twitter/X
- FIX: t.me false positive — statement.me, art.me etc. no longer misidentified as Telegram
- FIX: Google Maps (maps.google.com) now correctly detected before generic Google check
- FIX: PHP legacy meta_query array initialised defensively before appending filter
- IMPROVED: via value renamed ‘internal’ for internal navigation (was ‘direct’)
1.3.0
- NEW: UTM Source filter dropdown in WooCommerce Orders table
- NEW: CSV Export includes UTM Source, Medium, Campaign, Content, Term columns
- IMPROVED: Filter works with both HPOS and Legacy order storage
1.2.1
- NEW: Click-ID detection — fbclid, gclid, msclkid, ttclid, li_fat_id, twclid, epik, dclid
- FIX: Replaced AJAX/sendBeacon with cookie-based storage (eliminates race condition on order creation)
- FIX: Default “direct / none” written to order meta when no source data exists
- IMPROVED: “untracked” shown when localStorage is blocked
1.2.0
- NEW: WooCommerce integration — UTM source tracking for orders
- NEW: “UTM Source” column in WooCommerce Orders table
- NEW: “UTM Tracking (7-day)” meta box on single order page
- NEW: Enable/Disable WooCommerce feature via Settings UI
1.1.1
- FIX: Internal navigation (same domain) no longer overwrites stored UTM source
1.1.0
- NEW: Extended referrer detection (50+ sources)
- NEW: Israeli news sites (Ynet, Walla, Mako, Haaretz, etc.)
- NEW: Messaging apps (WhatsApp, Telegram, Messenger, Viber, Line)
- NEW: Email providers (Gmail, Outlook, Yahoo Mail, ProtonMail)
1.0.1
- FIX: Support for Elementor’s form-field- prefix on input names/IDs
1.0.0
- Initial release