CPD轮播广告库的简单算法
在广告的领域中,有一种广告形式,采用的是CPD的售卖模式,为了对流量进行拆分,媒体方会对广告位进行轮播拆分。比如一个广告位,被拆成了10轮播,那么在广告主来预订广告位的时候,这个时候就可以告诉广告主,我这边有10个CPD的轮播可以售卖。然后广告主A买走了其中的一个轮播,接下来另外一个广告主过来,只剩下9个轮播了。
在上面的例子中,一个CPD的广告位被拆分成了10个轮播,那么这个时候广告位的库存数就是10,广告位的CPD库存,就是一个广告位可以售卖的轮播总数。
接下来我们来聊一聊,广告主在预订CPD广告位的时候库存的一种简单算法。
一、不考虑定向的CPD库存算法。
前面的博文中,我有提到广告位的定向的概念,我们在讨论CPD库存算法的时候,先不考虑定向的条件,来看看库存是怎么来计算的。
比如,媒体方,把一个广告位拆成了S轮播。这个时候有个广告主A跑过来说,我需要购买你广告位的一轮播,你这边有多少剩余的库存可以卖给我?然后你一看,没有任何预订,于是你告诉广告主A说,这边可以有S个库存卖给你,于是广告主买走了其中的一轮播。
接下来另外一个广告主B跑过来说,我想要购买这个广告位的一轮播,你这边有多少剩余库存可以卖?于是你一看,之前已经被广告主A买走了一轮播了,所以这个时候剩下了S-1轮播可以卖。
好了通过上面的例子我们可以知道,在不考虑定向的情况下,CPD的库存计算非常简单,即下面的公式
剩余库存 = CPD总轮播数-客户已经预订轮播数(公式1)
二、带有定向的CPD库存算法
接下来我们需要考虑另外一种情况,带有定向的CPD的库存算法。
关于带有定向的CPD的库存计算有很多种方法,在这里,我给大家介绍一种简单的计算方法。
剩余库存 = CPD总轮播数-预订冲突的轮播数(公式2)
什么是冲突的轮播数呢? 就是当前的预订和之前已有的预订有冲突的预订轮播数。
举一个简单的例子:
一个广告位 5月1号 有10轮播,已经有的预订如下:

这个时候有个广告主C过来说,我需要预订5月1号上海地区,问还剩下多少库存?
因为广告主C需要预订的也是上海地区,这和广告主A的预订上海有冲突,但是和广告主B预订北京没有冲突,预订的冲突轮播数为1
所以广告主预订上海地区看到的剩余库存数为9。
所以,有定向的库存计算,最主要的就是要想办法冲突的预定数。
要计算冲突的预定数,主要分为以下两步。
1、过滤掉和当前预定不冲突的预定数
2、每个维度在最细的粒度计算冲突的轮播
再举例说明多维度定向交叉的情况的例子,比如一个广告位支持地区定向和年龄定向。
地区定向的最小粒度为城市级别
年龄定向的最小粒度每20岁作为一个级别,一共包含(0~20,20~40,40~60,60~80)这四个级别
这个广告位一共被拆成了10个轮播,当前已经有的预定如下:

这时候广告主E过来,定向条件是 地区:杭州,年龄:20~60岁,问广告主E看到的剩余库存是多少呢?
下面简单的来分析一下:
广告主A的地区定向条件是上海,与杭州不冲突,所以广告主A的预定和当前广告主不冲突,可以过滤掉。
广告主D的地区定向条件是全国,年龄是所有年龄的人,所以广告主D的预定和当前广告主的预定有冲突,冲突数为1轮播。
我们来重点看一下广告主B、广告主C与当前广告主定向的冲突预定数的计算。
首先我们把B和C的定向条件拆到最细

再把当前客户的定向条件(杭州,20~40岁)拆成最细的粒度

