精准广告投放——SQL

目录

一.项目背景
二.分析思路
三.数据
3.1 数据来源
3.2 数据理解
四.数据处理
4.1 导入数据
4.2 选择子集
4.3 新建表
五.搭建模型
5.1 多维度分析用户点击率
-- 5.1.1 年龄层次点击率
--5.2.2 消费档次点击率
-- 5.2.3 购物深度点击率
-- 5.2.4 职位(是否大学生)人群点击率分析
-- 5.2.5 城市层次点击率
5.2 多维度分析不同投放时间点击率
-- 5.2.1 每日各时间段点击率分析
-- 5.2.2 每周各天点击率分析
5.3 分析不同资源位点击率
六.结论

一. 项目背景

随着互联网的普及和电子商务的迅猛发展,网络广告成为一种新的经营方式。然而网络广告形式多样,现有广告投放系统率大多缺乏针对性,使得网络广告精确度不高,不能达到预期效果。因此,对推广数据的研究是十分必要的,本文将从用户特征,投放时间,投放位置三方面多维度进行数据分析,提高用户点击率,让推广费用投入高效。

二.分析思路

三. 数据

3.1 数据来源

阿里天池——https://tianchi.aliyun.com/dataset/dataDetail?dataId=56

3.2 数据理解

3.2.1 user_profile.csv

用户基本信息表格,包含1,062,768位用户信息


用户基本信息

3.2.2 raw_sample.csv

样本人群点击记录表格,包含26,558,961条点击记录


样本人群点击记录表格

3.2.3 ad_feature.csv

广告基本信息表,包含846,811个广告id的基本信息


广告基本信息表

四. 数据处理

4.1 导入数据

新建数据库advertisement,将数据csv表格通过navicat 导入数据库,导入过程备注在文章最后,导入结果如图


导入结果

4.2 选择子集

数据库advertisement包含84611个广告的基本信息、1062768个用户基本信息、26558961个广告点击记录。为构建高效化推广分析模型,保证分析更准确,选择样本用户点击数据最多的广告id进行分析。

4.2.1 样本人群点击记录表中点击数据最多的广告单元id

SELECT 样本人群广告点击记录表.广告单元id,
count(*) as 展示量
  FROM advertisement.样本人群广告点击记录表
group  by 样本人群广告点击记录表.广告单元id
ORDER BY 展示量 desc 

运行可得


点击数量最多的广告单元id

4.2.2 点击数据最多的广告单元id——710164基本信息

SELECT `广告id`,商品类目id,`广告计划id`,`广告主id`,`品牌id`,商品价格
 FROM advertisement.广告基本信息表
where `广告基本信息表`.`广告id`=710164;

运行


点击最多的广告信息

4.3 新建表

由于样本人群点击数据记录表有千万级别的数据量,为了简化搜索,我们筛选表格中广告id710164的点击记录,储存在新表[广告id710164人群点击数据记录表]中。

4.3.1 新建空白表

广告id710164人群点击记录表

4.3.2 从样本人群广告点击记录表中找出广告id为710164,将其存入广告id710164人群点击记录表

Insert into advertisement.广告id710164人群点击记录表
select * from advertisement.样本人群广告点击记录表 a
where a.`广告单元ID` LIKE '%710164%'
广告id710164人群点击记录表

4.3.3 两表联立

内联结关联【用户基本信息表】与【广告id710164人群点击记录表】,创建视图简化操作

CREATE VIEW 人群分析 AS
SELECT `广告id710164人群点击记录表`.`用户id`,
from_unixtime(`广告id710164人群点击记录表`.`时间戳`,'%Y-%m-%d %k:%i:%s') AS '点击时间',
`广告id710164人群点击记录表`.`资源位`,
`广告id710164人群点击记录表`.nonclk,
`广告id710164人群点击记录表`.clk,
`用户基本信息表`.`城市层级`,
`用户基本信息表`.`年龄层次`,
`用户基本信息表`.`性别`,
`用户基本信息表`.`消费档次`,
`用户基本信息表`.`是否大学生`,
`用户基本信息表`.`购物深度`
FROM `广告id710164人群点击记录表`,`用户基本信息表`
WHERE `用户基本信息表`.`用户id`=`广告id710164人群点击记录表`.`用户id`;

五.搭建模型

5.1 多维度分析用户点击率

5.1.1 年龄层次点击率

SELECT `人群分析`.`年龄层次`,
COUNT(*) AS 展现量,
SUM(`人群分析`.clk) AS 点击数,
CONCAT(ROUND(SUM(`人群分析`.clk) /COUNT(*)*100 ,2),'%')AS 点击率
from `人群分析`
GROUP BY `人群分析`.`年龄层次`;

由图可知,年龄层次1,2,5对于点击率偏高,展现量处于不错水平。

5.1.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;

分析可知,高档人群点击率偏低,仅有7.13%,推测是因为产品的客单价是109,不符合高档人群购物需求,推广时候应该注意剔除此类人群。

5.1.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%,该人群点击率比较稳定。


5.1.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,属于平价款,接受程度较高。

5.1.5 城市层次点击率

SELECT `人群分析`.`城市层级`,
COUNT(*) AS 展现量,
SUM(`人群分析`.clk) AS 点击数,
CONCAT(ROUND(SUM(`人群分析`.clk) /COUNT(*)*100 ,2),'%')AS 点击率
from `人群分析`
GROUP BY `人群分析`.`城市层级`
ORDER BY 点击率 DESC;

