mysql广告投放查询_广告投放数据分析
1 提出问题:如何实现广告的精准投放
实现广告的精准投放就是最大化投入产出的过程,需要知道我们的用户在哪里,在哪些渠道能够更大化用户价值,以及各个渠道用户价值的变化规律。通过对渠道方式和渠道质量的追踪,以引流和转化率为关键事件,做好渠道的优化和维护。
本文通过研究阿里天池数据,仅从渠道,投放时间,投放人群,以点击率为数据指标进行数据分析,从而给出更好的方案和建议,实现高效率高产出。如何评估渠道质量确定投放优先级
2 数据来源
2.1 数据源
2.2 数据理解
(1)user_profile.csv.tar.gz
(2)ad_feature.csv.tar.gz
(3)raw_sample.csv.tar.gz
表user_profile反映的是用户信息,表ad_feature反映的是广告属性信息,表raw_sample反映的是用户行为信息。数据集不存在投入产出字段,命题转化为以浏览量、点击率作为数据指标,进行数据分析。
3 分析思路广告投放数据分析
4 数据存储
将数据源存储在MYSQL数据库中,且变更数据存储空间大小。
4.1 计算各个广告的点击次数
由于数据量巨大,宕机时间长,选择部分数据分析,以下计算各个广告的点击次数。
-- 1 各个广告总点击次数SELECT raw_sample.adgroup_id, count(*) AS arise_count
FROM raw_sample
GROUP BY adgroup_id
ORDER BY arise_count DESC;
4.2 选择子集
筛选广告点击凑数最多的710164作为新的数据集建表
-- 2 新建表CREATE TABLE IF NOT EXISTS 710164_sample
(
userid INT NOT NULL,
time_stamp VARCHAR(100) NOT NULL,
adgroup_id VARCHAR(20) DEFAULT NULL,
pid VARCHAR(100) DEFAULT NULL,
nonclk VARCHAR(20) DEFAULT NULL,
clk VARCHAR(20) DEFAULT NULL
)engine=innodb default charset=utf8;
将筛选数据插入数据表中
-- 3 将查询数据插入表中INSERT INTO 710164_sample
SELECT * FROM raw_sample
WHERE adgroup_id = '710164';
创建视图作为中间桥梁
-- 4 创建视图CREATE VIEW per_group_an AS
SELECT s.userid,
FROM_UNIXTIME(s.time_stamp,'%Y-%m-%d') AS 'clk_date',
FROM_UNIXTIME(s.time_stamp,'%k') AS 'clk_time',
s.pid,
s.nonclk,
s.clk,
u.new_user_class_level,
u.age_level,
u.final_gender_code,
u.pvalue_level,
u.occupation,
u.shopping_level
FROM 710164_sample AS s, user_profile AS u
WHERE u.userid = s.userid;
-- 5 查询视图数据SELECT * FROM per_group_an;
-- 6 观察一下价格SELECT price
FROM ad_feature
WHERE adgroup_id = '710164';
5 数据分析
5.1 分析不同渠道点击率
SELECT p.pid, COUNT(*) AS arise_count,
SUM(p.clk) AS clk_count,
CONCAT(ROUND(SUM(p.clk)/COUNT(*) * 100,2),'%') AS clk_ratio
FROM per_group_an AS p
GROUP BY p.pid
ORDER BY clk_ratio DESC;
由于渠道有限,仅从2个渠道源分析来看,430548_1007需要继续维护渠道,提高转化率,430548_1007需要加大渠道投入,做好引流。
5.2 分析不同投放时间点击率
5.2.1 每日各时间段点击率分析
SELECT p.clk_time, COUNT(*) AS arise_count,
SUM(p.clk) AS clk_count,
ROUND(SUM(p.clk)/COUNT(*),4) AS clk_ratio,
CONCAT(ROUND(SUM(p.clk)/COUNT(*) * 100,2),'%') AS clk_ratio_copy
FROM per_group_an AS p
GROUP BY p.clk_time
ORDER BY clk_ratio DESC;
可知:
a. 在浏览量达到一定数据时,每日的上午10点、下午3点的点击率出现了小高峰。
b. 晚上由9点开始浏览量主键提升,但点击率相对于前段时间较低,说明多数用户是目的性流量走低。
c. 深夜0-2点点击率超过12%,推测原因,可能是浏览量较低,偶然性提升,也可能是这部分人群的目的性较强,如果能获知这些人群画像,能高效的做好营销转化。
说明,目标客户在深夜转化的可能性更高。
5.2.2 每周各天点击率分析
SELECT DATE_FORMAT(p.clk_date,'%w') AS week_day, COUNT(*) AS arise_count,
SUM(p.clk) AS clk_count,
ROUND(SUM(p.clk)/COUNT(*),4) AS clk_ratio,
CONCAT(ROUND(SUM(p.clk)/COUNT(*) * 100,2),'%') AS clk_ratio_copy
FROM per_group_an AS p
GROUP BY DATE_FORMAT(p.clk_date,'%w')
ORDER BY clk_ratio DESC;
可知,周六、日,周一点击率较高,浏览量也不低,说明这几天带来的收益是更大的。
5.2.3 各天各时间段分析
SELECT DATE_FORMAT(p.clk_date,'%w') AS week_day, clk_time,
COUNT(*) AS arise_count,
SUM(p.clk) AS clk_count,
ROUND(SUM(p.clk)/COUNT(*),4) AS clk_ratio,
CONCAT(ROUND(SUM(p.clk)/COUNT(*) * 100,2),'%') AS clk_ratio_copy
FROM per_group_an AS p
GROUP BY DATE_FORMAT(p.clk_date,'%w'),clk_time
ORDER BY clk_ratio DESC;
5.3 分析人群特征点击率
5.3.1 各年龄层次人群点击率分析
SELECT age_level, COUNT(*) AS arise_count,
SUM(p.clk) AS clk_count,
ROUND(SUM(p.clk)/COUNT(*),4) AS clk_ratio,
CONCAT(ROUND(SUM(p.clk)/COUNT(*) * 100,2),'%') AS clk_ratio_copy
FROM per_group_an AS p
GROUP BY age_level
ORDER BY clk_ratio DESC;
可知
a. 广告投放在1/2/5年龄层带来的点击率更高,需要从时间维度考虑,增大广告投入对这三个年龄层的效果。
b. 对与年龄层6,可以从时间维度考虑增大样本投入后会不会有更大的点击率,从而判定是否需要更多的投入。
c. 对比年龄层1/5和3,说明可以放弃对年龄层3的投入,最好增加时间维度和投入资源维度。
d. 年龄层0需要投入更多的资源,观察效果后判定舍去与否。
5.3.2 各个消费等级人群点击率分析
SELECT p.pvalue_level,
COUNT(*) AS arise_count,
SUM(p.clk) AS clk_count,
ROUND(SUM(p.clk)/COUNT(*),4) AS clk_ratio,
CONCAT(ROUND(SUM(p.clk)/COUNT(*) * 100,2),'%') AS clk_ratio_copy
FROM per_group_an AS p
GROUP BY pvalue_level
ORDER BY clk_ratio DESC;
可知,高档人群点击率偏低仅有7.13%,原因可能是产品的客单价是109,不符合这类人群的需求。
5.3.3 各购物深度人群点击率分析
SELECT p.shopping_level,
COUNT(*) AS arise_count,
SUM(p.clk) AS clk_count,
ROUND(SUM(p.clk)/COUNT(*),4) AS clk_ratio,
CONCAT(ROUND(SUM(p.clk)/COUNT(*) * 100,2),'%') AS clk_ratio_copy
FROM per_group_an AS p
GROUP BY shopping_level
ORDER BY clk_ratio DESC;
可知,中、深度用户点击率略高,如果逐步转化至付费阶段,相比于浅度用户,中、深度用户后续付费根能行会更大。
5.3.4 各职业(是否大学生)人群点击率分析
SELECT p.occupation,
COUNT(*) AS arise_count,
SUM(p.clk) AS clk_count,
ROUND(SUM(p.clk)/COUNT(*),4) AS clk_ratio,
CONCAT(ROUND(SUM(p.clk)/COUNT(*) * 100,2),'%') AS clk_ratio_copy
FROM per_group_an AS p
GROUP BY occupation
ORDER BY clk_ratio DESC;
可知,大学生的点击率略高,但总体区分度不大,说明样本用户群体对710164敏感度差异性不大,可能是价格109属于平价款的原因。
5.3.5 各城市等级人群点击率分析
SELECT p.new_user_class_level,
COUNT(*) AS arise_count,
SUM(p.clk) AS clk_count,
ROUND(SUM(p.clk)/COUNT(*),4) AS clk_ratio,
CONCAT(ROUND(SUM(p.clk)/COUNT(*) * 100,2),'%') AS clk_ratio_copy
FROM per_group_an AS p
GROUP BY new_user_class_level
ORDER BY clk_ratio DESC;
可知,等级城市2浏览量和点击率较高,需要持续投入,4可以继续投入观察效果,1/3可考虑舍弃。
6 结论和建议
6.1 渠道分析
只有2个渠道,区分度不大,从引流和转化的角度看,430548_1007需要继续维护渠道,提高转化率,430548_1007需要加大渠道投入,做好引流。
6.2 投放时间分析
加大对深夜0-2点时间段广告投放,周六、日和周一,投放效果更好。
6.3 人群分析
(1)加大对年龄层1/2/5年龄层投放效果,建议减少对高档人群的投放,加大对中深度用户投放,加大对城市等级2/4投放,广告对职业不敏感,建议取消这部分投入
(2)多维度下其他特征,可以结合时间维度,多做测试,然后取舍。
mysql广告投放查询_广告投放数据分析相关推荐
- java mysql 多表查询_解析Mysql多表查询的实现
查询是数据库的核心,下面就为您介绍Mysql多表查询时如何实现的,如果您在Mysql多表查询方面遇到过问题,不妨一看. Mysql多表查询: CREATE TABLE IF NOT EXISTS co ...
- 数mysql据分析优化_从零开始学习数据分析-mysql架构与优化理论
mysql的逻辑分层:连接层 服务层 引擎层 存储层 引擎层主要分为两类:InnoDB.MyIsam(使用show engines;查看) InnoDB是事务优先的,会进行行锁,适合高并发操作 MyI ...
- mysql怎么子查询_在mysql中如何进行子查询?
在mysql中,子查询是指将一个查询语句嵌套在另一个查询语句中,可以在SELECT.UPDATE和 DELETE语句中配合WHERE子句进行实现,WHERE子句中语法格式为"WHERE (另 ...
- mysql 利用时间查询_利用时间的艺术
mysql 利用时间查询 Oh dear! If I had a dime every time (I just rhymed - twice!) someone, including me, com ...
- mysql中文模糊查询_解决MySQL中文模糊查询问题
解决MySQL中文模糊查询问题: 我们在MySQL中进行中文模糊查询时,经常会返回一些与之不相关的记录,比如查找%a%时,返回的可能有中文字符,却没有a字符存在.对于此问题目前发现一种方法可以很方便解 ...
- mysql数据库众数查询_拼多多面经分享:24个「数据分析
一.贝叶斯公式复述并解释应用场景 P(A|B) = P(B|A)*P(A) / P(B) 如搜索query纠错,设A为正确的词,B为输入的词,那么: P(A|B)表示输入词B实际为A的概率 P(B|A ...
- mysql租房信息查询_使用mysql对上海租房信息进行简单数据分析
此前对赶集网的上海个人房源租房信息进行了数据分析.所以用的工具是EXCEL,所以这次使用,mysql 对之前的数据进行简单的数据分析. 一.清洗并导入数据 先对excel中的数据再次进行清洗和整理.使 ...
- mysql水果表查询_最全MySQL数据库表的查询操作
序言 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对于INNER JOIN(内连接).LEFT JOIN(左连接).RIGHT JOIN(右连接)等一些复杂查询. 通过本节的学习,可 ...
- mysql select符合查询_数据库select group by 和having语句 多表连接查询 复合查询
1.SELECT --group by 子句 group by子句按照指定的列column_name对表数据进行分组 group by 后面跟的列也叫分组特性列 使用group by后,能选择的列 ...
- mysql逗号分隔正则查询_正则表达式在逗号分隔的列表中查找字符串和下一个字符-MySQL?...
要搜索以逗号分隔的列表,请使用MySQL find_in_set().这里不需要为此使用正则表达式.语法如下-select *from yourTableName where find_in_set( ...
最新文章
- 多个mapper的事务回滚_揭秘蚂蚁金服分布式事务 Seata 的AT、Saga和TCC模式
- 人工智能下一个前沿:可解释性
- WordCount结对拓展
- Qt 调用 Windows 接口实现窗口置顶
- 计算机视觉:图像分类定位(单一目标检测)python实现
- 局域网计算机中arp,在局域网中的一台计算机上使用了arp-a命令,有如下输出: C:\arp.a Interface: 192.168.0.1 0n - 赏学吧...
- 自学it18大数据笔记-第三阶段Scala-day06——会持续更新……
- 2.3微秒的特征点匹配
- 云原生应用程序运行时 Kyma 的主要特性介绍
- 快速的CSV文件生成器
- 基于POLARDB数据库的压测实践
- 美团面试题:缓存一致性,我是这么回答的!
- 数字通信系统的主要性能指标
- c++ 全局变量_专业解码 | 带你了解Python全局变量与局部变量!
- 学完python能做什么-学完Python后能做什么?
- 07堆排序 python
- Python核心编程笔记---- print@2
- linux 主流 集群 软件,Linux 高可用(HA)集群之Pacemaker详解
- Mac 设置终端命令快捷方式
- 学习记录之显示屏语言模块确定,星瞳学习
热门文章
- 职场篇(一):明哥的职场礼仪七堂课笔记
- 安卓获取wifi列表_大家好,我是来给你家 WiFi 提速的
- android 定位 指南针,Android 实现指南针效果
- win7,win10访问Samba的共享目录提示“登录失败:用户名或密码错误”最终解决方法
- 加性噪声和乘性噪声、均值滤波器、方框滤波器、中值滤波器、高斯滤波器、双边滤波器
- 货币的时间价值及股票估值
- php创建留言板,PHP开发留言板教程之创建数据库
- 4种Word文档解除密码保护的方法
- 乘法计算机公式,Excel表格乘法函数公式
- 中医针灸学综合练习题库【10】