WebCase UTM tracker
Simple middleware and utils for tracking utm parameters.
Installation
pip install wc-django-utm
In settings.py:
INSTALLED_APPS += [
'wcd_utm',
]
WCD_UTM = {
# All the "main" parameters that must be resolved.
'PARAMETERS': [
'utm_source', 'utm_medium', 'utm_campaign',
'utm_term', 'utm_content',
'gclid', 'aclk', 'msclkid', 'fbclid', 'twclid',
]),
# Additional parameter prefixes. Also used to convert prefixed parameters
# like "utm_content" into "content".
'RESOLVABLE_PREFIXES':['utm_'],
# Whether to unwrap prefixed parameters or not.
# Example: "utm_content" will be unwrapped into "content".
# By default - do not.
'UNWRAP_PREFIXED_PARAMETERS': False,
# Used to store all different utm parameters sets, that user had during the
# session.
'SESSION_STORAGE_KEY': 'utm_params_stored',
# Latest utm parameters set. The key that you are mostly going to use.
'SESSION_ACCESS_KEY': 'utm_params',
# Header to parse UTM parameters from as if it is URL.
# Use this to pass utm parameters from Android/iOS app, for example.
'HEADER_ORIGIN_URL': 'HTTP_X_UTM_ORIGIN_URL',
# Same as previous, but this one should store JSON data instead of plain
# URL string.
'HEADER_JSON': 'HTTP_X_UTM_JSON',
}
Usage
Most of the time only the middleware will be used:
MIDDLEWARE = [
# ...
'django.contrib.sessions.middleware.SessionMiddleware',
# MUST be placed after session middleware ^.
'wcd_utm.middleware.UTMSessionMiddleware',
# ...
]
In a view
Middleware will store parsed data in a SESSION_ACCESS_KEY('utm_params') key. Parameter values will always be a list of strings:
def some_view(request):
params = request.session["utm_params"]
# Values are always lists
if 'black_friday_sale' in params.get('utm_campaign', []):
# Then do stuff related to you black friday sale campaign.
pass
# ...
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[0.1.1]
Changed
- Make prefixed parameters unwrapping optional.
[0.1.0]
Initial version.
Metadata
Release files for wc-django-utm 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wc-django-utm-0.1.1.tar.gz | 19.1 kB | Details |
Release files / wc-django-utm-0.1.1.tar.gz
| Download URL | wc-django-utm-0.1.1.tar.gz |
|---|---|
| Size | 19.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d5b94a75353ef88ad294f250191928180e9f9568aa32409598d5336fae0f734a
|
|
BLAKE2b-256 checksum How to use checksums |
598f498ddc3ef286b4cce11da958edb55a0f4fa6c22ad09de78d41873af4cc17
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|