分析可知,第1层级点击率较低,第4层级展现量也比较低,处于中间第2层级展现量以及点击率都很高。

5.2 多维度分析不同投放时间点击率

5.2.1 每日各时间段点击率分析

SELECT DATE_FORMAT(`人群分析`.`点击时间`,'%H') AS 小时,
COUNT(*) AS 展现量,
SUM(`人群分析`.clk) AS 点击数,
CONCAT(ROUND(SUM(`人群分析`.clk) /COUNT(*)*100 ,2),'%')AS 点击率
from `人群分析`
GROUP BY DATE_FORMAT(`人群分析`.`点击时间`,'%H') 
ORDER BY 点击率 DESC;


分析可知得出以下结论
a、 在展现量达到一定体量的基础上,每日的上午10点、下午3点的点击率出现了小高峰。
b、 晚上由9点开始展现量提升比较大,但是点击率也在处于上升状态。
c、 深夜1-2点点击率超过12%,推测原因,一方面数据体量比较小,偶然性比较高。另一方面推测深夜依旧在逛淘宝,购买欲望比较强烈。

5.2.2 每周各天点击率分析

SELECT DATE_FORMAT(`人群分析`.`点击时间`,'%w') AS 周数,
COUNT(*) AS 展现量,
SUM(`人群分析`.clk) AS 点击数,
CONCAT(ROUND(SUM(`人群分析`.clk) /COUNT(*)*100 ,2),'%')AS 点击率
from `人群分析`
GROUP BY DATE_FORMAT(`人群分析`.`点击时间`,'%w')
ORDER BY 点击率 DESC;


分析总结:由图可知道周六,周日,周一的点击率偏高,展现量也处于不错的水平。运营人员可以根据推广目的结合转化率每日设置溢价。

5.3 分析不同资源位点击率

SELECT `人群分析`.`资源位`,
COUNT(*) AS 展现量,
SUM(`人群分析`.clk) AS 点击数,
CONCAT(ROUND(SUM(`人群分析`.clk) /COUNT(*)*100 ,2),'%')AS 点击率
from `人群分析`
GROUP BY `人群分析`.`资源位`
ORDER BY 点击率 DESC;

由分析结果可知,两个资源位点击率差异较少,虽然资源位430539点击率略高一点,但是展现量却不如另一资源位。运营人员应根据推广目的对曝光度以及点击率做合理的权衡。

六.总结与建议

6.1 产品分析

产品客单是109,在对应类目这个价格是普通价位,受众较多。对应广告的展现量以及点击量也处于较高的水平。

6.2 广告资源位分析

产品在两个资源位点击率并无较大差别。

6.3 广告投放时间分析

每周六,周日,周一产品的点击率较高。每天上午10点左右,下午3点左右点击率较高。可以根据推广需求及转化率对于这几个时间区间设置溢价,提高该时段的展现,提高整个计划的点击率。

6.4 投放人群分析

由分析可知,广告对于购物深度,以及职位的人群特性不敏感。对于城市层级,年龄层次,消费档次人群特性比较敏感,研究产品本身特点,推测产品主要消费人群是年龄处于1-2层级,消费能力一般,且处于社会中层的群体。

附:总结遇到的问题

一.在4.1导入数据主键问题

1.1 user_profile.csv

user_profile.csv

1.2 ad_feature.csv.tar.gz

image.png

1.3 raw_sample

raw_sample

由于 raw_sample中user不唯一,所以在导入时,建表不能选择主键

1.4.导入过程可参考
https://jingyan.baidu.com/article/4dc408484839c4c8d946f1ab.html

二.在4.3.2中,

样本人群广告点击记录表中找出广告id为710164,将其存入广告id710164人群点击记录表过程中发生错误errorThe total number of locks exceeds the lock table size。
解决途径https://blog.csdn.net/github_36326955/article/details/54970808

三.在6.1中

函数:FROM_UNIXTIME,将MYSQL中以INT(11)存储的时间以"YYYY-MM-DD"格式来显示
https://www.cnblogs.com/xieqian111/p/5735952.html

四.在6.2中,

1.ROUND 函数用于把数值字段舍入为指定的小数位数
SELECT ROUND(column_name,decimals) FROM table_name


2.concat()函数将两个或多个字符串连接在一起,本文是为了体现百分数
https://www.yiibai.com/mysql/sql-concat-in-mysql.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容

  • 美团作为中国最大的在线本地生活服务平台,覆盖了餐饮、酒店、旅行、休闲娱乐、外卖配送等方方面面生活场景,连接了数亿用...
    猿学阅读 879评论 0 5
  • 今天第一件事: 英语——研读text 6第三段,并做题;复习前5篇;口语学习lesson 14; 今天第二件事: ...
    糖小食阅读 240评论 0 1
  • 我们一直在筑墙从没有停下来。几千年了我们要把风挡在墙外,把胡马的铁蹄和啸叫挡在沙漠里我们要在沙漠里建一座城,一座花...
    竹无心a阅读 645评论 1 18
  • Part1 你不再是学生 已经毕业,步入职场,就不要再把自己当做学生。再也没有人催着你上课,学习;再也没有人把你...
    Lucia洁阅读 289评论 0 1
  • 写作打卡第7天,写东西有点卡。总觉得输入的速度跟不上输出速度,要加强学习了。 沐叁是个很好的伙伴,在写作上给了我很...
    小米屋阅读 618评论 0 50