用于提取和存储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为textview创建选定状态(突出显示)   Java Hibernate计数行   Java语言中的字符串比较   java为什么SparkLauncher会立即返回而不会生成任何作业?   java layout_centerInParent在抛出回收视图后不工作   c#中的readInt16()与java中的readShort()   java如何在工具栏菜单中添加昼夜切换器   java在eclipse上向Tomcat提供<Realm/>信息   java使用给定的随机路径构造一个图   带有对象推送的java Morphia聚合阶段组   java关闭JTable实例   性能如何更好地转换java中的所有集合元素?   JAVA木卫一。IOException:通过Eclipse读取Java中的EOF Lucene   java如何在Android中将光标设置在tableLayout的行/列中所需的位置   使用HashMap的Set的java迭代器不会生成值/键吗?   java google guava cachebuilder在ExipeAfterAccess和expireActerWrite之间使用的时间更长   如何将这个排序映射方法从java转换为Kotlin   java如何从运行的JAR文件中读取war目录?   SpringBootJava。使用Java 9模块(JPM)时lang.NoSuchMethodError