基于MySQL实现广告精准投放
Posted colin1314
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于MySQL实现广告精准投放相关的知识,希望对你有一定的参考价值。
问题的提出:如何实现广告的精确有效投放?
在现实的推广过程中,优质人群,投放时间,资源位的确定属于盲测,且市场多变,推广的过程中大量人力财力是无效的投入。通过对推广数据的研究,从人群,投放时间,投放位置等多维度进行点击率数据分析,得出最佳推广方案,从而让推广费用投入更高效。
分析思路
为达成广告精准有效投放,我们从投放位置,投放时间,和投放人群三方面来多维度分析广告的点击率,从而筛选出最佳的投放位置,最佳投放时间,优质投放人群,从而实现精确投放,提高推广费用的使用效果。
目的
为实现高效的广告推荐,通过对用户信息,用户行为以及广告信息分析:
用户信息:用户id,性别,年龄,消费档次,购物深度,是否为大学生,所在城市
广告信息:广告id,商品类目,广告计划,广告主,品牌,价格
用户行为:点击时间,是否点击等
多维度进行数据分析,找出其中的隐含规律,并提出最佳的推广方案,实现广告精准投放
数据来源
阿里天池https://tianchi.aliyun.com/dataset/dataDetail?dataId=56
- 数据集
user_profile.csv.tar.gz
ad_feature.csv.tar.gz
raw_sample.csv.tar.gz
数据理解
ad_feature.csv.tar.gz :广告的基本信息,包含广告id的基本信息
user_profile.csv.tar.gz:用户基本信息表格,包含位用户信息
raw_sample.csv.tar.gz:样本人群点击记录表格,包含条点击记录
数据预处理
1. 导入数据
创建用户基本信息表:user_info
创建用户点击信息表:user_click_record
创建广告基本信息表:ad_info
1. 用户基本信息表:
select * from user_info limit 20;
# 用户基本信息总条数: select count(*) as ‘用户基本信息条数’ from user_info;
2. 用户点击信息表
select * from user_click_record limit 20;
# 用户点击信息总条数: select count(*) as ‘用户点击信息条数’ from user_click_record;
# 用户是否点击信息: Select count(*) from user_click_record where clk = 1;
3. 广告基本信息:
select * from ad_info limit 20;
# 广告基本信息总条数: select count(*) as ‘广告基本信息条数’ from ad_info;
2. 特征提取
选择广告点击最高的广告数据进行分析:
由上面的查询用户点击记录表的广告点击量检索非常耗时,因此我们筛选出表中广告id为:710164的记录,并将其存储到新建表new_user_click_record中。
新建表:
将筛选的结果存储在该表中:
查询结果:
数据分析与可视化图表制作
1. 创建可视化图表:
内联接关联user_info表和new_user_click_record表,通过探索各维度特征与当前维度下展现量和点击率之间的关系,分析用户心理与行为。
CREATE VIEW 视图(人群分析) AS SELECT new_user_click_record.`用户id`, from_unixtime(new_user_click_record.`时间戳`,‘%Y-%m-%d‘) AS ‘点击日期‘, from_unixtime(new_user_click_record.`时间戳`,‘%k:%i:%s‘) AS ‘点击时间‘, new_user_click_record.`资源位`, new_user_click_record.nonclk, new_user_click_record.clk, user_info.`城市层次`, user_info.`年龄层次`, user_info.`性别`, user_info.`消费档次`, user_info.`是否为大学生`, user_info.`购物深度` FROM new_user_click_record,user_info WHERE user_info.`用户id`= new_user_click_record.`用户id`;
2. 分析不同资源位点击率
select 视图(人群分析.资源位), count(*) as 展现量, sum(clk) as 点击数, CONCAT(Round(sum(clk) / count(*)*100, 2),‘%‘) as ‘点击率‘ FROM 人群分析.资源位 GROUP BY 资源位 order by 点击率 desc;
由分析结果可知,两个资源位点击率差异较少,虽然资源位430539点击率略高一点,但是展现量却不如另一资源位。运营人员应根据推广目的对曝光度以及点击率做合理的权衡。
3. 多维度分析不同投放时间点击率
3.1 每日各时间段点击率分析
SELECT `视图(人群分析)`.`点击时间`, COUNT(*) AS 展现量, SUM(`视图(人群分析)`.clk) AS 点击数, ROUND(SUM(`视图(人群分析)`.clk) /COUNT(*)*100 ,2) AS 点击率, CONCAT(ROUND(SUM(`视图(人群分析)`.clk) /COUNT(*)*100 ,2),‘%‘)AS 点击率1 from `视图(人群分析)` GROUP BY `视图(人群分析)`.`点击时间` ORDER BY 点击率 DESC;
展示结果如图所示:
由以上数据图表分析,得出以下结论:
a、 展现量从早上9点开始活跃至晚上十点达到高峰,与人们日常作息时间相对应。
b、 在展现量达到一定体量的基础上,每日的上午10点、下午3点的点击率出现了小高峰。
c、 深夜1-2点点击率升高接近13%,推测原因,一方面可能近期商家做活动抢购,另一方面夜深之时,一天忙碌后临睡前用户会有购物的欲望。
3.2 每周各天点击率分析:
SELECT DATE_FORMAT(`视图(人群分析)`.`点击日期时间`,‘%w‘) AS 周数, COUNT(*) AS 展现量, SUM(`视图(人群分析)`.clk) AS 点击数, ROUND(SUM(`视图(人群分析)`.clk) /COUNT(*)*100 ,2) AS 点击率, CONCAT(ROUND(SUM(`视图(人群分析)`.clk) /COUNT(*)*100 ,2),‘%‘)AS 点击率1 from `视图(人群分析)` GROUP BY DATE_FORMAT(`视图(人群分析)`.`点击日期时间`,‘%w‘) ORDER BY 点击率 DESC;
展示结果如下图所示:
分析总结:由图可知道5月6号周六到周一的点击率偏高,展现量也处于不错的水平,而到了下个周六展现量与点击率均有所下降,这可能与下个星期天即将到来的母亲节相关。运营人员可以根据对应节气上线一些具有节日特色的商品。
4 多维度分析各人群点击率
4.1 各年龄层次人群点击率分析
SELECT `视图(人群分析)`.`年龄层次`, COUNT(*) AS 展现量, SUM(`视图(人群分析)`.clk) AS 点击数, CONCAT(ROUND(SUM(`视图(人群分析)`.clk) /COUNT(*)*100 ,2),‘%‘)AS 点击率 from `视图(人群分析)` GROUP BY `视图(人群分析)`.`年龄层次` ORDER BY 点击率 DESC;
其分布图如下图所示:
由图可知,年龄层次1、2、5对于点击率偏高,年龄层次2和3展现量处于不错水平,可推断现今青少年仍是消费主体。
4.2 各消费档次人群点击率分析
SELECT `视图(人群分析)`.`消费档次`, CASE WHEN `视图(人群分析)`.`消费档次`=1 THEN "低档" WHEN `视图(人群分析)`.`消费档次`=2 THEN "中档" WHEN `视图(人群分析)`.`消费档次`=3 THEN "高档" ELSE "未分类" END AS `实际消费档次`, COUNT(*) AS 展现量, SUM(`视图(人群分析)`.clk) AS 点击数, CONCAT(ROUND(SUM(`视图(人群分析)`.clk) /COUNT(*)*100 ,2),‘%‘)AS 点击率 from `视图(人群分析)` GROUP BY `视图(人群分析)`.`消费档次` ORDER BY 点击率 DESC;
其分布结果如下图所示:
由图表分析可知,高档人群展现量仅有883,且点击率也偏低,推测是由于产品109的单价,不符合高档人群购物需求,推广时候应该注意剔除此类人群。
4.3 各个购物深度人群点击率分析
SELECT `视图(人群分析)`.`购物深度`, CASE WHEN `视图(人群分析)`.`购物深度`=1 THEN "浅层用户" WHEN `视图(人群分析)`.`购物深度`=2 THEN "中度用户" WHEN `视图(人群分析)`.`购物深度`=3 THEN "深度用户" ELSE "未分类" END AS `实际购物深度`, COUNT(*) AS 展现量, SUM(`视图(人群分析)`.clk) AS 点击数, CONCAT(ROUND(SUM(`视图(人群分析)`.clk) /COUNT(*)*100 ,2),‘%‘)AS 点击率 from `视图(人群分析)` GROUP BY `视图(人群分析)`.`购物深度` ORDER BY 点击率 DESC;
其分布结果如下图所示:
由图表分析可知,用户购物深度对于点击率影响不大。但是深度用户在展现量占据90%以上,点击率仍有9.45%,该人群点击率比较稳定。
4.4 各职位(是否大学生)人群点击率分析:
SELECT `视图(人群分析)`.`是否大学生`, CASE WHEN `视图(人群分析)`.`是否大学生`=1 THEN "是" WHEN `视图(人群分析)`.`是否大学生`=0 THEN "否" ELSE "未分类" END AS `实际职位(是否大学生)`, COUNT(*) AS 展现量, SUM(`视图(人群分析)`.clk) AS 点击数, CONCAT(ROUND(SUM(`视图(人群分析)`.clk) /COUNT(*)*100 ,2),‘%‘)AS 点击率 from `视图(人群分析)` GROUP BY `视图(人群分析)`.`是否大学生` ORDER BY 点击率 DESC;
分析可知,用户的职位对于是否是大学生影响不大,分析商品单价109,属于平价款,接受程度较高
4.5 各城市层级人群点击率分析
SELECT `视图(人群分析)`.`城市层级`, COUNT(*) AS 展现量, SUM(`视图(人群分析)`.clk) AS 点击数, CONCAT(ROUND(SUM(`视图(人群分析)`.clk) /COUNT(*)*100 ,2),‘%‘)AS 点击率 from `视图(人群分析)` GROUP BY `视图(人群分析)`.`城市层级` ORDER BY 点击率 DESC;
其分布结果如下图所示:
由图表分析可知,第1层级点击率较低,第4层级展现量也比较低,处于中间第2层级展现量以及点击率都很高,消费人群与所在城市繁华程度以及人数有关。
4.6 不同性别人群点击率分析:
SELECT `视图(人群分析)`.`性别`, COUNT(*) AS 展现量, SUM(`视图(人群分析)`.clk) AS 点击数, CONCAT(ROUND(SUM(`视图(人群分析)`.clk) /COUNT(*)*100 ,2),‘%‘)AS 点击率 from `视图(人群分析)` GROUP BY `视图(人群分析)`.`性别` ORDER BY 点击率 DESC;
分析可得,女性远比男性展现量的点击率高,故运营人员可以多推荐一些女性相关的产品。
总结与建议
- 产品分析:商品价格是109,在对应类目这个价格是普通价位,受众较多。对应广告的展现量以及点击量也处于较高的水平。
- 广告资源位分析:产品在两个资源位点击率并无较大差别。
- 广告投放时间分析:每天上午10点左右,下午3点左右点击率较高,也与商家促销活动、节假日时间等因素相关。可以根据推广需求,及转化率对于这几个时间区间设置溢价,提高该时段的展现,提高整个计划的点击率。
- 投放人群分析:由分析可知,广告对于购物深度,以及是否是学生人群的特性不敏感。对于城市层级,年龄层次,消费档次人群特性比较敏感,研究产品本身特点,推测产品主要消费人群是年龄处于1-2层级,消费能力一般,且处于社会中层的群体。
以上是关于基于MySQL实现广告精准投放的主要内容,如果未能解决你的问题,请参考以下文章