设计背景

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

设计概览

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

详细设计

UTM参数

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

参数 名称 示例
utm_source 渠道来源 utm_source=zhihu
utm_medium 投放媒介 utm_medium=kecheng
utm_campaign 广告名称 utm_campaign=zhihu0728
utm_content 广告内容 utm_content=153
utm_term 广告关键词 utm_content=cv

用户生命周期

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

临时ID

用户以游客身份访问网站时(PC、M站、APP),如果是以游客身份,需要给用户分配一个唯一的临时ID,并且需要以该临时ID在后台创建一个用户生命周期记录。后续该用户注册或者登录后,需要将该临时ID上发生的用户关键行为合并到学号上去。但该临时ID不要删除,以便继续统计用户万一退出登录后在平台上的行为。
创建临时ID时,需要同时将第一次浏览的信息写上,如果是通过活动链接,则将该次行为记为“参与活动”,否则的话就记为第一次浏览。比如用户通过百度搜索,进入主页,记录的格式为:第一次浏览、具体链接、PC、Chrome、时间戳。

数据统计

用户通过活动链接创建的账户,需要对用户的后续关键行为做持续统计,比如注册、购买等,以方便根据这些数据做精细化的运营,提升广告或者活动效率。
一个用户参与了多次活动,比如活动A、B、C,后续该用户如果注册或者购买了课程(任何平台课程都可以),则注册或者购买数据,需要统计到活动A上,因为是活动A最早触达该用户,使其了解到公司的产品。

技术实现思路

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

    1. 有:则将唯一标识存入到cookie
    2. 没有:则不是广告投放来源
  2. 虚拟id:暂时用php中session_id作为虚拟id的(如果朋友们有更好的建议,可以推荐一下,互相学习)
  3. 当发现用户已注册或登录后,将要把虚拟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"功能

手把手教你如何做一套utm广告投放相关推荐

  1. 手把手教你做一套 UTM 广告投放!| 原力计划

    作者 | WXiangQian王先森 责编 | 郭芮 出品 | CSDN博客 目前平台上缺乏对用户来源和生命周期的管理,导致外部投放活动和平台的运营活动无法精确掌握投放效果.这次增加的功能,可以让我们 ...

  2. 手把手教你如何做自媒体赚钱,揭开自媒体赚钱真相!记得收藏

    这真是一个好时代,一个人人都是自媒体的时代,一个信息爆炸的时代. 自媒体变现,几乎人人都可以实现,离我们并不远,就在你我身边,普通人都可以通过自媒体赚钱. 手把手教你如何做自媒体赚钱,揭开自媒体赚钱真 ...

  3. 足疗师手把手教你家中做足疗

    足疗师手把手教你家中做足疗 一.含苞未放:把脚擦干,之后涂抹润肤油; 二.金鱼摆尾:双手横向拍打双脚外侧,起到放松小腿肌肉的作用; 三.隔墙有耳:双手握住一只脚,向内稍用力挤压; 四.仙鹤展翅:双手在 ...

  4. 教你如何做抖音视频广告,助你脱颖而出

    教你抖音如何做视频广告?在抖音上制作视频广告,能够充分利用抖音的平台以及流量优势,有效助力品牌的营销转化.巨量学提供了大量关于抖音视频广告的制作技巧,能够帮助您提升视频制作能力,在众多营销推广中脱颖而 ...

  5. 手把手教你如何做建模竞赛(baseline代码讲解)

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 1.大赛背景 随着科技发展,银行陆续打造了线上线下.丰富多样的客户触 ...

  6. 手把手 教你如何做网线接头

    教你如何做网线接头:站长不会做网线就太丢脸了. 教你如何做网线接头:作为站长,不会做网线就太丢脸了.目前局域网构建已经十分普遍,计算机上集成以太网卡已经是标准配置,局域网的踪影在我们周围无处不在,简单 ...

  7. 别人的灵敏度永远压不住枪?手把手教你怎么调节一套适合自己的刺激战场灵敏度

    刺激战场灵敏度到底怎么调才适合自己?之前分享了好几套刺激战场主播的灵敏度,但是很多玩家用过之后表示不适合.其实大神的灵敏度也不一定适合每个人,跟你的手机机型.操作指法等都有关系,我想了一下,与其给你们 ...

  8. 手把手教你从零开始做一个好看的 APP

    前言 从零开始,手把手带你实现一个「专注睡前的 APP」.睡觉之前如果能有一个 APP,能让我们写一写这一天的见闻或者心得,同时又能看一会段子.瞄一会好看的妹子,放松一下疲惫的身心那该多好,这也是我完 ...

  9. 手把手教你如何做门店盈亏平衡分析图表,内附模板可直接套用

    最近有一些自己做小本生意的粉丝私信问我说:"我的店铺生意不错,每个月也能有一点利润,但每次到年底的时候,把工资.房租这些费用盘点后发现自己并没有剩钱..想请教一下,我应该如何用数据来判断我店 ...

  10. 如何做好任务管理,手把手教你怎么做最高效的任务管理

    背景:如何做好任务管理,我们的工作充满着大大小小的「项目」.「任务」:活动策划.工程实施.IT 研发.风险投资等等.使用 云效项目协作做「项目化」任务管理,团队规划工作事目标更清晰,执行更到位,更好的 ...

最新文章

  1. VC解析XML--使用CMarkup类解析XML
  2. CentOS通过DNSpod实现动态域名
  3. 人工智能:自由能理论,AI未来的数学模型
  4. 取得成本中心组、成本要素组层级的几个BAPI
  5. java 数组怎么求和_java数组排序,并将数组内的数据求和
  6. php采集一言代码_PHP简单实现一言 / 随机一句功能
  7. 现在比较流行的三级菜单,京东商城,淘宝网效果等等。(修正版)
  8. deploy.php
  9. Java枚举的定义,使用
  10. 关于java中的集合如何删除一个元素。
  11. 队列处理高并发_高并发场景下缓存处理的一些思路
  12. expires为session_面试必问:session,cookie和token的区别
  13. 【clickhouse】ClickHouse表引擎 MergeTree 数据生命周期
  14. 2022 智能语音技术最新进展与发展趋势
  15. Java Timetask 无缘无故停止
  16. jdbc执行多条sql_JDBC相关知识总结
  17. base64编码的图片字节流存入html页面中的显示
  18. python展示文件_python之文件的读写和文件目录以及文件夹的操作实现代码
  19. 3DMAX导出网格顶点切向量
  20. Java~基于fluent-hc快速构建Http请求,结合failsafe实现异常重试

热门文章

  1. 985大学计算机专业高考录取分数线,985大学历年录取分数线
  2. 利用msf 对靶机metasploittable2 进行信息收集
  3. 如何批量给图片加水印?
  4. 如何撤销Word文档的只读模式
  5. Win 10 深度隐藏文件夹命令
  6. cordic ip核 vivado_Xilinx Vivado Cordic 核的使用
  7. 苹果内存不够怎么办_内存硬盘不够用怎么办?手把手教你给自己的笔记本更换,超实用!...
  8. 【Git】git命令git clone 报错的解决方法集合
  9. paypal php 开发,PHP语言开发Paypal支付demo的具体实现
  10. 品牌 read.php,优网科技高级程序员关于PHP优化知识分享