在广告的领域中,有一种广告形式,采用的是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. 套间线程(apartment thread)模型和自由线程(free thread)模型互相创建的情况

     

  2. Sticker.js生成图片或者页面元素“速干贴”效果

    ​在线演示 本地下载 真实的效果,真的非常好玩!

  3. C# Lambda表达式 基础

    什么是Lambda 表达式? "Lambda表达式"实际上是一个方法,只不过该方法是一个匿名方法(就是没有名字的方法(函数),就是说只有在定义的时候能调用,在其他地方就不能调用了) ...

  4. Android动态加入控件约束位置

    用LayoutParams: RelativeLayout insertLayout = (RelativeLayout)view1.findViewById(R.id.screen);//scree ...

  5. 使用socket BPF/Linux内核工程导论——网络:Filter(LSF、BPF、eBPF)

    使用socket BPF linux 下的 包过滤器 BPF Linux内核工程导论——网络:Filter(LSF.BPF.eBPF) 注意(文中描述的内容): 此外,这段BPF代码还存在的一个问题是 ...

  6. Windows安装MySQL解压版

    1:解压 2:设置环境变量 3:修改my.ini [mysqld] basedir = D:\MySQL\Server\mysql--win32 datadir = D:\MySQL\Server\d ...

  7. google kaptcha 验证码组件使用简介

    kaptcha 是一个非常实用的验证码生成工具.有了它,你可以生成各种样式的验证码,因为它是可配置的.kaptcha工作的原理是调用 com.google.code.kaptcha.servlet.K ...

  8. JMeter入门:Java Request实例 (转)

    转自:http://blog.csdn.net/czp11210/article/details/26174969 目的:对Java程序进行测试:   一.核心步骤   1.创建一个Java工程: 2 ...

  9. linux 2>&1的用法

    linux中有三种标准输入输出,分别是STDIN,STDOUT,STDERR,对应的数字是0,1,2.STDIN就是标准输入,默认从键盘读取信息:STDOUT是标准输出,默认将输出结果输出至终端,也就 ...

  10. 升级 asp.net core 1.1 到 2.0 preview

    Upgrading to .NET Core 2.0 Preview 1 更新 依赖的类库 改为 标准库 2 web app  更改 csproj 文件---升级版本 <PropertyGrou ...