Skip to main content

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_id and click_id_type fields 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
  • 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)'}

🎯 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 value
  • click_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_type structure 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

utm_referrer_attribution_parser-0.1.1.tar.gz (42.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

utm_referrer_attribution_parser-0.1.1-py3-none-any.whl (33.8 kB view details)

Uploaded Python 3

File details

Details for the file utm_referrer_attribution_parser-0.1.1.tar.gz.

File metadata

File hashes

Hashes for utm_referrer_attribution_parser-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a529c9a3c152583e74769b01a2dd834c30aab9012e18e76c052ffd02b6f2fc69
MD5 43fbc0e105520b15ff6eb4bd3b524794
BLAKE2b-256 6821895da4f47b97bbb80c2eeb5f2d8721ec42b1f43b71f59df24eda52875ea8

See more details on using hashes here.

File details

Details for the file utm_referrer_attribution_parser-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for utm_referrer_attribution_parser-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 febe0bda5dce48b5efea8d3286962bf574dc8f3282df2aae18c119c0c8841fe4
MD5 d2a85174e7ec59b6f55ea8371878cc65
BLAKE2b-256 9a7cb5cfce38907c4536dc81570b6449a9dc0c744c77a674281e836bce0caf24

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page