Modern Python library combining referrer parsing with tracking parameter extraction for web analytics
Project description
utm-referrer-attribution-parser
A modern Python library that combines referrer parsing with tracking parameter extraction for comprehensive web analytics attribution.
✨ Super Simple API
from utm_referrer_parser import webmetic_referrer
# Just pass the URL and optional referrer - that's it!
result = webmetic_referrer(
url="https://example.com/page?utm_source=google&utm_medium=cpc&gclid=abc123",
referrer="https://www.google.com/search?q=analytics"
)
print(result)
# {
# 'source': 'google',
# 'medium': 'cpc',
# 'click_id': 'abc123',
# 'click_id_type': 'gclid',
# 'term': 'analytics'
# }
🚀 Features
- Ultra-Simple API: Just
webmetic_referrer(url, referrer)- that's it! - Unified Click Tracking: Clean
click_idandclick_id_typefields instead of 15+ individual parameters - 25+ Tracking Parameters: UTM, Google Ads, Facebook, TikTok, LinkedIn, email platforms, and more
- Smart Referrer Analysis: Uses Snowplow's referrer database for accurate source/medium classification
- Advanced Domain Parsing: Uses tldextract for robust international domain handling (.co.uk, .com.au, etc.)
- Auto-updating Database: Weekly updates of referrer database with local fallback
- High Performance: In-memory caching and optimized parsing
- Framework Agnostic: Works with any Python web framework
- Production Ready: 99%+ accuracy validated with 150+ real-world test cases
- International Support: Handles global search engines (Google, Bing, Baidu, Yandex, Naver, etc.)
📦 Installation
pip install utm-referrer-attribution-parser
🎯 Quick Examples
Google Ads Click
result = webmetic_referrer(
url="https://site.com/landing?utm_source=google&utm_medium=cpc&gclid=abc123"
)
# Returns: {'source': 'google', 'medium': 'cpc', 'click_id': 'abc123', 'click_id_type': 'gclid'}
Facebook Ad
result = webmetic_referrer(
url="https://site.com/product?fbclid=fb123",
referrer="https://www.facebook.com/"
)
# Returns: {'source': 'facebook', 'medium': 'cpc', 'click_id': 'fb123', 'click_id_type': 'fbclid'}
Organic Search
result = webmetic_referrer(
url="https://site.com/blog",
referrer="https://www.google.com/search?q=analytics+guide"
)
# Returns: {'source': 'Google', 'medium': 'search', 'term': 'analytics guide'}
Direct Traffic
result = webmetic_referrer("https://site.com/")
# Returns: {'source': '(direct)', 'medium': '(none)'}
Internal Navigation
result = webmetic_referrer(
url="https://shop.example.com/products",
referrer="https://example.com/"
)
# Returns: {'source': '(internal)', 'medium': 'internal'}
The library automatically detects internal navigation between subdomains using advanced TLD parsing, correctly handling complex domains like .co.uk, .com.au, .org.br, etc.
🎯 Unified Click Tracking
Instead of tracking 15+ individual click ID fields, we provide a clean unified structure:
Old Approach (Complex)
# Multiple individual fields to check
result = {
'gclid': 'abc123',
'fbclid': None,
'ttclid': None,
'msclkid': None,
# ... 15+ more fields
}
New Approach (Clean)
# Just 2 unified fields
result = {
'click_id': 'abc123', # The actual tracking value
'click_id_type': 'gclid' # Which parameter it came from
}
Benefits
- Cleaner API: 2 fields instead of 15+
- Easier Logic: Simple
if result['click_id']checks - Platform Detection: Still get source/medium attribution automatically
- Priority Handling: Google Ads → Facebook → Microsoft → Other platforms
Supported Parameters
Standard UTM
utm_source,utm_medium,utm_campaign,utm_term,utm_content,utm_id
Click Tracking (Unified)
click_id- The actual click tracking valueclick_id_type- Which parameter provided it (gclid,fbclid,ttclid, etc.)
Google Ads Metadata
gclsrc,gad_source,srsltid
Social Media
igshid(Instagram),sccid(Snapchat)
Email Marketing
mc_cid,mc_eid(Mailchimp)ml_subscriber_hash(MailerLite)
Other Platform Parameters
epik(Pinterest),ttd_uuid(Trade Desk),obOrigUrl(Outbrain), and more
🧪 Validation & Testing
This library has been extensively tested with:
- 150+ real database cases from production environments
- 50+ diverse internet scenarios covering global platforms
- 99%+ accuracy rate in attribution detection
- 100% error handling - no crashes on malformed inputs
Supported Platforms
- Search Engines: Google, Bing, Baidu, Yandex, DuckDuckGo, Naver, Yahoo, Ecosia
- Social Media: Facebook, Instagram, TikTok, Twitter, LinkedIn, Pinterest, Reddit, Snapchat
- Email Marketing: Mailchimp, MailerLite, Constant Contact, SendGrid, ConvertKit
- Business Tools: Slack, Microsoft Teams, Calendly, Notion, Zoom
- E-commerce: Amazon, eBay, Shopify, Etsy, AliExpress
🔄 Migration from Complex Systems
Replace complex tracking data dictionaries with simple function calls:
# OLD: Complex dictionary approach
tracking_data = {
"dl": "https://site.com/?utm_source=google&gclid=abc123",
"dr": "https://www.google.com/search?q=analytics",
"bu": "https://site.com"
}
result = parse_attribution(tracking_data)
# NEW: Ultra-simple API
result = webmetic_referrer(
url="https://site.com/?utm_source=google&gclid=abc123",
referrer="https://www.google.com/search?q=analytics"
)
📊 What Makes This Different
- Intelligent Priority: UTM parameters → Click IDs → Referrer analysis → Direct traffic
- Unified Click Tracking: Clean
click_id/click_id_typestructure instead of 15+ individual fields - Click ID Detection: Automatically identifies 25+ types of advertising click IDs
- International Ready: Built-in support for global search engines and platforms
- Real-world Tested: Validated against actual production analytics data
- Future Proof: Auto-updating referrer database keeps up with new platforms
License
MIT License - see LICENSE file for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file utm_referrer_attribution_parser-0.1.4.tar.gz.
File metadata
- Download URL: utm_referrer_attribution_parser-0.1.4.tar.gz
- Upload date:
- Size: 51.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4f4b256f7c2092c4406a42a468de00b5c6dc08ce68a0b4e8cf1cbc555203d35
|
|
| MD5 |
ca4fc4d2bb01dadf2636648a449fd617
|
|
| BLAKE2b-256 |
a990f8683958e17c2d4a154d739ffa7423a8be0442b4eaeada85bda412c2213e
|
File details
Details for the file utm_referrer_attribution_parser-0.1.4-py3-none-any.whl.
File metadata
- Download URL: utm_referrer_attribution_parser-0.1.4-py3-none-any.whl
- Upload date:
- Size: 34.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66b822d624416320fc8e8fcb65e5dbee9d1b1c6f89342a87fba51242088212a7
|
|
| MD5 |
41743de765a7f2c3de1f4e6994eb784c
|
|
| BLAKE2b-256 |
f5d800d779b0188d0f0ee2edbe8a0b5128322bc09b373a57fbf33540d3805bbc
|