用于提取和存储UTM跟踪值的Django应用程序。

django-utm-tracker的Python项目详细描述


Django UTM跟踪器

用于提取和存储UTM跟踪值的Django应用程序。在

背景

此应用程序被设计为集成标准的utm_*查询字符串参数 你的Django项目的在线广告商使用的。在

它确实not取代了分析(例如Google analytics)和Adwords跟踪,但确实如此 有一个关键的区别-它允许你为一个活动分配一个特定的用户 注意。在

如果您试图评估多个通道的价值,这可能会很有用/ 活动。在

工作原理

该应用程序作为一对中间件类,从任何 传入请求查询字符串,然后根据请求.用户 (如果经过验证),或请求.会话(如果没有)。在

下面显示了此工作流(伪代码-请参见test_utm_and_lead_source中的 实例):

client=Client()# first request stashes values, but does not create a LeadSource as user is anonymousclient.get("/?utm_medium=medium&utm_source=source...")assertutm_values_in_sessionassertLeadSource.objects.count()==0# subsequent request, with authenticated user, extracts values and stores LeadSourceuser=User.objects.create(username="fred")client.force_login(user,backend=settings.FORCED_AUTH_BACKEND)client.get("/")assertnotutm_values_in_sessionassertLeadSource.objects.count()==1

为什么把中间件一分为二?

在这种情况下,我们可以将中间件分成两个类 跟踪没有utm_querystring参数的潜在客户。例如,如果您有 内部推荐程序,使用一个简单的令牌,您可以将此捕获为 LeadSource通过将sentinel值添加到request.session

^{pr2}$

配置

将应用程序添加到INSTALLED_APPS,并将两个中间件类添加到MIDDLEWARE。在

UtmSession中间件必须在LeadSource中间件之前。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何向第二个组合框模型项添加数组值从第一个组合框所选项获取数组名称?   使用Java与WebSphere的SSL握手错误   eclipse线程“main”Java中的第一个Java程序异常。lang.NoClassDefFoundError   java将Javafx应用作为Web应用移植的最佳方式   IDE的java右JVM文件夹   java如何在基本适配器中停止文本到语音   java If block使用substring和equals方法以假值执行   在本例中,如何在java中返回多个值?   java第二个主类在maven构建期间覆盖第一个主类   如何在java中设置运行时ArrayList的泛型类型?   java从主机读取文件