E1 与B 和 C1冲突, 冲突的预定数为 N1 = 3+2=5;
E2 与 C2 冲突,冲突的预定数 N2 = 2
然后,求得当前广告主E的预定与B和C广告主预定的冲突数 = Max(N1,N2) = 5,再加上D的全国通投,总的预定冲突数 = 5 + 1 = 6
最后根据公式2求得 剩余的轮播数 = 10 -6 =4
所以,最终当前广告主E在 杭州,20-60岁这个定向条件下,看到的CPD的广告位库存为4。
以上的过程便完成了CPD轮播广告库存数的计算,当然以上的算法简单粗暴,但是在某些情况下计算出来的,并非最优解,后面有时间我会再给大家讲一种更好的CPD轮播广告库存算法。
CPD轮播广告库的简单算法的更多相关文章
- 最简单的轮播广告(原生JS)
改变每个图片的opacity属性:来自学友刘斌 素材图片: <!DOCTYPE html> <html lang="en"> <head> &l ...
- 利用RecyclerView实现无限轮播广告条
代码地址如下:http://www.demodashi.com/demo/14771.html 前言: 公司产品需要新增悬浮广告条的功能,要求是可以循环滚动,并且点击相应的浮条会跳转到相应的界面,在实 ...
- (Demo分享)利用原生JavaScript-ScrollLeft-实现做轮播广告通知
轮播广告通知整体思路: 1.首先文字的移动利用了JAVA script 中ScrollLeft的知识点: 2.在设置一条一模一样的新闻,利用无缝轮播图滚动的原理让新闻无缝滚动. 3.使用了自执行匿名函 ...
- [springboot 开发单体web shop] 6. 商品分类和轮播广告展示
商品分类&轮播广告 因最近又被困在了OSGI技术POC,更新进度有点慢,希望大家不要怪罪哦. 上节 我们实现了登录之后前端的展示,如: 接着,我们来实现左侧分类栏目的功能. ## 商品分类|P ...
- 开发单体web shop] 6. 商品分类和轮播广告展示
目录 商品分类&轮播广告 商品分类|ProductCategory 需求分析 开发梳理 编码实现 轮播广告|SlideAD 需求分析 开发梳理 编码实现 福利讲解 源码下载 下节预告 商品分类 ...
- FLASH轮播广告 在谷歌浏览器中不显示的解决办法(FLash轮播放广告在谷歌浏览器中无法显示处理方法)
在用PHPWEB模板的时候,碰到首页有一个FLASH轮播广告,在IE浏览器下可以正常显示播放,在谷歌浏览器中却显示不了,解决办法如下: 欢迎转载:http://blog.csdn.net/aminfo ...
- 基于bootstrap的轮播广告页,带图片和文字
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8& ...
- ViewPaper实现轮播广告条
使用V4包中的viewPaper组件自己定义轮播广告条效果. 实现viewpaper的滑动切换和定时自己主动切换效果. 上效果图 布局文件 <RelativeLayout xmlns:andro ...
- Android开发之ViewPager实现轮播图(轮播广告)效果的自定义View
最近开发中需要做一个类似京东首页那样的广告轮播效果,于是采用ViewPager自己自定义了一个轮播图效果的View. 主要原理就是利用定时任务器定时切换ViewPager的页面. 效果图如下: 主页面 ...
随机推荐
- Retrofit2+Rxjava+MVP实践
此博文根据前面两篇文章 Android MVP 架构初试 Android MVP 架构封装 再结合主流框架Retrofit2+Rxjava来个实践 源码地址RxMVP 项目截图 Retrofit2+R ...
- Solr打分出错
solr支持给某Field打分,在验证的过程的过程中出现错误:ERROR: [doc=likehua] cannot set an index-time boost, unindexed or nor ...
- 设置tableViewCell背景颜色
1 2 3 4 5 6 7 8 9 10 11 12 13 //方法一: cell.contentView.backgroundColor = [UIColor redColor]; //方法二: U ...
- 触发器五(建立INSTEAD OF触发器)(学习笔记)
INSTEAD OF触发器 对于简单视图,可以直接执行INSERT,UPDATE和DELETE操作但是对于复杂视图,不允许直接执行INSERT,UPDATE和DELETE操作.为了在具有以上情况的复杂 ...
- 解析 神奇的 Object.defineProperty
这个方法了不起啊..vue.js和avalon.js 都是通过它实现双向绑定的..而且Object.observe也被草案发起人撤回了..所以defineProperty更有必要了解一下了几行代码看他 ...
- ThinkCMF X2.2.2多处SQL注入漏洞分析
1. 漏洞描述 ThinkCMF是一款基于ThinkPHP+MySQL开发的中文内容管理框架,其中X系列基于ThinkPHP 3.2.3开发,最后更新到2.2.2版本.最近刚好在渗透测试 ...
- Navicat如何直接修改表中数据?
Navicat如何直接修改表中数据?
- 原创Oracle数据泵导出/导入(expdp/impdp)
//创建目录 create Or Replace directory dpdata1 as 'd:\test\dump'; //赋予读写权限 grant read,write on directory ...
- git查看各个branch之间的关系图
两种方法: 一. 使用Git log命令 git log --graph --decorate --oneline --simplify-by-decoration --all 说明: --deco ...
- DB2保存图片并读取动态显示图片
博文背景: 客户要求结构化图片信息,而不是文件文档话的管理,故要求将图片信息存储于DB2里,出于技术的角度,真不喜欢将文件存储于数据库, 但客户是上帝,木有办法,故有了如下的测试. 测试环境:DB2 ...