在广告的领域中,有一种广告形式,采用的是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轮播广告库的简单算法的更多相关文章

  1. 最简单的轮播广告(原生JS)

    改变每个图片的opacity属性:来自学友刘斌 素材图片: <!DOCTYPE html> <html lang="en"> <head> &l ...

  2. 利用RecyclerView实现无限轮播广告条

    代码地址如下:http://www.demodashi.com/demo/14771.html 前言: 公司产品需要新增悬浮广告条的功能,要求是可以循环滚动,并且点击相应的浮条会跳转到相应的界面,在实 ...

  3. (Demo分享)利用原生JavaScript-ScrollLeft-实现做轮播广告通知

    轮播广告通知整体思路: 1.首先文字的移动利用了JAVA script 中ScrollLeft的知识点: 2.在设置一条一模一样的新闻,利用无缝轮播图滚动的原理让新闻无缝滚动. 3.使用了自执行匿名函 ...

  4. [springboot 开发单体web shop] 6. 商品分类和轮播广告展示

    商品分类&轮播广告 因最近又被困在了OSGI技术POC,更新进度有点慢,希望大家不要怪罪哦. 上节 我们实现了登录之后前端的展示,如: 接着,我们来实现左侧分类栏目的功能. ## 商品分类|P ...

  5. 开发单体web shop] 6. 商品分类和轮播广告展示

    目录 商品分类&轮播广告 商品分类|ProductCategory 需求分析 开发梳理 编码实现 轮播广告|SlideAD 需求分析 开发梳理 编码实现 福利讲解 源码下载 下节预告 商品分类 ...

  6. FLASH轮播广告 在谷歌浏览器中不显示的解决办法(FLash轮播放广告在谷歌浏览器中无法显示处理方法)

    在用PHPWEB模板的时候,碰到首页有一个FLASH轮播广告,在IE浏览器下可以正常显示播放,在谷歌浏览器中却显示不了,解决办法如下: 欢迎转载:http://blog.csdn.net/aminfo ...

  7. 基于bootstrap的轮播广告页,带图片和文字

    <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8& ...

  8. ViewPaper实现轮播广告条

    使用V4包中的viewPaper组件自己定义轮播广告条效果. 实现viewpaper的滑动切换和定时自己主动切换效果. 上效果图 布局文件 <RelativeLayout xmlns:andro ...

  9. Android开发之ViewPager实现轮播图(轮播广告)效果的自定义View

    最近开发中需要做一个类似京东首页那样的广告轮播效果,于是采用ViewPager自己自定义了一个轮播图效果的View. 主要原理就是利用定时任务器定时切换ViewPager的页面. 效果图如下: 主页面 ...

随机推荐

  1. iOS中ActionSheet和Alert的区别

    首先,样子长得就不一样 看下图:

  2. Mockito: InvalidUseOfMatchersException

    异常报错信息: org.mockito.exceptions.misusing.InvalidUseOfMatchersException: Invalid use of argument match ...

  3. mv命令(转)

    原文:http://www.cnblogs.com/peida/archive/2012/10/27/2743022.html mv命令是move的缩写,可以用来移动文件或者将文件改名(move (r ...

  4. ls命令(转)

    原文:http://www.cnblogs.com/peida/archive/2012/10/23/2734829.html ls命令是linux下最常用的命令.ls命令就是list的缩写缺省下l ...

  5. POJ - 1325 Machine Schedule 二分图 最小点覆盖

    题目大意:有两个机器,A机器有n种工作模式,B机器有m种工作模式,刚開始两个机器都是0模式.假设要切换模式的话,机器就必须的重新启动 有k个任务,每一个任务都能够交给A机器的i模式或者B机器的j模式完 ...

  6. Java 类型, Hibernate 映射类型及 SQL 类型之间的相应关系

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...

  7. (三)Linux Shell编程——Shell常用命令(输出、判断、循环、函数、包含)

    3. 常用命令 3.1 输出 3.1.1 echo命令 echo是Shell的一个内部指令,用于在屏幕上打印出指定的字符串.命令格式: echo arg name="coding" ...

  8. Web Service——CXF发布REST服务

    1. 什么是REST REST,英文representational state transfer(表象性状态转变)或者表述性状态转移,REST是web服务的一种架构风格,使用HTTP.URI.XML ...

  9. mysql中字符集和排序规则说明

    数据库需要适应各种语言和字符就需要支持不同的字符集(Character Set),每种字符集也有各自的排序规则(Collation). 一.字符集 字符集,即用于定义字符在数据库中的编码的集合. 常见 ...

  10. HDUOJ----最少拦截系统

    最少拦截系统 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submis ...