[广告]根据广告权重展示广告次数的算法

*:first-child {
margin-top: 0 !important; }
body > *:last-child {
margin-bottom: 0 !important; }

a {
color: #4183C4;
text-decoration: none; }
a.absent {
color: #cc0000; }
a.anchor {
display: block;
padding-left: 30px;
margin-left: -30px;
cursor: pointer;
position: absolute;
top: 0;
left: 0;
bottom: 0; }

h1, h2, h3, h4, h5, h6 {
margin: 20px 0 10px;
padding: 0;
font-weight: bold;
-webkit-font-smoothing: antialiased;
cursor: text;
position: relative; }

h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA09pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoMTMuMCAyMDEyMDMwNS5tLjQxNSAyMDEyLzAzLzA1OjIxOjAwOjAwKSAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUM2NjlDQjI4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUM2NjlDQjM4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QzY2OUNCMDg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QzY2OUNCMTg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsQhXeAAAABfSURBVHjaYvz//z8DJYCRUgMYQAbAMBQIAvEqkBQWXI6sHqwHiwG70TTBxGaiWwjCTGgOUgJiF1J8wMRAIUA34B4Q76HUBelAfJYSA0CuMIEaRP8wGIkGMA54bgQIMACAmkXJi0hKJQAAAABJRU5ErkJggg==) no-repeat 10px center;
text-decoration: none; }

h1 tt, h1 code {
font-size: inherit; }

h2 tt, h2 code {
font-size: inherit; }

h3 tt, h3 code {
font-size: inherit; }

h4 tt, h4 code {
font-size: inherit; }

h5 tt, h5 code {
font-size: inherit; }

h6 tt, h6 code {
font-size: inherit; }

h1 {
font-size: 28px;
color: black; }

h2 {
font-size: 24px;
border-bottom: 1px solid #cccccc;
color:#00ccff;
margin: 25px auto 12px auto;
padding-bottom: 2px;
}

h3 {
font-size: 18px;
color:#993300;}

h4 {
font-size: 16px; }

h5 {
font-size: 14px; }

h6 {
color: #777777;
font-size: 14px; }

p, blockquote, ul, ol, dl, li, table, pre {
margin: 0 0; }

/*hr {
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC) repeat-x 0 0;
border: 0 none;
color: #cccccc;
height: 4px;
padding: 0;
}*/
hr {
margin: 0 0 19px;
border: 0;
border-bottom: 1px solid #ccc;
}

body > h2:first-child {
margin-top: 0;
padding-top: 0; }
body > h1:first-child {
margin-top: 0;
padding-top: 0; }
body > h1:first-child + h2 {
margin-top: 0;
padding-top: 0; }
body > h3:first-child, body > h4:first-child, body > h5:first-child, body > h6:first-child {
margin-top: 0;
padding-top: 0; }

a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {
margin-top: 0;
padding-top: 0; }

h1 p, h2 p, h3 p, h4 p, h5 p, h6 p {
margin-top: 0; }

li p.first {
display: inline-block; }
li {
margin: 0; }
ul, ol {
padding-left: 30px; }

ul :first-child, ol :first-child {
margin-top: 0; }

dl {
padding: 0; }
dl dt {
font-size: 14px;
font-weight: bold;
font-style: italic;
padding: 0;
margin: 15px 0 5px; }
dl dt:first-child {
padding: 0; }
dl dt > :first-child {
margin-top: 0; }
dl dt > :last-child {
margin-bottom: 0; }
dl dd {
margin: 0 0 15px;
padding: 0 15px; }
dl dd > :first-child {
margin-top: 0; }
dl dd > :last-child {
margin-bottom: 0; }

blockquote {
border-left: 4px solid #dddddd;
padding: 0 15px;
color: #777777; }
blockquote > :first-child {
margin-top: 0; }
blockquote > :last-child {
margin-bottom: 0; }

/*table {
padding: 0;border-collapse: collapse; }
table tr {
border-top: 1px solid #cccccc;
background-color: white;
margin: 0;
padding: 0; }
table tr:nth-child(2n) {
background-color: #f8f8f8; }
table tr th {
font-weight: bold;
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }
table tr td {
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }
table tr th :first-child, table tr td :first-child {
margin-top: 0; }
table tr th :last-child, table tr td :last-child {
margin-bottom: 0; }*/

img {
max-width: 100%; }

span.frame {
display: block;
overflow: hidden; }
span.frame > span {
border: 1px solid #dddddd;
display: block;
float: left;
overflow: hidden;
margin: 13px 0 0;
padding: 7px;
width: auto; }
span.frame span img {
display: block;
float: left; }
span.frame span span {
clear: both;
color: #333333;
display: block;
padding: 5px 0 0; }
span.align-center {
display: block;
overflow: hidden;
clear: both; }
span.align-center > span {
display: block;
overflow: hidden;
margin: 13px auto 0;
text-align: center; }
span.align-center span img {
margin: 0 auto;
text-align: center; }
span.align-right {
display: block;
overflow: hidden;
clear: both; }
span.align-right > span {
display: block;
overflow: hidden;
margin: 13px 0 0;
text-align: right; }
span.align-right span img {
margin: 0;
text-align: right; }
span.float-left {
display: block;
margin-right: 13px;
overflow: hidden;
float: left; }
span.float-left span {
margin: 13px 0 0; }
span.float-right {
display: block;
margin-left: 13px;
overflow: hidden;
float: right; }
span.float-right > span {
display: block;
overflow: hidden;
margin: 13px auto 0;
text-align: right; }

code, tt {
margin: 0 2px;
padding: 0 0px;
white-space: nowrap;
/*background-color: #fff;*/
color: rgba(51, 102, 255, 255);
/*border: 1px solid #eaeaea;*/
/*background-color: #f8f8f8;*/
/*border-radius: 3px; */}

pre code {
margin: 0;
padding: 0;
white-space: pre;
border: none;
color: rgba(0, 0, 0, 255);
background: transparent; }

.highlight pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px; }

pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
font-size: 14px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px; }
pre code, pre tt {
background-color: transparent;
border: none; }

sup {
font-size: 0.83em;
vertical-align: super;
line-height: 0;
}
* {
-webkit-print-color-adjust: exact;
}
@media screen and (min-width: 914px) {
body {
/*width: 854px;*/
/*margin:0 auto;*/
}
}
@media print {
table, pre {
page-break-inside: avoid;
}
pre {
word-wrap: break-word;
}
}

#cnblogs_post_body li ul li {
list-style-type: circle !important;
}
#cnblogs_post_body a {
text-decoration: none;
color: #4183C4;
}

#mainContent .postBody h2 {
margin: 25px auto 12px auto;
padding-bottom: 2px;
}
-->

前言

  • 广告商给广告平台提供方投放广告
  • 广告平台提供方根据广告商投放的资金确定各个广告的权重
  • 广告平台提供方再根据权重投放广告

广告权重算法

  • 若:广告A=1,广告B=2,广告C=3, 广告D=4, 广告E=5
  • 可以将A、B、C、D、E进行数字区间映射,即:广告A=[0,1],广告B=[1,3],广告C=[3,6],广告D=[6,10],广告E=[10,15]
  • 然后定义random rd=new random()
    • int num=rd.nextInt(15);
  • 随机取到的num位于上面5个区间中的哪个,就是显示哪个广告

验证例子

1、条件

    // 5个广告权重
    private static int[] adWeight = {1,2, 3, 4, 5};
    // 5个广告名称
    private static String[] adName = {"A", "B", "C", "D", "E"};

2、根据权重算法写,这里贴出算法核心代码:

    private static String getCurrentAd() {

    BBAd current = null;
    // 计算权重和和数字区间映射
    if (weightSum == 0) {
        for (int i=0; i<5; i++) {
            ads.get(i).setWeightAreaMin((int)weightSum);
            weightSum += ads.get(i).getWeight();
            ads.get(i).setWeightAreaMax((int)weightSum);
        }
    }
    // 随机取得0~weightSume之间的数字
    int r = new Random().nextInt((int)weightSum);
    // 检测随机数位于5个区间中的哪个
    for (BBAd ad : ads) {
        // 得到当前广告
        if (ad.betweenArea(r)) {
            current = ad;
        }
    }
    // 返回广告名称
    if (current != null) {
        return current.getName();
    }
    return "";
    }

运行结果

5个广告投放10次结果输出

广告展示列表:
B, D, C, C, C

B, D, A, C, D

-----------------------------------
广告权重总和:15.0
广告展示次数总和:10.0
-----------------------------------
各个广告权重概率:A:0.06666667, B:0.13333334, C:0.2, D:0.26666668, E:0.33333334,
-----------------------------------
各个广告出现次数:A:1, B:2, C:4, D:3, E:0,
-----------------------------------
各个广告次数概率:A:0.1, B:0.2, C:0.4, D:0.3, E:0.0,

5个广告投放100次结果输出

广告展示列表:
B, D, E, E, C

C, A, E, E, E

E, E, C, E, D

E, C, B, A, D

E, B, E, B, C

E, D, A, D, C

A, D, D, E, C

C, E, E, D, E

A, B, D, B, E

E, E, D, E, B

E, E, E, C, D

C, D, B, E, B

A, E, D, E, B

E, D, D, C, C

C, D, E, D, D

B, B, E, E, E

C, E, C, E, E

B, E, C, D, A

E, E, A, B, D

D, D, E, E, E

-----------------------------------
广告权重总和:15.0
广告展示次数总和:100.0
-----------------------------------
各个广告权重概率:A:0.06666667, B:0.13333334, C:0.2, D:0.26666668, E:0.33333334,
-----------------------------------
各个广告出现次数:A:8, B:14, C:16, D:22, E:40,
-----------------------------------
各个广告次数概率:A:0.08, B:0.14, C:0.16, D:0.22, E:0.4,

5个广告投放1000次结果输出

-----------------------------------
广告权重总和:15.0
广告展示次数总和:1000.0
-----------------------------------
各个广告权重概率:A:0.06666667, B:0.13333334, C:0.2, D:0.26666668, E:0.33333334,
-----------------------------------
各个广告出现次数:A:68, B:134, C:197, D:277, E:324,
-----------------------------------
各个广告次数概率:A:0.068, B:0.134, C:0.197, D:0.277, E:0.324,

5个广告投放10000次结果输出

-----------------------------------
广告权重总和:15.0
广告展示次数总和:10000.0
-----------------------------------
各个广告权重概率:A:0.06666667, B:0.13333334, C:0.2, D:0.26666668, E:0.33333334,
-----------------------------------
各个广告出现次数:A:670, B:1366, C:2003, D:2630, E:3331,
-----------------------------------
各个广告次数概率:A:0.067, B:0.1366, C:0.2003, D:0.263, E:0.3331,

5个广告投放20000次结果输出

-----------------------------------
广告权重总和:15.0
广告展示次数总和:20000.0
-----------------------------------
各个广告权重概率:A:0.06666667, B:0.13333334, C:0.2, D:0.26666668, E:0.33333334,
-----------------------------------
各个广告出现次数:A:1366, B:2693, C:3908, D:5254, E:6779,
-----------------------------------
各个广告次数概率:A:0.0683, B:0.13465, C:0.1954, D:0.2627, E:0.33895,

结论

  • 展示次数越大,广告展示次数概率越接近广告权重概率。

本站文章为宝宝巴士 SD.Team原创,转载务必在明显处注明:(作者官方网站:宝宝巴士
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4923975.html

时间: 2024-08-20 03:54:49

[广告]根据广告权重展示广告次数的算法的相关文章

在APP中集成iAd Banner展示广告盈利

如果你已经做了一款超牛X的APP.你也许还有一件是需要操心.APP够好了,怎么盈利呢?你可以对下载你的APP的用户收费.也可以完全的免费,然后在APP里放广告来实现盈利.现在来说,除非一款APP真的是非用不可的,或者很有名,在要不就是很好玩的游戏.否则,用户一般是不会付费的.明智的选择是免费,集成广告.广告的收益是由苹果和开发这共同分成.一般来说开发者占七成,apple占三成.毕竟苹果建立了广告分发的网络. 当然也有很多的开发者选择了在免费版的APP里插播广告的同时,还开发了一个收费但是没有广告

计算广告学(2)--广告有效性模型

1.广告的接受流程 针对以上的阶段,在计算广告对系统的优化有不同的影响. 广告的天然属性有很大的影响因素(被人看到的次数,越高越好),那么曝光的频率就是影响很大,一个不好的广告位,即使系统优化再好其点击率也不会很高.对应在广告系统中就是讲广告放置的位置的不同带给该广告不同的点击率. 曝光完成后就是关注阶段.在关注阶段的主要原则:1.不要打断用户的任务也就是在用户进行一项任务时,进行推送广告不会带来很好的点击率:2.明确表示为什么要推荐这个广告,通过结合用户使用场景进行推送3.符合用户兴趣或者需求

数据挖掘和互联网广告-如何应对网盟广告作弊

网站联盟广告上的数据挖掘 在网站联盟广告上存在大量数据,再加上联盟网站上用户的访问信息,每天都会产生海量的数据. 通过之文章中提及的网站日志分析,我们可以掌握到很多与网站和访客相关的信息.再进一步分析访客在网站主和访客点击广告的后续行为,我们可以对访客的属性,包括年龄.性别.学历.收入.籍贯和兴趣爱好等各种信息作出大致的判断.访客属性的判断对于每个人不是100%准确,但是我们做数据挖掘本来就是在统计学的范畴之上的.如果一个判断的准确度在75%,那么我们可以认为这个判断做的还是比较准的.如果在90

KeyMob移动广告聚合平台/移动应用广告/Ad Exchange

KeyMob移动广告聚合平台成立于2014年,是国内专业的移动广告管理与聚合平台,具有多年的专业移动互联网产品开发及运营经验,为接入KeyMob的应用开发者提供了丰富.多样的广告来源. KeyMob移动广告聚合平台是目前国内领先的移动广告聚合平台,它整合了国内外30多家主流的广告平台,同为众多应用开发者带来更高的广告收益和更高效的广告管理方式. KeyMob移动广告聚合平台支持Android.IOS两大系统,包含:banner.视频.全屏.应用墙等广告形式.KeyMob移动广告聚合平台对各家广告

KeyMob移动广告聚合平台提供多种广告形式聚合

KeyMob移动广告聚合平台推出多样化的广告形式的聚合SDK,其中包含banner.视频广告.应用墙.全屏广告.支持android.IOS主流的开发系统,提供不同产品多种盈利广告形式,嵌入兼容的广告提升开发者的收入最大化. 目前,开发者的应用越来越丰富多样化,独特的广告样式已经不满足应用的需求,广告形式也逐渐多元化,如何把握好广告与应用的完美相结合,开发者可以选择搭配最适合自己应用的广告形式,并由此获得更高的广告收益. 横幅广告(banner),目前所有开发商主流实用广告形式,在游戏.应用上.下

KeyMob移动广告聚合平台-领先的广告聚合平台

广告聚合:KeyMob移动广告聚合平台认为,广告聚合是开发者在嵌入广告的移动应用中添加多家广告平台,用以丰富其应用展示的移动广告的内容与形式,提高广告的填充率,进而增加广告收入的一种手段. 但是现目前有很多的开发者反映一些广告平台的广告数目比较单一,不能满足他们应用的需求,所以希望能够同时嵌入多家广告平台,用以丰富的应用展示移动广告的内容与形式,提供广告的填充率,进而增加广告带来的收益,KeyMob聚合正是免费为广大应用开发者提供这种服务的一个平台. 开发者在自己的应用中嵌入KeyMob广告聚合

移动聚合广告平台KeyMob:推出广告聚合、应用交叉推广等功能

KeyMob聚合平台介绍 KeyMob提供Android和IOS平台应用程序盈利的整体解决方案:包括广告聚合,应用交叉推广,智能优化,报表分析. 1.广告聚合 KeyMob是为Android.IOS应用开发者免费提供的手机广告聚合平台,它可以帮你轻松植入多家广告平台的广告,通过设置各广告平台的展示比例,实现广告收益最大化. 据统计,国内市场上的手机广告平台的数量在已经迅速增加到近30家,广告费用也是参差不齐,开发者在选择时面临很多困扰:如何选择哪家手机广告平台?哪家广告的费用高?哪家填充率高?这

KeyMob-移动广告聚合平台,移动聚合广告的未来!

随着广告主和开发者对展示类媒体受众的注意力的追逐,移动广告包括程序化移动广告也随之在中国迅猛发展开来. KeyMob移动广告聚合平台的创始人表示,KeyMob是一家专业的移动广告聚合平台(Ad Exchange),专业为开发者提供稳定的广告SDK,其中包括banner.视频.积分墙等等广告形式.经过两年的努力,KeyMob作为国内专业的移动广告聚合平台,与多家国内外移动广告平台合作,为超过3万个IOS.Android应用提供日均百万多次的广告聚合与收入优化服务. KeyMob移动广告聚合平台上拥

搜索广告与广告网络Demand技术-搜索广告

搜索广告 搜索广告就是一个典型的Ad Network,但是搜索广告非常重要,它的收入非常高,所以它有其独特之处,复杂度也比展示广告要高.它与展示广告在点击率预测,检索部分差不多,它的特点:1. 用户定向标签f(u):远远弱于上下文影响,一般可以忽略,但是因为搜索广告中query的信息已经很强了,用query已经足够了.2. Sesion内的短时用户搜索行为作用很重要,3. 上下文定向标签f(c):关键词. 搜索广告是一种很典型的位置竞价模式,而展示广告一般只有一个位置,但偶尔也有多位置拍卖的时候