Interactive Demo

Explore UTM Manager's features with live examples. Test attribution strategies, capture parameters, and see events in real-time.

Zero dependencies TypeScript ready ~2KB gzipped

Current UTM Parameters

These are the UTM parameters currently stored in cookies. Try the test links below to see them update.

Manual Parameter Entry

Add UTM parameters manually. Only the five standard UTM parameters are accepted โ€” invalid parameters will show an error.

Save Parameter Validates input
Error Handling Demo Invalid params

Try saving a non-standard parameter to see error handling in action.

Supported UTM Parameters

UTM Manager validates parameters against the five standard UTM tags defined by Google Analytics.

utm_source
Traffic source (google, newsletter)
utm_medium
Marketing medium (cpc, email, social)
utm_campaign
Campaign name (spring_sale, launch)
utm_term
Paid search keywords
utm_content
Differentiate similar content/links

Attribution Strategies

Control how UTM parameters are handled when a user visits multiple times with different campaigns.

First Touch

Only saves UTMs on the first visit. Subsequent visits are ignored.

1 Visit via Google Saved
2 Visit via Facebook Ignored
โ†’ Result: Google
Last Touch Default

Always overwrites with the most recent UTM parameters.

1 Visit via Google Saved
2 Visit via Facebook Saved
โ†’ Result: Facebook
Dynamic

Custom callback decides whether to update based on your logic.

1 Visit via Facebook Saved
2 Visit via Google Priority!
โ†’ Result: Google
Try Attribution Strategies

Event Log

Real-time log of UTM Manager events and actions. The library fires utmParametersUpdated events when parameters change.

Activity
--:--:-- Waiting for events...

Code Examples

Quick reference for integrating UTM Manager into your project.

Standalone / Vanilla JS
// Include the script <script src="unpkg.com/utm-manager/dist/utm-manager.js"></script> // Configure (optional) UTMManager.configure({ attribution: 'first', expirationDays: 90 }); // Get all parameters const params = UTMManager.getAllUTMs(); // Listen for updates window.addEventListener('utmParametersUpdated', (e) => { console.log(e.detail); });
React Hook
import { useUTMs } from 'utm-manager/react'; function App() { const { params, setParam } = useUTMs({ autoCapture: true, attribution: 'first', onUpdate: (params) => { analytics.track(params); } }); return <pre>{JSON.stringify(params)}</pre>; }