渠道分析-操作指南

by prentiss 2021-11-04

数据分析是广告优化的基础能力,广告投放过程中通过数据分析挖掘改进点,可以数倍降低用户获取的成本,同时量化广告投放的ROI。本项目以某电商的广告渠道投放及生产系统的Demo数据为例(Demo样例数据约5万条),对渠道数据和生产数据进行采集,将投放的广告数据与生产数据进行深度的关联,得到渠道数据模型,并从广告点击率、获客成本等维度对数据进行分析。

BDOS Online提供一套数据工作流系统,能够根据时间或数据可用性来运行这些程序和查询,实现任务的编排、调度、监控。并以DAG拖拉拽的方式,全任务管理、监控作业及其依赖关系,提供数据采集、数据处理及数据导出等步骤初始化后的定时自动化调度运行,并支持任务排队和插队机制。包括步骤如下:

第一步:URL文件导入,采集行业广告渠道信息和业务数据到HDFS 第二步:HDFS到Hive导入,把数据从HDFS导入到数仓(Hive) 第三步:Hive程序,从广告点击率、获客成本等维度对数据进行分析 第四步:ETL程序,把数据从数仓导入到指定的MySQL库,对结果数据的可视化展示进行数据准备 第五步:Superset,通过Superset对结果数据进行BI可视化展示

完整步骤内容文档下载

步骤介绍

创建渠道分析个人/机构项目

备注:仅机构管理员可创建机构项目

点击首页【创建新项目】,填写项目名称和描述,进行项目创建,创建后会进入数据工程项目界面

添加项目步骤

1. URL文件导入,采集行业广告渠道信息和业务数据到HDFS

创建项目后,添加【数据采集-URL文件导入】步骤至该项目。可点击步骤名称,修改名称为:1-URL文件导入 – 上传广告、订单、报表数据

点击Tab【步骤README】,并复制为本演示场景提供的Demo数据

过程编写

广告渠道线索Demo数据Web下载路径: http://linktime-public.oss-cn-qingdao.aliyuncs.com/Project_online/public_program/channel-clue-demonew.csv

广告渠道生产系统Demo订单数据Web下载路径:http://linktime-public.oss-cn-qingdao.aliyuncs.com/Project_online/public_program/channel-order-demonew.csv

广告渠道转化Demo数据Web下载路径:http://linktime-public.oss-cn-qingdao.aliyuncs.com/Project_online/public_program/channel-report-demonew.csv

导入数据源配置

名称内容
目标URL下载输入本演示场景提供的Demo数据链接,多个文件链接需分别进行多次导入
文件名称可不填写,系统将默认读取链接上的文件名称及后缀;也可自定义文件名称,并填写文件后缀,如 .csv, .txt, .xls(系统当前支持的文件类型)

目标目录设置

名称内容
HDFS目录选择保持默认

填写完毕后点击导入,并查看运行结果

2. HDFS到Hive导入,把数据从HDFS导入到数仓(Hive)

点击添加【数据转换-HDFS到Hive导入】步骤至该项目。可点击步骤名称,修改名称为:2 – HDFS到Hive导入 – 导入广告、订单数据到 Hive。

2.1 导入线索表:channel_clue_demonew到目标Hive库

HDFS数据源配置

名称内容
HDFS目录文件选择输入/查看并选择表:channel_clue_demonew

Hive目录表设置

名称内容
数据库下拉框选择系统提供的个人Hive数据库,如:user_xxx(xxx为当前登陆用户名)
数据表状态点击新表需创建后点击打开向导

保持默认,并点击下一步

数据表导入向导

名称内容
目标表名称用户可自定义(只能使用大小写字母以及下划线和数字。例如 user_test.table1)
数据格式选择csv
高级配置保持默认

修改字段clue_type原始类型boolean型为string型

点击执行

2.2 导入线索表:channel_order_demonew到目标Hive库

HDFS数据源配置

名称内容
HDFS目录文件选择输入/查看并选择表:channel_order_demonew

Hive目录表设置

名称内容
数据库下拉框选择系统提供的个人Hive数据库,如:user_xxx(xxx为当前登陆用户名)
数据表状态点击新表需创建后点击打开向导

保持默认,并点击下一步

参考截图修改字段类型后,点击执行

2.3 导入线索表:channel_report_demonew到目标Hive库

HDFS数据源配置

名称内容
HDFS目录文件选择输入/查看并选择表:channel_report_demonew

Hive目录表设置

名称内容
数据库下拉框选择系统提供的个人Hive数据库,如:user_xxx(xxx为当前登陆用户名)
数据表状态点击新表需创建后点击打开向导

保持默认,并点击下一步

参考截图修改字段类型后,点击执行

执行完成后,可查看运行记录

3. Hive程序,从广告点击率、获客成本等维度对数据进行分析

点击添加【数据分析-Hive程序】步骤至该项目。可点击步骤名称,修改名称为:3 – Hive程序- 数据计算。

编写主程序

备注:个人项目,请用实际登陆名替换beta,实际自定义的三个输入表名替换此次的三个表名。机构项目,请使用org_<实际机构名称>替换user_beta

输出表:user_beta.table_flow_output

线索输入表:user_beta.channel_clue_demonew

订单输入表:user_beta.channel_order_demonew

报表输入表:user_beta.channel_report_demonew

CREATE TABLE if not exists user_beta.table_flow_output (
`id` int COMMENT '唯一ID',
`ad_type` string COMMENT '渠道类型',
`cost` float COMMENT '展现数据-总花费',
`ad_show` int COMMENT '展现数据-展示数',
`convert_cost` float COMMENT '转化数据-转化成本',
`advertiser_id` int COMMENT '广告主ID',
`campaign_name` string COMMENT '广告组name',
`click` int COMMENT '展现数据-点击数',
`stat_datetime` string COMMENT '数据起始时间',
`ad_id` int COMMENT '计划id',
`form` int COMMENT '落地页转化数据-表单提交',
`ad_name` string COMMENT '计划name',
`ad_convert` int COMMENT '转化数据-转化数',
`ad_order` int COMMENT '订单数',
`ad_amount` float COMMENT '订单总金额'
);


set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.max.dynamic.partitions.pernode=3000;
set hive.exec.max.dynamic.partitions=3000;
set hive.exec.max.created.files=3000;

WITH report_clue_table AS (
SELECT report.*, clue.order_id FROM user_beta.channel_report_demonew report
LEFT JOIN
(SELECT ad_id, order_id from user_beta.channel_clue_demonew) clue
ON report.ad_id = clue.ad_id
),

report_clue_order_table AS (
SELECT rc.*, orders.order_payed_amount
FROM report_clue_table rc
LEFT JOIN
(SELECT * FROM user_beta.channel_order_demonew) orders
ON rc.order_id = orders.order_id
)

insert overwrite table user_beta.table_flow_output
select
jr.id,
jr.ad_type,
jr.cost,
jr.ad_show,
jr.convert_cost,
jr.advertiser_id,
jr.campaign_name,
jr.click,
jr.stat_datetime,
jr.ad_id,
jr.form,
jr.ad_name,
jr.ad_convert,
rco.ad_order,
rco.ad_amount
FROM user_beta.channel_report_demonew jr
LEFT JOIN (
  SELECT ad_id, count(1) as ad_order, sum(order_payed_amount) as ad_amount  
  FROM report_clue_order_table where order_id is not null and order_payed_amount > 0 GROUP BY ad_id
) rco
ON jr.ad_id = rco.ad_id

点击保存后,点击试运行,查看运行日志

查看运行记录

参考截图查看Hive程序运行记录,可点击运行名称查看日志详情

查看输出表

点击【集成工具-Hue】进入Hue主界面

选择【Notebook-Editor-Hive】进入

输入查询语句,查看输出表数据

select * from user_beta.table_flow_output limit 10

4. ETL程序,把数据从数仓导入到指定的MySQL库

点击添加【数据转换-ETL程序】步骤至该项目。可点击步骤名称,修改名称为:4 – ETL程序- 导出作业用于BI展示。

过程编写-输入源配置

名称内容
数据源类型下拉框选择Hive
数据库选择个人/机构数据库
选择Hive程序步骤创建的输出表

点击下一步

过程编写-输出源配置

内容名称
数据源类型下拉框选择MySQL
数据源选择个人/机构数据库(点击查看如何配置
方式选择创建新表
新表名用户自定义
设置主键列保持默认
建表语句点击获取建表语句
数据变更选择Update

点击下一步

选择字段匹配标准,进行输入源字段和输出源字段的映射匹配,点击下一步,对数据进行预览

点击保存后,点击试运行

5. 工作流与依赖视图

从项目列表视图切换至工作流与依赖视图

手动拖拽步骤,并建立依赖关系

注:实线为有实际依赖关系的流水线调度步骤,虚线为逻辑依赖关系,不参与调度

设置调度时间,启动调度后,实现关联的步骤会按顺序按时运行

点击保存,并启动

查看调度实例记录

6. Superset, 对结果数据进行BI可视化展示

点击【集成工具-机构工具-Superset】,点击进入工具。进入Superset界面后,选择【数据源-数据库】后点击+,添加数据库

添加数据库

名称内容
数据库bdos_private<当前登陆用户名>db,如:bdos_private_beta_db
SQLAlchemy URLSQLAlchemy URI: mysql://<BDOS Online当前登陆用户名>:<BDOS Online当前登陆密码>@master.innodb-cluster.l4lb.thisdcos.directory:6446/bdos_private<当前登陆用户名>db?charset=utf8

其他选项可保持默认后,点击保存

添加数据表

返回Superset界面后,选择【数据源-数据表】后点击+,添加数据表

名称内容
数据库下拉框选择刚添加的数据库
表名可手动输入ETL步骤的MySQL输出表名

其他选项可保持默认后,点击保存

返回Superset界面后,选择【图表】后点击+

配置数据源

名称内容
数据源下拉框选择添加的数据表
选择可视化类型选择Bar Chart

配置图表

名称内容
时间范围选择未过滤
指标COUNT(convert_cost)
序列ad_name

其他选项可保持默认后,点击运行

点击保存

留言

评论

${{item['author_name']}} 回复 ${{idToContentMap[item.parent] !== undefined ? idToContentMap[item.parent]['author_name'] : ''}} · ${{item.date.slice(0, 10)}} 回复

暂时还没有一条评论.