电商精准营销教学设计.docx
- 文档编号:12862074
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:17
- 大小:127.47KB
电商精准营销教学设计.docx
《电商精准营销教学设计.docx》由会员分享,可在线阅读,更多相关《电商精准营销教学设计.docx(17页珍藏版)》请在冰点文库上搜索。
电商精准营销教学设计
课程名称
第11章综合项目-电商精准营销
计划学时
4学时
内容分析
本章主要介绍项目概述、项目详细介绍、项目模块分析、数据采集、数据清洗、使用数据仓库进行数据分析、可视化
教学目标
与
教学要求
要求学生了解项目背景及需求,了解项目中的架构设计,了解数据来源,掌握数据清洗流程,掌握数据仓库操作流程,掌握应用测试方法。
教学重点
项目模块分析、数据采集、数据清洗、使用数据仓库进行数据分析、可视化
教学难点
项目模块分析、数据采集、数据清洗、使用数据仓库进行数据分析、可视化
教学方式
课堂讲解及ppt演示
教
学
过
程
第一课时
(项目概述、项目详细介绍、项目模块分析、数据采集、数据清洗)
回顾内容,引出本课时主题
1.回顾内容,引出本课时的主题
在前面的章节中,详细讲解了Hadoop的基础知识与核心技术,以及各相关组件的使用,包括Hadoop、Hive、HBase、Zookeeper、Flume、Sqoop等。
本节将通过一个企业级真实项目案例,串联前面所学的知识点,讲解这些知识点在实际开发过程中的应用。
2.明确学习目标
(1)能够了解项目详细介绍
(2)能够掌握项目模块分析
(3)能够掌握数据采集
(4)能够掌握数据清洗
知识讲解
Ø项目背景介绍
电商网站上线之后,利用大数据技术,收集用户的行为数据,进行多维度统计分析,掌握网站线上运营情况,将分析结果生成相应的数据报表,提供给运营部门进行业务分析。
运营部门利用数据报表,可以制订出相应的网站优化方案,调整广告投入,组织举办更好的促销、精准营销等活动。
Ø项目架构设计
项目架构:
数据源(JS、SDK)—数据采集(Flume)—数据预处理(MapReduce)—数据仓库(Hive)—数据导出(Sqoop)—数据存储(MySQL)—数据可视化。
(1)数据采集。
每当用户通过PC端或者移动端访问商城网站时,网站前台后台程序均会产生日志信息,前台通过JS(JavaScript)收集到Nginx服务器中,后台通过SDK(SoftwareDevelopmentKit,软件开发工具包)收集到Nginx服务器中。
然后在Nginx服务器中部署FlumeAgent采集软件,实时监控目录,将产生的日志文件实时的采集到HDFS当中。
(2)数据预处理。
将采集到的数据按照项目需求进行初步的清洗,得到项目中需要使用到的字段数据。
(3)数据仓库。
由于MapReduce操作数据编写流程过于复杂,这里采用Hive来对数据进行处理。
将数据导入到Hive中,按照项目的需求,写SQL语句来实现。
(4)数据存储。
处理之前的数据以及Hive的输出数据都存储在HDFS中,读取十分缓慢,很容易造成超时,这里采用Sqoop工具,将数据导入到MySQL中。
(5)数据可视化,为了更直观的展示数据结果,对得到的数据结果进行可视化操作。
Ø项目核心关注点
本项目收集不同客户端的用户行为数据,通过MapReduce、Hive进行数据分析处理,将分析结果数据保存到关系型数据库中。
在此过程中需要对几个核心的关注点进行详细分析。
(1)购买率:
购买的人数/总人数购买的人数/查看该商品的总人数。
(2)复购率:
n次购买的人数/n-1次购买的人数(N>=2)。
(3)订单数量,订单金额,订单的类型。
①成功订单数量、成功订单金额、成功订单的类型。
②退款订单数量、退款订单金额、退款订单的类型。
(4)访客人数/会员人数。
(5)访客转会员的比例。
(6)广告推广效果。
(7)网站内容相关的分析(网站的跳出率、页面的跳出率)。
Ø重要概念
1.访客
访问网站指定用户、一般称为自然人,区分PC、手机:
访客统计指标如下。
(1)新增访客:
第一次访问系统的访客人数。
(2)活跃访客:
给定时间段内访问过系统的访客人数(老访客+新访客)。
(3)总访客:
迄今为止访问过系统的访客总人数。
(4)流失访客:
上一个时间段内访问过系统,当前时间段内没有访问系统的访客人数。
(5)回流访客:
上一个时间段内没有访问过系统,当前时间段内访问过系统的访客人数
2.会员
业务系统中注册用户、直接使用业务系统中会员标识符来标识。
访客登录系统后,就成为会员。
会员统计指标如下。
(1)新增会员:
第一次登录系统的会员人数。
(2)活跃会员:
给定时间段内登录过系统的会员人数(老会员+新会员)。
(3)总会员:
迄今为止新增会员的总人数。
(4)回流会员。
(5)流失会员。
(6)访客转会员比例。
(7)新增访客转会员的比例。
3.会话
用户进入到系统到离开系统这一段时间被成为会话,这段时间的会话时间长度就叫做会话长度,一个会话中的所有操作都属于同一个会话。
会话分为PC端会话和移动端会话。
PC端会话采用浏览器的Session机制在Cookie中存储一个存活时间,在操作的时候,进行判断时间是否过期,如果过期,产生一个新的会话,如果没有过期,更新操作时间
移动端会话采用移动端的Session机制,类似PC端种植Cookie的方式,在磁盘中写入一个时间进行判断。
会话指标如下。
(1)会话长度。
(2)会话数量。
(3)跳出会话的数量(在一个会话中,只访问过一次网站的会话数量)。
4.跳出率
跳出率统计指标如下。
(1)会话跳出率:
跳出会话/总会话数量。
(2)页面跳出率:
从该页面离开后进入到其他页面的会话数量占进入该页面会话数量的百分比。
5.外链
外链统计指标:
不同外链带来的会话数量/访客数量/订单数量。
6.PV
PV(PageView,页面访问量)是用户每次对网站的访问总次数,用户,每次对网站访问都被记录,用户多次访问同一页面,访问量累计。
7.UV
统计UV(UniqueVisitor,独立访问用户)数量。
访问网站的一台计算机为一个访客。
00:
00-24:
00相同的客户端只被计算一次。
8.独立IP
统计独立IP数量。
00:
00-24:
00内相同IP地址只被计算一次。
9.DV
DV(DepthView,访问深度)指访问了多少页面,展示网站内容对用户的吸引程度,结合跳出率,有助于修改网站内容,提高网站黏性友好性。
统计指标:
不同访问深度访客人数/会话数量。
Ø维度
数据分析只有基于相应的维度下才有意义,常见的维度如表所示
维度
解释
时间维度
年、季度、月、周、日、小时
平台维度
区分用户行为数据来自PC端、移动端还是后台系统,有Website、Android、Ios、Java_Server、Php_Server等
浏览器维度
却别浏览器类型、浏览器版本
地域维度
国家、省份、城市
KPI维度
指定分析的指标
版本维度
比如V1、V2等等,一般用于多个版本之间进行数据比较(AB测试)
支付方式维度
Alipay、Weixin、银行卡支付……
外链维度
XX、360、google等等
操作系统维度
操作系统名称、操作系统版本
Ø项目模块分析
本项目主要有七个模块的数据,分别为:
用户基本信息分析模块、浏览器分析模块、地域分析模块、外链分析模块、用户浏览深度分析模块、事件分析模块、订单分析模块。
针对不同的分析模块,我们有不同的用户数据需求,七个模块中,用户基本信息分析模块和浏览器分析模块类型一致,只是后者比前者多一个浏览器维度。
地域分析模块和外链分析模块分别从不同的维度进行分析展示。
用户浏览深度分析模块、事件分析模块以及订单分析模块是单独针对业务进行的分析。
Ø用户基本信息分析模块
主要从访客和会员两个主要角度分析浏览相关信息,包括但不限于新增访客、活跃访客、总访客、新增会员、活跃会员、总会员以及会话分析等。
Ø浏览器分析模块
在用户基本信息分析的基础上添加一个浏览器维度。
(1)浏览器访客分析。
(2)浏览器会员分析。
(3)浏览器会话分析。
(4)浏览器PV分析。
Ø地域分析模块
主要分析个不同省份的用户和会员状况。
(1)活跃访客地域分析。
(2)不同地域的跳出率分析。
Ø外链分析模块
主要分析各不同外链端带来的用户访问量数据。
(1)外链偏好分析:
分析各个外链带来的活跃访客数量。
(2)外链会话(跳出率)分析。
ØSqoopexport参数
我们需要将用户浏览的数据采集到我们的存储系统(HDFS)中,在本项目中,我们只收集PC端数据和程序后台的部分数据。
在PC端,我们通过集成JS来收集用户浏览行为数据;在程序后台,我们通过集成Java的jar文件包来收集需要的数据。
在这里只考虑Java开发环境。
JS/jar将收集的数据发送到Nginx,然后Flume监控Nginx日志,将数据写入到HDFS中,如图所示。
ØJSSDK收集数据
1.概述
应了解JSSDK的集成方式以及提供的各种不同的API,注意:
不采用IP地址,而是通过在Cookie中填充一个UUID来标示用户的唯一性。
2.JSSDK执行工作流
JSSDK中按照收集数据的不同分为不同的事件,比如Pageview事件等。
JSSDK的执行流程如图所示
3.程序前台事件分析
不同的分析模块需要不同的数据,下面分别分析每个模块需要的数据。
用户基本信息就是用户的浏览行为信息,所以我们只需要Pageview事件。
本项目所涉及到的事件如表所示
最终分析模块
PC端JSSDK事件
用户基本信息分析
Pageview事件
浏览器分析
地域分析
外链分析
用户浏览深度分析
ChargeRequest事件
事件分析
Event事件
Launch事件
(1)Launch事件。
用户第一次访问网站触发该事件。
该事件不提供对外调用的接口,只实现该事件的数据收集。
(2)Pageview事件。
用户访问页面/刷新页面触发该事件。
该事件可以自动调用,也可以让程序员手动调用。
(3)ChargeRequest事件。
用户下订单触发该事件。
该事件需要程序主动调用。
(4)Event事件。
用户触发业务定义的事件后,前端程序调用相关方法。
4.数据参数说明。
从各个不同事件中收集的不同数据被发送到Nginx服务器,但实际上这些数据还是有一些共性的。
可能用到的数据参数说明如所示。
参数名称
类型
描述
en
string
事件名称,如:
e_pv
ver
string
版本号,如:
0.0.1
pl
string
平台,如:
website
sdk
string
Sdk类型,如:
js
b_rst
string
浏览器分辨率,如:
1800*678
b_iev
string
浏览器信息useragent
u_ud
string
用户/访客唯一标识符
l
string
客户端语言
u_mid
string
会员id,和业务系统一致
u_sd
string
会话id
c_time
string
客户端时间
p_url
string
当前页面的url
p_ref
string
上一个页面的url
tt
string
当前页面的标题
ca
string
Event事件的Category名称
ac
string
Event事件的action名称
kv_*
string
Event事件的自定义属性
du
string
Event事件的持续时间
oid
string
订单id
on
string
订单名称
cua
string
支付金额
cut
string
支付货币类型
pt
string
支付方式
ØJavaSDK收集收据
1.概述
应了解JavaSDK的集成方式以及提供的各种不同的方法。
注意:
由于在本次项目中JavaSDK的作用主要就是发送支付成功/退款成功的信息给Nginx服务器,所有我们讲解的是一个简单版本的JavaSDK。
2.JavaSDK执行流程
JavaSDK支付成功执行流如图所示(退款成功与之类似)
3.程序后台事件分析
本项目中在程序后台只会触发ChargeSuccess事件,本事件的主要作用是发送订单成功的信息给Nginx服务器。
发送格式与PC端发送方式相同,也是访问同一个URL来进行数据的传输。
(1)ChargeSuccess事件
当会员最终支付成功的时候触发该事件,该事件需要程序主动调用。
(2)ChargeRefund事件
当会员进行退款操作的时候触发该事件,该事件需要程序主动调用。
4.数据参数说明
可能用到的参数说明如表所示
参数名称
类型
描述
en
string
事件名称,eg:
e_cs
ver
string
版本号,eg:
0.0.1
pl
string
平台,eg:
website
sdk
string
SDK类型,eg:
java
u_mid
string
会员id,和业务系统一致
c_time
string
客户端时间
Ø使用Flume搭建日志采集系统
由于Flume是部署在Nginx中进行日志数据采集的,所以在配置Flume之前,需要先对Nginx服务器进行配置,具体配置流程(见附录A)
下面,开始配置搭建日志采集系统
(1)编写配置文件:
在Flume的安装目录下的conf目录中,创建Flume-app.conf文件,编辑内容参见教材11.4.4节。
(2)在Flume的安装目录下创建相应的文件夹。
(3)运行Flume。
复制几份文件到spo_logs文件夹下,系统立即监测到该目录发生变化,实时抽取数据,而且.log文件不会被抽取。
至此Flume采集系统搭建完成,可以用Flume采工具将数据采集到HDFS当中。
Ø日志信息说明
1.数据产生
用户在浏览电商网站时,会触发很多事件,这时在前端页面设置数据埋点,会触发Ajax异步请求将数据传送到后台。
2.数据样例
3.数据描述
(1)文件头,共8字节。
①第一个起始IP的绝对偏移量,4字节。
②最后一个起始IP的绝对偏移量,4字节。
(2)结束地址/国家/区域记录区,4字节。
IP地址后跟的每一条记录分成两个部分:
国家记录、地区记录。
(3)起始地址/结束地址偏移记录区。
每条记录7字节,按照起始地址从小到大排列。
①起始IP地址,4字节。
②结束IP地址的绝对偏移量,3字节。
注意:
这个文件里的IP地址和所有的偏移量均采用小端字节序,而Java采用大端字节序格式的,需要转换。
Ø分析需要清洗的数据
通过Flume采集到HDFS中的数据为原生数据,也称为不规整数据,即目前来说,该数据的格式还无法满足我们对数据处理的基本要求,需要对其进行预处理,将其转化为我们所需要的较为规整的数据,以方便后面的统计分析。
Ø解析数据格式转换
采集到的原始数据需要讲格式进行转换,包括IP地址解析、浏览器信息解析、服务器时间解析等。
(1)将IP解析为国家、省、市。
(2)对浏览器信息进行清洗转换。
(3)对时间进行清洗。
Ø利用MapReduce清洗数据
数据清洗的过程主要是编写MapReduce程序,而MapReduce程序的编写又分为写Mapper、Reducer、Job三个基本的过程,在本项目中,要达到数据清洗的目的,只需在Mapper,其输出的数据并不需要进一步经过Redcuer来进行汇总处理。
具体过程代码参见教材11.53节。
第二课时
(使用数据仓库进行数据分析、可视化)
回顾内容,引出本课时主题
1.回顾内容,引出本课时的主题
上节已经学习了使用MapReduce对数据进行分析,由于使用MapReduce实现业务需求代码量过大,比较烦琐,所以开发人员一般情况下使用Hive数据仓库,写SQL语句实现功能。
本节从创建数据库开始,带领大家一步步学习实现本项目中的各模块业务需求。
也会介绍可视化方面相关知识。
2.明确学习目标
(1)能够掌握使用数据仓库进行数据分析
(2)能够掌握可视化
知识讲解
Ø事件模块数据分析
(1)创建数据库。
(2)编写事件的维度类和修改操作基础维度服务。
(3)编写UDF函数。
(4)创建元数据对应的临时表。
(5)导入数据。
(6)创建hive表。
(7)在Hive中创建和MySQL最终结果表一样的临时表。
(8)扩展维度。
(9)输入测试数据。
(10)Sqoop导出数据。
(11)结果展示。
分析过程具体代码和命令参见教材11.6.1节。
Ø订单模块数据分析
(1)创建维度类,并创建对应的UDF方法。
将编写好的UDF函数代码提交到HDFS集群中。
(2)创建表。
(3)写指标。
分析过程具体代码和命令参见教材11.6.2节。
Ø时间板块数据分析
(1)数据抽取(抽取该模块中需要的字段即可)。
(2)创建最终结果表。
(3)创建临时表。
(4)SQL语句。
(5)Sqoop导出数据。
(6)用户角度下的浏览深度。
(7)统计PV的值。
(8)将统计的pv的值和对应的pv1,pv2等存储到临时表。
具体分析过程的代码和命令参见教材11.6.3节。
ØECharts简介
ECharts(EnterpriseCharts,商业级数据图表),是XX的一个开源的数据可视化工具,在业界获得了很多赞誉。
ØECharts优点
Echarts官网提供了源码和说明文档,以及可供使用的大量图表。
Echarts的优点如下。
(1)开源软件,完全免费,采用漂亮的图形化界面。
(2)操作简单,内部封装了重要的JS,可直接引用。
(3)提供了各种图表。
(4)兼容性好,基于Html5渲染动画。
Ø操作流程
下面以地图为例,对Echarts的操作流程进行简单阐述
(1)向HTML中引入JS文件。
(2)在使用Echarts制图之前,首先要定义一个区域。
(3)写入随机数来测试数据。
具体流程中的代码参见教材11.7.3节。
第三课时
上机练习(总结、练习题)
1.总结本章内容。
2.通过题库发放相关测试题,检查学生掌握情况。
上机练习主要针对本章中需要重点掌握的知识点,以及在程序中容易出错的内容进行练习,通过上机练习可以考察同学对知识点的掌握情况,对代码的熟练程度。
第四课时
上机练习(总结、练习题)
1.总结本章内容。
2.通过题库发放相关测试题,检查学生掌握情况。
上机练习主要针对本章中需要重点掌握的知识点,以及在程序中容易出错的内容进行练习,通过上机练习可以考察同学对知识点的掌握情况,对代码的熟练程度。
习题
教材第11章习题
教
学
后
记
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精准 营销 教学 设计