作者 | WXiangQian王先森

责编 | 郭芮

出品 | CSDN博客

目前平台上缺乏对用户来源和生命周期的管理,导致外部投放活动和平台的运营活动无法精确掌握投放效果。这次增加的功能,可以让我们掌握不同的投放、活动所带来的用户质量,从而优化投放及活动手段。

设计概览

通过在链接后面添加UTM(跟踪模块)参数的方式,跟踪用户来源。并且通过为游客模式的用户分配临时ID的方式,可以从游客时期就开始跟踪用户行为,从而更充分的掌握投放效果和用户质量。

详细设计

UTM参数

UTM(urchin tracking module)是一套标准的渠道跟踪工具,除了用来跟踪不同渠道的流量效果外,还可以用来作为精细化运营工具,不断优化投放、活动效果。

UTM常用的参数有5个,分别如下:

用户生命周期

用户的生命周期是由一系列具体的用户行为构成的,在本次设计中,定义的可以收录入用户生命周期的用户行为有:第一次浏览(第一次使用该产品)、登录、注册、访问课程、下单、购买成功和参与活动(活动特指访问带有UTM参数的页面,可能是对外投放的广告,也可能是官网的一次活动)。下文中将需要收录入用户生命周期的用户行为命名为用户关键行为。

收录的用户关键行为的格式为:行为、行为对象、设备、浏览器、时间戳。比如用户下单了某个课程A,收录的格式为:下单、课程A、手机、APP、时间戳。

临时ID

用户以游客身份访问网站时(PC、M站、APP),如果是以游客身份,需要给用户分配一个唯一的临时ID,并且需要以该临时ID在后台创建一个用户生命周期记录。后续该用户注册或者登录后,需要将该临时ID上发生的用户关键行为合并到学号上去。但该临时ID不要删除,以便继续统计用户万一退出登录后在平台上的行为。

创建临时ID时,需要同时将第一次浏览的信息写上,如果是通过活动链接,则将该次行为记为“参与活动”,否则的话就记为第一次浏览。比如用户通过百度搜索,进入主页,记录的格式为:第一次浏览、具体链接、PC、Chrome、时间戳。

数据统计

用户通过活动链接创建的账户,需要对用户的后续关键行为做持续统计,比如注册、购买等,以方便根据这些数据做精细化的运营,提升广告或者活动效率。

一个用户参与了多次活动,比如活动A、B、C,后续该用户如果注册或者购买了课程(任何平台课程都可以),则注册或者购买数据,需要统计到活动A上,因为是活动A最早触达该用户,使其了解到公司的产品。

技术实现思路

  • 当存在这几个参数的时候去匹配是否有设置投放utm

  • 有:则将唯一标识存入到cookie

  • 没有:则不是广告投放来源

  • 虚拟id:暂时用php中session_id作为虚拟id的(如果朋友们有更好的建议,可以推荐一下,互相学习)

  • 当发现用户已注册或登录后,将要把虚拟id生成的所有记录绑定到uid上,这样才能不丢失未注册人的生命周期。如果未注册或登录,那就没办法了。

数据库设计

用户生命周期记录表:

