User actions tracking and analytics for Django sites.
Project description
User actions tracking and analytics for Django sites
Requirements
Django 2.1 or later.
Django Countries 5.5 or later.
Django IPWare 2.1.0 or later.
Django User Agents 0.4.0 or later.
GeoIP2 2.9.0 or later.
Installation
Install Django Tracking Analyzer from PyPI by using pip:
pip install django-tracking-analyzer
Add 'django_user_agents' and 'tracking_analyzer' entries to Django INSTALLED_APPS setting.
Run the migrations to load the Tracker model in your database:
python manage.py migrate tracking_analyzer
Install the MaxMind® GeoIP2 datasets. You can do this in two ways:
4.1. By running the provided management command for this:
python manage.py install_geoip_dataset
4.2. Or manually, by following the instructions in GeoIP2 Django documentation.
After following those steps, you should be ready to go.
Explanation - Quickstart
Django Tracking Analyzer is a Django pluggable application which helps you providing usage statistics and visitors data for your Django sites.
DTA does this by recording requests data in those places you want to by saving Tracker’s. A Tracker is a Django database model which holds all the data related to a request, including geolocation via IP address and device or browser specifications.
When some data is collected, the Django admin interface for Tracker model implements some interactive widgets to help you visualize better the data.
Now let’s see how can you start collecting users data. Imagine the most basic example: you have a web blog and you want to check the visits to your posts, having a resume of who accessed the posts, when and from where. In such a Django site, you might have a view PostDetailView, where a blog post will be served by passing its slug in the URL. Something like this:
class PostDetailView(DetailView):
model = Post
Okay, so you can track the users who access blog posts by their instances with DTA, just like this:
class PostDetailView(DetailView):
model = Post
def get_object(self, queryset=None):
# Retrieve the blog post just using `get_object` functionality.
obj = super(PostDetailView, self).get_object(queryset)
# Track the users access to the blog by post!
Tracker.objects.create_from_request(self.request, obj)
return obj
And you are now on your way to collect users data! Now give it a time (or better access the resource yourself several times) and go check your Django admin in the “Django Tracking Analyzer” - “Trackers” section. Enjoy!
Documentation
For extensive documentation and usage explanations, you can check Read the Docs.
Acknowledgements
Django Tracking Analyzer makes use of this technologies and apps, without which it wouldn’t be possible:
Django Countries, by Chris Beaven.
Django IPWare, by Val Neekman.
Django User Agents, by Selwin Ong.
Datamaps, by Marc DiMarco.
TopoJSON, by Mike Bostock.
D3 bar chart w/tooltips, original code by Justin Palmer.
D3 area chart, by Mike Bostock.
Of course, the D3.js library.
And MaxMind, the company behind all the geographical datasets that made them publicly available.
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
Built Distribution
File details
Details for the file django-tracking-analyzer-1.1.1.tar.gz
.
File metadata
- Download URL: django-tracking-analyzer-1.1.1.tar.gz
- Upload date:
- Size: 122.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad3465369d399b88d70e6b2181b8b41d7b6cbee5302025220c779f050e407e6a |
|
MD5 | 56447637c48b8ad6e74c85a5fc4c56b4 |
|
BLAKE2b-256 | be04e25e6fa9b4cf048a75517c5887ee0fa38f018e0fa6ff2e57017d8d78178a |
File details
Details for the file django_tracking_analyzer-1.1.1-py3-none-any.whl
.
File metadata
- Download URL: django_tracking_analyzer-1.1.1-py3-none-any.whl
- Upload date:
- Size: 128.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6133c10b5fc153101334394b9aa1bcf7d1d0e3dfb1d667aa6a94c21915210a20 |
|
MD5 | aa241d1c1657285e77771d71a3fd77fa |
|
BLAKE2b-256 | d18a5adb245836dd7a05400800fac2bcf093449e8df06902c8ef802f20d36f6a |