Go Back to Parent Doc

Troubleshooting

No leads are being recorded

Work through these in order:

1. Test in a private/incognito window. Visit your site with a test URL like ?utm_source=test&utm_medium=debug&utm_campaign=check, then look at UTM Manager → Leads. Regular windows may reuse an existing visitor ID, updating an old lead instead of creating a new one.

2. Check the tracking script is loading. View the page source (or the browser DevTools Network tab) and look for tracker.js loading from wp-content/plugins/utm-manager/assets/js/. If it’s missing:

  • A utmm_enable_tracking filter in your theme/another plugin may be disabling tracking (it’s commonly used to exclude admins — test logged out).
  • An aggressive script optimizer (e.g. delaying all JS until user interaction) may be deferring it indefinitely — exclude utmm-tracker from such optimizations.

3. Check the beacon request. In DevTools → Network, filter for utmm/v1/track and reload the page. You should see a POST request:

  • No request at all → the script is blocked (see step 2) or an ad-blocker is interfering (test in a clean browser profile).
  • 404 → the REST API is unreachable; check Settings → Permalinks (click Save to flush rewrite rules) and any security plugin that restricts /wp-json/.
  • 403 → a firewall/security plugin is blocking the REST endpoint; allowlist utmm/v1/track.

4. Check the parameter is enabled. Under UTM Manager → Settings, confirm the parameters you’re testing with are toggled on — disabled parameters are silently discarded.

5. If UTM Manager Pro is active, check its gates under UTM Manager → Settings → Pro Settings:

  • Require consent is on but no consent cookie is set — tracking is suppressed by design until your banner sets it. Confirm the configured cookie name matches the one your banner actually writes, and that its value is yes, 1, true, allow, or granted.
  • Exclude roles includes the role you’re testing with — log out or test in a private window.

Leads appear but have no source/campaign

  • The visits genuinely carried no UTM parameters (direct traffic is still recorded as journey data).
  • The specific parameter is disabled in Settings.
  • The URL was malformed — parameters must come after ? and be separated by &.

The same person shows up as two leads

Visitor identity lives in a first-party cookie + localStorage. A new lead is created when a visitor uses a different browser or device, clears their browsing data, or browses in private mode. This is expected — no cookieless tracker can fully avoid it. If the visitor logs in on both devices, both leads will carry the same email and can be recognized as one person.

Tracking works logged out but not logged in (or vice versa)

Almost always a conditional utmm_enable_tracking filter added by your theme or another plugin. Search your codebase for utmm_enable_tracking.

Migration from 1.x hasn’t imported old leads

The migration runs on WP-Cron in one-minute batches:

  • On low-traffic sites WP-Cron fires rarely — visit the front-end a few times, or wait.
  • If your host disables WP-Cron (DISABLE_WP_CRON), make sure a real cron job triggers wp-cron.php, or run wp cron event run utmm_migrate_data via WP-CLI.
  • Deactivating and reactivating the plugin reschedules the migration if it was interrupted.

CSV export problems

See the troubleshooting section in CSV Export.

Dashboard shows zero after updating to 2.0

The dashboard reads from the new v2.0 tables. If your legacy leads haven’t migrated yet, totals start low and climb as the background migration proceeds — see Migrating from Version 1.x.

Pro features aren’t showing up

  • The free plugin must stay active. Pro boots on a hook the free plugin fires, so it does nothing at all when UTM Manager is deactivated.
  • Check the license. On Plugins → Installed Plugins, the UTM Manager Pro row should read License is valid. If it doesn’t, see License Activation.
  • Once valid, Reports appears under the UTM Manager menu and the Pro Settings and Custom Parameters tabs appear on the Settings screen.

Reports show no countries, devices, or browsers

  • Enrichment is switched off under Settings → Pro Settings → Geolocation & Device — tick the boxes you want.
  • Country stays empty without an edge header. UTM Manager Pro reads the country your host or CDN reports (CF-IPCountry, X-Country-Code, GeoIP-Country-Code); it never calls an external geolocation service. If you’re not behind Cloudflare or a host that sets one of those headers, no country is recorded — device and browser still work.
  • Enrichment only applies to hits recorded after it was enabled; existing leads aren’t backfilled.

Webhooks aren’t arriving

  • Enable webhooks is ticked and at least one URL is filled in, one per line.
  • lead.tracked only fires when the extra "fire on every tracked visit" box is ticked; lead.identified and lead.converted always fire.
  • Deliveries are fire-and-forget with no retry — check your endpoint’s own logs, and verify the X-UTMM-Signature header if you’re rejecting unsigned requests.

Still stuck?

Contact support with: your WordPress and PHP versions, active caching/security/optimization plugins, and what you observed in the DevTools Network tab for the utmm/v1/track request.

Shopping Cart
  • Your cart is empty.