Skip to main content

A Wagtail add-on for managing tags.

Project description

Wagtail Tag Manager (WTM for short) is a Wagtail addon that allows for easier and GDPR compliant administration of scripts and tags.

screenshot.png

Disclaimer

This package attempts to ease the implementation of tags by the new ePrivacy rules as defined by the European Union. I urge you to read about these new rules and ensure you are properly configuring your tags for both the analytical and traceable variants. This package is free and the author can not be held responsible for the correctness of your implementation, or the assumptions made in this package to comply with the new ePrivacy regulation.

Read more about the ePrivacy Regulation.

Included in this package is a cookie bar which admittedly provides too little information to end users regarding the purpose of the scripts you are placing on the website. For compliance, please use the cookie_bar.html template to change the text shown in the cookie bar.

Requirements

Django

2.0

Wagtail

2.0, 2.1

Instructions

Installation:

pip install wagtail-tag-manager

Add the application to your INSTALLED_APPS:

INSTALLED_APPS = [
    # ...
    'wagtail.contrib.modeladmin',
    'wagtail_tag_manager',
    # ...
]

Include the middleware:

MIDDLEWARE = [
    # ...
    'wagtail_tag_manager.middleware.TagManagerMiddleware',
    # ...
]

Include the urls:

from django.urls import include, path
from wagtail_tag_manager import urls as wtm_urls

urlpatterns = [
    # ...
    path('wtm/', include(wtm_urls)),
    # ...
]

To enable the included “Manage” view, add this to your settings:

WTM_MANAGE_VIEW = True

You can also use the following provided template tags to render a tag status overview and a form.

{% wtm_status_table %}

{% wtm_manage_form %}

Settings

WTM_MANAGE_VIEW = True

Allows you to enable or disable the included “manage” view allowing users to get insight in the tags running on your site and adjust their preferences. The view is enabled by default.

WTM_CACHE_TIMEOUT = 1800

Sets the amount of microseconds the cache will be preserved. At the moment, caching is only applied to constants, which will refresh when a constant is saved. Default is 30 minutes.

Sandbox

To experiment with the package you can use the sandbox provided in this repository. To install this you will need to create and activate a virtualenv and then run make sandbox. This will start a fresh Wagtail install, with the tag manager module enabled, on http://localhost:8000 and http://localhost:8000/cms/. The superuser credentials are superuser@example.com with the password testing.

Various types of tags, constants and variables are enabled out of the box. Check out the console in your browser to see them in action.

Todo

[ ] Optimize the middleware for performance.

[ ] Add selenium tests for proper lazy tag testing.

[ ] Ensure the cookie bar and manage view are accessible.

[ ] Write user and developer documentation.

Concept

State

Functional

Analytical

Traceable

No cookies accepted.

yes

no

no

Cookies implicitly accepted through browser settings.

yes

yes

no

Cookies explicitly accepted, noting tracking functionality.

yes

yes

yes

Note that in the case of analytical cookies or local storage, you are obliged to still show a notification at least once, noting that you are using cookies for analytical and performance measurement purposes.

When implementing tracking cookies, the user has to explicitly give permission for you to enable them for their session. When asking for permission, you must explicitly state the tracking functionality of the script you are using.

To ease the implementation by this concept, Wagtail Tag Manager allows you to define a tag as functional, analytical of traceable. When properly configured, it’ll take care of loading the correct tag at the correct time, taking in account the following scenario’s:

1. The user has not accepted cookies.

Functional

Analytical

Traceable

Instant

Yes

No

No

Lazy

Yes

No

No

2. The user has accepted cookies through browser settings.

Functional

Analytical

Traceable

Instant

Yes

Yes*

No

Lazy

Yes

Yes

No

As the acceptance of analytical tags can only be verified client side, we’ll first load all the analytical tags lazy (whether they are instant or not). On the next request we are able to instantly load the analytical tags marked as ‘instant’.

Please note that we still have to show a message stating that we are using analytical tags.

3. The user has explicitly accepted tracking cookies for your site.

Functional

Analytical

Traceable

Instant

Yes

Yes

Yes*

Lazy

Yes

Yes

Yes

We’ll load the traceable tags marked ‘instant’, after the user accepting the usage of these tags, together with the lazy tags. On the next request we are able to instantly load the traceable tags marked as ‘instant’.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wagtail-tag-manager-0.0.3.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

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

wagtail_tag_manager-0.0.3-py2.py3-none-any.whl (15.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file wagtail-tag-manager-0.0.3.tar.gz.

File metadata

File hashes

Hashes for wagtail-tag-manager-0.0.3.tar.gz
Algorithm Hash digest
SHA256 f1deb6f40b844c34949e6d243eb15f51523665b41af963f2f663dc6efa5928d0
MD5 f64cf578f115c680a71e5b3a532e197d
BLAKE2b-256 d4cc31cfca033ab731bda9c3e45648439eec765e41796ea34c22b440e1ae4265

See more details on using hashes here.

File details

Details for the file wagtail_tag_manager-0.0.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for wagtail_tag_manager-0.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 af5b8ef515165cb4b5abefb4120c3c121bd12b06db143ad0451bd76644f15c34
MD5 a7f26d0e282f8d618fb5a5455ac1da75
BLAKE2b-256 1becc5d4d36a59249b0a255f0a0117482ec2ff704875597434fafef7fe2ca370

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