Shulman UTM Attribution for Elementor

Description

Tracks attribution data from submitted fields, cookie snapshots, first-click cookies, server-side fallback, and WooCommerce attribution in a defined source-of-truth hierarchy.

Features:
* Elementor lead capture with attribution snapshot
* WooCommerce order attribution support
* First-touch and last-touch source tracking
* Leads dashboard with filters and CSV export
* Stores WooCommerce customer phone numbers alongside attribution data
* Backward compatibility for legacy cookies, options, and meta keys

Installation

  1. Upload the plugin ZIP in WordPress admin or copy the plugin folder to /wp-content/plugins/.
  2. Activate the plugin.
  3. Configure settings from the plugin admin screen.

Reviews

Read all 1 review

Contributors & Developers

“Shulman UTM Attribution for Elementor” adalah perisian sumber terbuka. Orang-orang berikut telah menyumbang kepada pemalam ini.

Penyumbang

Changelog

1.10.10

  • Fix: prevent direct traffic from being incorrectly classified as untracked.
  • Fix: ensure last_touch_source stays consistent with resolved utm_source.
    Previously, when utm_source resolved to “direct”, last_touch_source was incorrectly
    set to “untracked” because is_meaningful_attribution_source() excludes “direct”.
    last_touch_source now correctly mirrors “direct” when that is the resolved state.
  • Fix: improve webhook / Elementor hidden-field data consistency for unattributed traffic.
  • Improvement: clearer separation between direct and untracked states across resolver,
    lead snapshot, and WooCommerce order meta.

1.10.9

  • Fixed: confidence is now explicit when both utm_source AND utm_medium are present in the URL,
    even when fbclid is also present. fbclid no longer downgrades confidence from explicit to inferred
    when full explicit UTM exists. Partial UTM + fbclid correctly stays inferred.
  • Added: com.google.android.googlequicksearchbox referrer is now classified as google / organic.
    This covers traffic from Android Google app surfaces (Google Discover, Search widget, Lens, Google app).
    Previously this could fall through to an untracked or referral classification.

1.10.8

Explicit UTM Click IDs Referrer User-Agent First Touch Direct Untracked.
* Improved: fbclid split logic — fbclid alone now resolves to facebook/social (organic intent).
Only upgrades to facebook/paid when utm_campaign, utm_content, utm_term, or dynamic ad variables are present.
* Fixed: utm_medium=social (and any explicit utm_medium) is never overwritten by click ID inference.
* Improved: direct vs untracked are now clearly separated. “direct” means tracking is functioning
but no attributable source was found. “untracked” is reserved for complete tracking failure
(all signals absent: no UTM, no click ID, no referrer, no UA match, no cookie, no first-touch).
* Added: attribution confidence field (explicit / inferred / fallback / untracked) stored
in DB and order meta.
* Fixed: server_side_fallback no longer returns “untracked” for missing/internal referrers;
the caller now decides direct vs untracked based on full signal inventory.
* Improved: WooCommerce orders column and meta box now distinguish direct vs untracked visually.
* Improved: Dashboard UTM source filter now lists direct and untracked as separate options.
* Updated: DB schema version 1.4.0 — adds confidence column to wp_ute_leads table.
* Updated: utm-tracker.js — fbclid click ID split logic, confidence field in cookie snapshot,
internal navigation returns “direct” not “untracked”.

1.10.7

  • Fixed: fbclid normalization no longer overrides an explicitly set utm_medium=social.
    Previously, any visit with fbclid and utm_medium=social (e.g. an organic Facebook post
    tagged manually) would have its medium silently replaced with paid_social.
    Now only empty or “none” medium values are inferred as paid_social from fbclid presence.

1.10.6

  • Fixed remaining Plugin Check SQL issues (prepared statements compliance)
  • Improved security of database queries.
  • Cleaned uninstall logic for safer execution.

1.10.5

  • Removed remaining prebuilt SQL variables and inlined prepare() calls.
  • Reworked admin queries to avoid interpolated SQL variable patterns flagged by review.
  • Kept phone capture, dashboard display, and CSV export support intact.

1.10.4

  • Fixed admin SQL queries to use prepared statements consistently.
  • Escaped interpolated table names in dashboard queries.
  • Added missing translators comments and refreshed readme metadata.

1.10.3

  • Added plugin readme file for compliance.
  • Improved static analysis compatibility for admin SQL and translations.
  • Kept lead phone field support in DB, admin table, and CSV export.

1.10.2

  • Added lead phone field support.
  • Added phone column to leads screen and CSV export.