Django与振幅的积分
django-amplitude的Python项目详细描述
Django振幅
Django和Amplitude.com之间的集成,以帮助通过Amplitude HTTP API (v2)发送事件
快速入门
安装
pip install django-amplitude
将amplitude
添加到您的INSTALLED_APPS
。如果还没有,还必须添加Djangosessions
应用程序:
如果您还没有它,您还必须添加Djangodjango.contrib.sessions.middleware.SessionMiddleware
。然后在SessionMiddleware
后面添加amplitradeSessionInfo
中间件:
MIDDLEWARE=[...'django.contrib.sessions.middleware.SessionMiddleware',...'amplitude.middleware.SessionInfo',]
现在在settings.py
中设置振幅API密钥和用户/组选项:
# Settings > Projects > <Your project> > General > API KeyAMPLITUDE_API_KEY='<amplitude-project-api-key>'# You can also choose if you want to include user and group data (Default False)AMPLITUDE_INCLUDE_USER_DATA=FalseAMPLITUDE_INCLUDE_GROUP_DATA=False
注意:如果要包含用户或组数据,必须确保Django auth is setup correctly。这包括将django.contrib.auth
和django.contrib.contenttypes
添加到INSTALLED_APPS
和{
使用
页面查看事件
如果您想在每个页面视图上向振幅发送一个事件,那么可以在django设置中使用django振幅SendPageViewEvent
中间件。在
{info{info}用户会自动创建一个名为info}的请求的信息
它必须放在amplitude.middleware.SessionInfo
中间件之后:
MIDDLEWARE=['django.contrib.sessions.middleware.SessionMiddleware',...'amplitude.middleware.SessionInfo','amplitude.middleware.SendPageViewEvent',]
在使用SendPageViewEvent
时,如果有某些URL不想更新振幅,则可以使用AMPLITUDE_IGNORE_URLS
设置。此设置获取相对URL或URL名称的列表。相对URL最匹配,因此需要以正斜杠(/
)开头
AMPLITUDE_IGNORE_URLS=['my_url_name','/testurl']
手动发送事件
如果您想发送自己的活动:
fromamplitudeimportAmplitudeamplitude=Amplitude()event_data=amplitude.build_event_data(event_type='Some event type',request=request,)amplitude.send_events([event_data])
上面的请求将在event_properties
中包含URL和HTTP头信息。如果要重写事件属性,可以将它们传递给build_event_data
:
event_data=amplitude.build_event_data(event_type='User purchase',request=request,event_properties={'products':['laptop','phone']})
构建事件数据缺失事件数据键
build_event_data
方法(以及扩展的SendPageViewEvent
中间件)当前不从Amplitude HTTP API (v2)中的UploadRequestBody
类型发送以下密钥:
- 事件编号
- 应用程序版本
- 承运人
- 价格
- 数量
- 收入
- 产品ID
- 收入类型
- 以色列国防军
- 以色列国防军
- 阿迪德
- 安卓手机id
- dma系统
- 插入\u id
如果要用这些键中的任何一个记录振幅事件,则必须使用生成并使用amplitude.build_event_data
发送您自己的事件数据,其中您可以将上述任何一项作为kwarg传递:
amplitude=Amplitude()event_data=amplitude.build_event_data(event_type='Some event type',request=request,app_version='1.0.0',)amplitude.send_events([event_data])
建立你自己的活动
如果您对来自build_event_data
的数据不满意,您可以基于Amplitude HTTP API (v2)中的UploadRequestBody
类型构建自己的事件数据。如果您想这样做,有几个helper函数可以从Django请求对象构建事件数据的不同部分:
amplitude.event_properties_from_request(request)# Gets URL and HTTP header dataamplitude.device_data_from_request(request)# Gets device info from user agentamplitude.user_properties_from_request(request)# Gets info from user modelamplitude.group_from_request(request)# Gets the list of groups a user is inamplitude.location_data_from_ip_address(ip_address)# Gets location data from IP if GeoIP2 is setup
- ^如果
AMPLITUDE_INCLUDE_USER_DATA
是False
,则{}将返回一个空dict - ^如果
AMPLITUDE_INCLUDE_GROUP_DATA
是False
,则{}将返回一个空dict
- 项目
标签: