文章目录

  • 官方描述
  • 一、观察数据
  • 二、提出问题以及实现方法
    • 2.1 哪个渠道综合结果数据较优质
      • 2.1.1 排除有相关性的数据
      • 2.1.2 数据归一化
      • 2.1.3 加权评分
    • 2.2 优质渠道有什么共性特征
    • 2.3 分析各个广告特征与结果数据之间的关系
  • 总结

官方描述

公司近三个月(30天)大力投放广告,累计投放的渠道有889,每个渠道的客户性质也可能不同,比如在优酷视频投广告和今日头条投放广告,效果可能会有差异。现在需要对广告效果分析实现有针对性的广告效果测量和优化工作。


一、观察数据



平均停留时长有两个空值,我们找到这两个空值

两个渠道都有日均UV,平均停留时间不太可能为0。并且两个渠道的素材类型、广告类型、合作方式、广告卖点相同,用相同广告属性的平均数去弥补。

同时我们能根据平均数、四分位数推测,结果数据呈现偏态分布,有许多异常值,做直方图和箱线图查看。


实现代码:

fig, axes = plt.subplots(2,6,figsize=(20,8))
result_type=ad.columns.tolist()[1:7]
result_type
for i in range(len(result_type)):sns.distplot(ad[result_type[i]],norm_hist=True,ax=axes[0][i])axes[0][i].axvline(x=ad[result_type[i]].mean(), color = 'red',linestyle=":")sns.boxplot(ad[result_type[i]],ax=axes[1][i])
plt.tight_layout()


二、提出问题以及实现方法

2.1 哪个渠道综合结果数据较优质

重点关注顺序应该是渠道给公司带来的:
收益效果(订单转化率)
新用户效果(平均注册率)
访问效果(日均UV、平均搜索率、访问深度、平均停留时长)

这里用加权评分法对这几个结果数据进行评分

2.1.1 排除有相关性的数据

corr = ad.corr().round(2)
mask = np.zeros_like(corr)
mask[np.triu_indices_from(mask)] = True
sns.heatmap(corr,cmap='Reds',annot = True,mask=mask)
plt.show()


可以看到,“访问深度”和“平均停留时间”相关性比较高,相关性高说明两个变量在模型中作用或者效果是一样的,可以考虑组合或者删除其一。

2.1.2 数据归一化

#选取日均UV、平均注册率、平均搜索量、访问深度、订单转化率
ad_result=ad.iloc[:,1:7]# min-max缩放
minmax_df = pd.DataFrame(preproc.minmax_scale(ad_result),columns=[x+"归一化" for x in ad_result.columns.tolist()])#数据合并
pingfen_df=pd.concat((ad,minmax_df),axis=1)

2.1.3 加权评分


#加权评分:满分15分
#日均UV:1、平均注册率:4、平均搜索量:1、访问深度:2、订单转化率:7pingfen_df["分数"]=pingfen_df["日均UV归一化"]+pingfen_df["平均注册率归一化"]*4+pingfen_df["平均搜索量归一化"]+pingfen_df["访问深度归一化"]*2+pingfen_df["订单转化率归一化"]*7

总分15分最高分的A723也只有7.1,同时用describe()函数查看分数数据也是呈严重偏态分布,尾部数据较多,说明质量差的渠道较多,应重点选质量好的渠道加大投放,节约成本。

同时也由于数据本身存在投放时间有偏差,新投放的渠道,用户没有看过该广告,可能会更有兴趣点进去,带来较好的结果数据。投放交长时间的渠道会在时间较长的时候,结果数据下降,导致平均指标下降。

如果条件允许,应控制投放时间一致去分析投放效果。

在Top10广告里,A859和A756的两个渠道排第三第四,而且投放时间较长,可以多加投放。

2.2 优质渠道有什么共性特征

把Top10%的渠道数据取出来,和其他数据进行对比

top_df=pingfen_df.sort_values("分数",ascending=False).head(89)
other_df=pingfen_df.sort_values("分数",ascending=False).iloc[89:,:]
fig, axes = plt.subplots(2,5, constrained_layout=True,figsize=(16, 8))ad_attr=ad.columns.tolist()[8:13]for i in range(len(ad_attr)):attr_df=other_df[ad_attr[i]].value_counts()labels=attr_df.index.tolist()data=attr_df.values.tolist()axes[0][i].pie(data, autopct='%1.1f%%',labels=labels)axes[0][i].set_title("优质渠道"+ad_attr[i])attr_df=top_df[ad_attr[i]].value_counts()labels=attr_df.index.tolist()data=attr_df.values.tolist()axes[1][i].pie(data, autopct='%1.1f%%',labels=labels)axes[1][i].set_title("其他渠道"+ad_attr[i])plt.tight_layout()

单看某一特征来说:

  1. 优质渠道的素材类型为jpg的占比更多,swf占比更少
  2. 广告类型方面,优质渠道中横幅的比例占比最大,高达40%。”不确定“在优质渠道和其他渠道都有有很大比例,有必要清楚是什么类型才能做更好的分析。
  3. 合作方式中,优质渠道与其他渠道的cpc占比差距不大,并且都是最高的。但是roi占比变大,cpm、cpd占比表小
  4. 600*90的广告尺寸在优质渠道中占比较大,并且也比其他渠道占比高9%左右
  5. 广告卖点为”直降“的占比优质渠道比其他渠道要多,并且多达9%,满减多了0.5%,其他相对减少

当然我们还需要进一步看有没有什么组合的广告是优质的。但这里数据较小,暂时没有得出结论。

组合特征这里只取转化率作为重要指标,去看每个组合特征的平均转化率,以及该特征的渠道数量。

df=pingfen_df.groupby([pingfen_df["等级"],pingfen_df["素材类型"],pingfen_df["广告类型"],pingfen_df["广告尺寸"],pingfen_df["广告卖点"]])[["订单转化率","分数"]].agg(["mean","count"]).dropna(axis=0).reset_index()df.sort_values(by=[('分数',  'mean')],ascending=False)

用shape可以看到有43个组合,其中(素材类型:swf,广告类型 :不确定,广告尺寸:600*90,广告卖点:直降)的平均分数为7.1936,平均转化率为0.2165,均为最高。但是只有一个渠道数据,并没有说服力。

当我们拥有大量数据的时候,可以通过这个方法去看什么组合特征的渠道转化率、或者其他指标最优。

2.3 分析各个广告特征与结果数据之间的关系

方法一:每个特征的结果数据的平均数

dict_X={}
tezheng=X.iloc[:,1:-5].columns.tolist()
jieguo=X.iloc[:,-5:].columns.tolist()
#print(jieguo)
for m in range(len(tezheng)):mean_list=[]for n in range(len(jieguo)):mean=X[X[tezheng[m]]==1][jieguo[n]].mean()mean_list.append(mean)dict_X[tezheng[m]]=mean_listdf=pd.DataFrame(dict_X,index=jieguo).T

方法二:对特征数据按one-hot进行编码,对结果数据归一化,看相关性

cols = ['素材类型','广告类型','合作方式','广告尺寸','广告卖点']
ohe_matrix1=pd.get_dummies(ad[cols])
#ad_result=ad.iloc[:,1:7]
X=pd.concat((ohe_matrix1,ad_result),axis=1)
corr = X.corr().round(2)
corr=corr.iloc[-5:,:-5]
# 相关性分析
fig, axes = plt.subplots(figsize=(20,10))sns.heatmap(corr,cmap='Reds',annot = True)
plt.show()

比较明显能看到素材类型为gif、广告类型为暂停(???)和广告尺寸为390*270的广告渠道和访问深度有较强相关性。其余相关性并不强。


总结

因数据存在投放时间的差异,导致数据指标会收投放时间的影响,并不能很准确的反应结果。

这里给的投放建议是:

  1. 广告类型为不确定的居多,并且在Top10%的优质广告占比较大,应清楚知道是什么广告类型,可以更好地区选择和优化渠道
  2. 素材类型为gif、广告类型为暂停和广告尺寸为390*270的广告渠道和访问深度有较强相关性
  3. 可以多加投放A859和A756,因为这两个渠道投放时间较长,并且保持较好的结果数据。

分析各渠道广告,建立评分模型以及找到优质渠道的特性相关推荐

  1. python 广告分析算法_[Python]研究广告渠道的特征数据与结果数据的相关性, 并对渠道作出评分模型...

    官方描述 公司近三个月(30天)大力投放广告,累计投放的渠道有889,每个渠道的客户性质也可能不同,比如在优酷视频投广告和今日头条投放广告,效果可能会有差异.现在需要对广告效果分析实现有针对性的广告效 ...

  2. 信用卡评分模型(数据获取+数据预处理+探索分析+变量选择+模型开发+模型评估+信用评分+建立评分系统)

    最近两次遇到关于信用卡评分的题目,遂了解一波. Reference: 基于python的信用卡评分模型(超详细!!!) https://www.jianshu.com/p/f931a4df202c h ...

  3. 商品评论情感分析——基于商品评论建立的产品综合评价模型(1)

    商品评论情感分析--基于用户评论建立的产品综合评价模型(1) 1.背景 1.1问题分析 2.数据预处理 2.1删除无关数据 2.2文本去重 3.情感分析 4.LDA主题模型 4.1评论文本分词 4.2 ...

  4. 机器学习实验笔记-基于信用卡数据建立行为评分模型的机器学习方法

    基于信用卡数据建立行为评分模型的机器学习方法 很久之前的一个答疑, 应该不会再影响评分了, 记录以供复习. 数据集与代码放在CSDN下载区域, 也可以留言索要. https://download.cs ...

  5. (软件工程复习核心重点)第九章面向对象分析-第三节:面向对象分析之建立动态模型和功能模型

    文章目录 一:建立动态模型 (1)概念 A:适用性 B:步骤 (2)编写脚本 A:定义 B:目的 C:内容 D:方法 (3)设想用户界面 A:重要性 B:目的 C:方法 (4)画事件跟踪图 A:必要性 ...

  6. 信用评分模型中的滚动率分析

    信用评分模型中的滚动率分析 信用风险模型的目标是识别出应被拒之门外的潜在坏客户,因此给出合理的客户好坏分类是建模的基础.比如,信用卡逾期的"坏客户",究竟应该是所有逾期过的客户,还 ...

  7. 电影评分数据分析python_豆瓣电影简单评分模型-从收集数据到建模分析

    思路: 从豆瓣上抓取数据[主要是评分,只是那个人数的百分比和最终评分,不过够用了] 一.收集数据 起始URL:https://movie.douban.com/j/new_search_subject ...

  8. 豆瓣电影简单评分模型-从收集数据到建模分析

    思路: 从豆瓣上抓取数据[主要是评分,只是那个人数的百分比和最终评分,不过够用了] 一.收集数据 起始URL:https://movie.douban.com/j/new_search_subject ...

  9. Python分析国家领导人新春贺词建立主题模型

    主题建模可以帮助开发人员直观地理解和探索数据,以便更好地挖掘语料库中的主题.成功的主题建模需要多次迭代:清洗数据.读取结果.相应地调整预处理并重试.本文通过分析国家领导人从2014年到2021年的新春 ...

最新文章

  1. java 手机号脱敏,身份证号脱敏 工具类
  2. Java 面试题基础概念收集(高级)
  3. .NET Compact Framework s60v3(在S60上运行Windows Mobile程序)
  4. CentOS 恢复 rm -rf * 误删数据(转)
  5. 4月第三周国内域名解析商Top10:万网升至20.32%
  6. Silverlight+WCF 新手实例 象棋 棋子移动-线交叉点(六)
  7. 前端折线图中背景,Chart.js折线图设置背景颜色
  8. Windows服务中Timer组件Tick无法触发
  9. AMPL 简单运输模型
  10. Java常见算法(一)
  11. android viewholder静态,android – 静态ViewHolder并在使用RecyclerView时获取上下文
  12. 免费https ssl证书freessl.org的申请及配置
  13. 程序员学英语Oeasy
  14. W3C 验证的是是非非
  15. c#和java部署pytorch同事识别两个图片_Pytorch转NCNN的流程记录
  16. php查询后台地址,dedecms 织梦后台查找方法【整理】
  17. Alpha选股:资本资产定价模型(CAPM)
  18. ur机器人编程-程序流程
  19. lib与dll的关系(详解静态链接库和动态链接库)
  20. 爬虫之 静态页面和动态页面

热门文章

  1. 一个关于Linux Bridge配置的吐嘈
  2. 抖音最常见的4种违规方式,不注意很可能会被封号!
  3. HDU 6447 YJJ's Salesman (dp+树状数组+莫干山算法)
  4. python画笑脸图案-如何用Python画滑稽笑脸!
  5. sqlserver+mysql时间_SqlServer和mysql的日期函数备忘
  6. 阿里云ECS服务器安装Nginx
  7. python自动化运维脚本(仅供参考)
  8. 51Nod 1677 treecnt
  9. java 中介模式_中介者模式
  10. 前后端交互必备之js数组方法大全