Integration between Django and Amplitude
Project description
Django Amplitude
Integration between Django and Amplitude.com to help send events via the Amplitude HTTP API (v2)
Quick start
Installation
pip install django-amplitude
Add amplitude
to your INSTALLED_APPS
:
INSTALLED_APPS =(
...
'amplitude',
...
)
Set your Amplitude API key in your settings.py
:
# Settings > Projects > <Your project> > General > API Key
AMPLITUDE_API_KEY = '<amplitude-project-api-key>'
# You can also choose if you want to include user and group data
# IF not set will default to False
AMPLITUDE_INCLUDE_USER_DATA = False
AMPLITUDE_INCLUDE_GROUP_DATA = False
If they are not already, the Django sessions
app must be in INSTALLED_APPS
and SessionMiddleware
in MIDDLEWARE
:
INSTALLED_APPS = [
...
'django.contrib.sessions',
...
]
MIDDLEWARE = [
...
'django.contrib.sessions.middleware.SessionMiddleware',
...
]
Usage
If you want to send an event to Amplitude on every page view you can use the django-amplitude SendPageViewEvent
middleware to your MIDDLEWARE
in your Django settings.
This will automatically create an event base on the url name that was hit and the Django request object.
It must be placed after django.contrib.sessions.middleware.SessionMiddleware
. If you have django.contrib.auth.middleware.AuthenticationMiddleware
it must also be placed after it.
MIDDLEWARE = [
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
...
'amplitude.middleware.SendPageViewEvent',
]
The SendPageViewEvent
middleware also sets 2 cookies to help track users - amplitude_device_id
and amplitude_session_id
.
If you want to send your own events:
from amplitude import Amplitude
amplitude = Amplitude()
amplitude.send_events([event_data]) # https://developers.amplitude.com/docs/http-api-v2
There are also few helper functions to build different parts of the event data:
amplitude.event_properties_from_request(request)
amplitude.device_data_from_request(request)
amplitude.user_properties_from_request(request)
amplitude.group_from_request(request)
amplitude.location_data_from_ip_address(ip_address)
user_properties_from_request
will return an empty dict ifAMPLITUDE_INCLUDE_USER_DATA
isFalse
group_from_request
will return an empty dict ifAMPLITUDE_INCLUDE_GROUP_DATA
isFalse
SendPageViewEvent - missing event data keys
The SendPageViewEvent
middleware currently does not record the following keys from UploadRequestBody
:
- event_id
- app_version
- carrier
- price
- quantity
- revenue
- productId
- revenueType
- idfa
- idfv
- adid
- android_id
- dma
- insert_id
If you want to record an event in Amplitude with any of these keys you must use amplitude.send_events([event_data])
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
Hashes for django_amplitude-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 512a80b59be5b8aed51b47c07e383292ba1a54f43cafb4a7e0e00576c41667f6 |
|
MD5 | d2455f8f71b7a6e443896f569dfee3b8 |
|
BLAKE2b-256 | f413496baca04929572266c5cf7063890c16bdae071a2d1a221339d97a258d1f |