A Django package to integrate Google Analytics seamlessly.
Project description
Google Analytics Django
A comprehensive Django package for seamless integration of Google Analytics into your Django projects, supporting Google Analytics 4 (GA4).
Features
- Support for Universal Analytics (analytics.js) and Google Analytics 4 (gtag.js)
- Configurable options for anonymizing IP, cookie expiration, sampling rates, and more
- Middleware for setting custom headers and server-side tracking
- Debug mode to prevent tracking in development environments
- Automatic exclusion of staff users from tracking
- Easy-to-use template tags for quick integration
- Extensive settings for fine-grained control over tracking behavior
- Event tracking and custom dimension/metric support
Installation
- Install the package using pip:
pip install google-analytics-django
- Add 'google_analytics_django' to your INSTALLED_APPS in settings.py:
INSTALLED_APPS = [
# ...
'google_analytics_django',
# ...
]
- Add the middleware to your MIDDLEWARE in settings.py:
MIDDLEWARE = [
# ...
'google_analytics_django.middleware.GoogleAnalyticsMiddleware',
# ...
]
Configuration
Add the following settings to your Django project's settings.py file:
# Required
GOOGLE_ANALYTICS_PROPERTY_ID = 'UA-XXXXXXXX-X' # or 'G-XXXXXXXXXX' for GA4
# Optional (shown with default values)
GOOGLE_ANALYTICS_DOMAIN = 'auto'
GOOGLE_ANALYTICS_ANONYMIZE_IP = False
GOOGLE_ANALYTICS_SAMPLE_RATE = 100
GOOGLE_ANALYTICS_SITE_SPEED_SAMPLE_RATE = 1
GOOGLE_ANALYTICS_COOKIE_EXPIRES = 63072000 # 2 years in seconds
GOOGLE_ANALYTICS_DISPLAY_FEATURES = False
GOOGLE_ANALYTICS_USE_GTAG = True # Set to False to use analytics.js
GOOGLE_ANALYTICS_DEBUG_MODE = False
Usage
Template Tag
In your base template, load the template tags and add the Google Analytics script:
{% load google_analytics_tags %}
<head>
<!-- ... other head elements ... -->
{% google_analytics %}
</head>
Middleware
The middleware is automatically active once added to your MIDDLEWARE setting. It adds two custom headers to the response:
X-GA-TRACKING-ID
: The Google Analytics client ID (if available)X-CLIENT-IP
: The client's IP address
These headers can be used for server-side tracking if needed.
Advanced Features
Debug Mode
Set GOOGLE_ANALYTICS_DEBUG_MODE = True
in your settings to prevent tracking in development environments.
Staff Exclusion
By default, staff users (users with is_staff=True
) are not tracked. You can modify this behavior in the should_track
function in utils.py
.
Event Tracking
Use the standard Google Analytics JavaScript API to track events:
gtag("event", "button_click", {
event_category: "engagement",
event_label: "hero_cta",
});
Custom Dimensions and Metrics
Set up custom dimensions and metrics in your Google Analytics property, then use them in your tracking code:
gtag("config", "UA-XXXXXXXX-X", {
custom_map: { dimension1: "user_type" },
});
gtag("event", "page_view", { user_type: "member" });
Troubleshooting
If you encounter issues:
- Check that your
GOOGLE_ANALYTICS_PROPERTY_ID
is correct. - Ensure the middleware is properly added to your MIDDLEWARE setting.
- Verify that the template tag is correctly placed in your base template.
- Check browser console for any JavaScript errors.
Contributing
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Please ensure your code adheres to the project's coding standards and include tests for new features.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
If you need help or have any questions, please open an issue on the GitHub repository or contact the maintainers.
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
File details
Details for the file google_analytics_django-0.1.1.tar.gz
.
File metadata
- Download URL: google_analytics_django-0.1.1.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9bf796a5c189a1c3e89dc5b6b5f564e241209c486185e932ffd8b55e4f546305 |
|
MD5 | ff9a06378cd719be61997b167de7f78e |
|
BLAKE2b-256 | a43428bbfb812f2f3a6a2997ca3f1953f2dafc99f39a19afdd25a85c5d11d502 |
File details
Details for the file google_analytics_django-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: google_analytics_django-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d686dc8d70a8ef4029f3f3d4fa65005ea35ddf5529f4ba899d040fa0204c44d |
|
MD5 | d090184b568882354508683885b21c2d |
|
BLAKE2b-256 | 5215691cece1192a1b2d7d2a09a671ed55df4f8a9d0368cfb46b8b09a2474b42 |