CREATE TABLE `utm` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`vid` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '登陆前的虚拟id',`uid` int(11) NOT NULL DEFAULT '0' COMMENT '用户id',`utm_url_id` int(11) NOT NULL DEFAULT '0' COMMENT '关联投放id',`url` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '记录链接',`device` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '设备',`browser` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '浏览器',`course_id` int(11) NOT NULL DEFAULT '0' COMMENT '课程',`pay_amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '消费金额',`add_time` int(11) NOT NULL DEFAULT '0' COMMENT '添加时间',`action` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '行为',PRIMARY KEY (`id`),KEY `rds_idx_0` (`uid`,`vid`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='用户生命周期记录'

广告投放表:

CREATE TABLE `utm2` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '链接名称',`url` text COLLATE utf8_unicode_ci NOT NULL COMMENT 'url完整地址',`utm_campaign` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '缩略名',`utm_source` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '来源',`utm_medium` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '媒介',`utm_term` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '关键词',`utm_content` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '内容',`add_time` int(11) NOT NULL DEFAULT '0' COMMENT '添加时间',`url_index` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'url唯一索引',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='广告投放'

实战链接

https://wxiangqian.blog.csdn.net/article/details/105764287?utm_source=csdn

结束语

如果功能设计有什么漏洞,欢迎大家提供更好的建议,希望本文可以帮助你们实现"utm"功能。

声明:本文为CSDN博主「WXiangQian王先森」的原创文章,原文链接:https://blog.csdn.net/qq175023117/article/details/105764287

【End】

更多精彩推荐
☞50 岁程序员创业说:两个月提交 50 个 PR,三个月内融资 2000 万美元
☞平安科技王健宗:所有 AI 前沿技术,都可以在联邦学习中大展身手!
☞踢翻这碗狗粮:程序员花 7 个月敲出 eBay,只因女票喜欢糖果盒!
☞我佛了!用KNN实现验证码识别,又 Get 到一招!
☞如何使用 SQL Server FILESTREAM 存储非结构化数据?这篇文章告诉你!
☞加密价格更新周期:看似杂乱无章,实际内藏玄机
你点的每个“在看”,我都认真当成了喜欢

手把手教你做一套 UTM 广告投放!| 原力计划相关推荐

  1. Google是如何做Code Review的?| CSDN原力计划

    作者 | 帅昕 xindoo 编辑 | 屠敏 出品 | CSDN 博客 我和几个小伙伴一起翻译了Google前一段时间放出来的Google's Engineering Practices docume ...

  2. 大商创是用哪种php柜架写的,手把手教你做一套大商创店铺模板(1.9版)

    大商创1.9版本之后新增了店铺可视化编辑功能,在1.92版本之后支持了店铺模板下载功能,这就意味着有更多有前端技术的朋友可以自己做一套自定义模板,而且可以交流和传播.那么如何做一套店铺模板呢?在这里我 ...

  3. 拿来就能用!几步搭建一套简单直播系统 | 原力计划

    作者 | mind_programmonkey 责编 | 伍杏玲 出品 | CSDN博客 本次用Ngix+RTMP+FFmpeg搭建一个流媒体服务器,实现简单的直播效果. Nginx是一款轻量级的We ...

  4. python手机版做小游戏代码大全-Python大牛手把手教你做一个小游戏,萌新福利!...

    原标题:Python大牛手把手教你做一个小游戏,萌新福利! 引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规 ...

  5. 易基因|干货:手把手教你做RNA m5C甲基化测序分析(RNA-BS)

    大家好,这是专注表观组学十余年,领跑多组学科研服务的易基因. 本期,我们讲讲m5C RNA甲基化重亚硫酸盐测序测序(RNA-BS)实验怎么做,从技术原理.建库测序流程.信息分析流程等方面详细介绍. 一 ...

  6. 手把手教你做短视频去水印微信小程序(2-首页)

    手把手教你做短视频去水印微信小程序系列教程(2-首页) 文章目录 手把手教你做短视频去水印微信小程序系列教程(2-首页) 前言 一.顶部banner 二.地址解析 1.整体代码 2. input框输入 ...

  7. 炸翻AI和生化环材圈!GPT-4学会自己搞科研,手把手教人类做实验

    [导读]GPT-4等大模型组成的AI智能体,已经可以手把手教你做化学实验了,选啥试剂.剂量多少.推理反应会如何发生,它都一清二楚.颤抖吧,生化环材圈! 不得了,GPT-4都学会自己做科研了? 最近,卡 ...

  8. 微信测试工程师手把手教你做弱网络模拟测试

    微信测试工程师手把手教你做弱网络模拟测试 Posted by 腾讯优测  | 3,152 views 小优有话说: app研发不同于实验室里做研究,哪里有"理想环境". 理想里,用 ...

  9. 手把手教你做一个物联网视频监控项目(三)流媒体方案实现

    往期文章 手把手教你做一个物联网视频监控项目(一) 介绍 手把手教你做一个物联网视频监控项目(二)MJPG-streamer方案实现 文章目录 前言 一.软硬件准备 二.流媒体方案的实现之FFmpeg ...

最新文章

  1. lr手工添加关联函数的步骤:
  2. 独家 | 全面!手把手教你决策树可视化(附链接代码)
  3. react-native 安卓支持 gif动态图
  4. Jupyter notebook 导出PDF的3种方法
  5. 一步步编写操作系统 66 浅析c库函数与系统调用1
  6. 图解算法学习笔记(八):贪婪算法
  7. 归并排序的java代码_归并排序的原理及java代码实现
  8. Object-c 内存管理
  9. Vim编辑器学习笔记
  10. 域服务器安全策略应用,ad域服务器组策略命令
  11. 《缠中说禅108课》57:当下图解分析再示范
  12. dht11传感器c语言程序,树莓派 DHT11 温湿度传感器读取 C 语言版
  13. phpstudy的php fpm,浅谈PHP-FPM参数
  14. HALCON_XLD轮廓算子_二
  15. P17安全领袖圆桌:安全市场迎来千亿发展机遇,腾讯携手产业链伙伴共建安全生态
  16. 一键生成动漫头像微信小程序源码
  17. 这两个月——我的学习Python学习之路
  18. svn报错:“Previous operation has not finished; run ‘cleanup‘ if it was interrupted“ 的解决方法
  19. 学术-物理:克莱因瓶
  20. steam游戏搬砖项目,完整版免费分享

热门文章

  1. DB2开发系列之一——基本语法
  2. C#学习笔记-原型模式
  3. hdu 1281棋盘游戏(二分匹配)
  4. 中兴通讯首届郑和杯无线应用创作挑战赛正式启动
  5. Alexa 世界网站排名研究
  6. 使用sklearn PCA主成分分析对图像特征进行降维
  7. FreeRTOS-绪论
  8. 【OpenCV应用】python处理行李图像匹配项目——图像(简单)清晰化
  9. java 单例基类_PHP基于单例模式实现的数据库操作基类
  10. Linux多进程编程(2)