专利名称:一种广告投放频次控制方法及装置的制作方法
技术领域:
本发明涉及互联网技术领域,尤其涉及一种广告投放频次控制方法及装置。
背景技术:
广告投放中的频次控制常常被叫做N+控制,即一个广告在指定的投放周期内,最多只能被一个用户观看N次。目前,常见的互联网广告系统基本都只能做很简单的N+控制。比如仅对某广告A在某个时间周期T内作N+控制,即控制每个用户在广告投放周期T内观看广告A的次数最多只能有N次。像这样的广告,通常称之为N+广告。要实现对N+广告的频次控制,需要利用用户浏览器cookie来记录用户观看的每个N+广告的次数,然后在投放时进行次数判断,当未达到投放上限时候,便可继续投放;若已经达到,则不能投放。而实际投放时,有可能出现这样情况,比如某客户有一个广告A,其投放周期为2011年10月I日到10月30日,要求做6+控制,广告A开始投放后,常常有些用户在第一天,或者第二天就看满6次广告A,而后面的20多天,则一次也没有看到广告A,像这种一个用户在很短的时期内过于密集的看到某一个广告的现象既影响了用户体验,又伤害了客户利益。鉴于此,广告主往往会进一步提出类似于这样的要求在保证N+控制的基础上,进一步要求这N次的广告在这一个月的投放周期内被均匀的投放出去,具体的限制如每个用户每天最多只能看广告A —次、每周最多只能看广告A三次、每十天内最多只能看广告A四次,这相当于在整个投放周期的总频次控制要求下,又分别划分出若干种小的投放周期,并对每个小的投放周期做出频次控制要求。而目前常见的广告系统是无法满足这种复杂的频次控制要求的。
发明内容
有鉴于此,本发明的主要目的在于提供一种广告投放频次控制方法及装置,用于解决现有广告投放技术无法实现复杂的多子周期频次控制要求,广告投放效率低,对浏览器cookie资源占用过多的技术问题。为达到上述目的,本发明的技术方案是这样实现的一种广告投放频次控制方法,该方法包括广告服务器接收到广告请求后,获取符合投放条件的频次控制广告即N+广告;若所述广告请求携带所述N+广告的历史浏览cookie,则将所述历史浏览cookie 反序列化为历史频次控制数据对象CampCookie,并依据当前时间对CampCookie中的各频次限制条件进行预处理;若所述广告请求未携带所述N+广告的历史浏览cookie,则为用户新建CampCookie,并依据基准频次控制数据对象CampInfo对所述CampCookie数据对象进行初始化;广告服务器基于所述CampInfo和CampCookie判断本次广告请求是否符合所述N+广告的频次控制条件,当符合时,更新CampCookie内的观看次数,将CampCookie序列化为历史浏览cookie后反馈给用户,并向用户投放所述N+广告。进一步地,所述CampCookie用于以结构化的方式描述用户对所述N+广告的浏览历史,其中至少包含已观看总次数showTotalTimes和一个或多个子周期记录结构,子周期记录结构至少包含频次控制子周期字段period、子周期内已观看次数字段showTimes、子周期截止时间字段expireTime。进一步地,所述CampInfo用于描述广告商的广告频次控制要求,广告服务器会为每一个要求作N+控制的广告建立一个唯一的Camplnfo, CampInfo至少包含对象标识campID、总次数限制值numLimit、一个或多个子周期控制结构及投放截止日期endDate,子周期控制结构至少包含子周期字段period、子周期限制值times。进一步地,所述依据当前时间对CampCookie中的各频次限制条件进行预处理具体为将当前时间与CampCookie中各子周期截止时间相比较,如果当前时间已超过对 应子周期截止时间,则将对应的子周期已观看次数showTimes置O并根据当前时间重新设置对应子周期的截止时间expireTime。进一步地,所述依据Camplnfo对所述CampCookie数据对象进行初始化的步骤具体为将showTotalTimes 置 O ;根据CampInfo 中的子周期 Camplnfo. period I Camplnfo. periodn 设置CampCookie 中的子周期 CampCookie. period I CampCookie. periodn,其中 η 为频次控制子周期的个数;将CampCookie. showTimes I CampCookie. showTimesn 置为 O ;以当前日期为基准,计算各子周期对应的结束时间,并将计算值赋给CampCookie.expireTime I CampCookie. expireTimen。进一步地,所述基于Camplnfo和CampCookie判断本次广告请求是否符合所述N+广告的频次控制条件的方法具体为判断所述N+广告对应的CampCookie中用户已观看总次数showTotalTimes是否大于等于所述N+广告对应的Camplnfo中的numLimit,若是则拒绝向用户再次投放所述N+广告,否则依次判断每个频次控制子周期内,用户已观看次数showTimes是否大于等于Camplnfo中设定的对应子周期内允许用户观看次数的上限值times,只有在所有的子周期内用户已观看次数showTimes都小于Camplnfo中对应子周期内允许用户观看次数的上限值times时,才允许向用户投放所述N+广告,否则拒绝向用户再次投放所述N+广告。本发明还提供一种广告投放频次控制装置,该装置包括获取模块,用于在接收到广告请求后,获取符合投放条件的频次控制广告即N+广
生P=I ;第一判断模块,用于判断所述广告请求是否携带所述N+广告的历史浏览cookie ;序列化处理模块,用于将历史浏览cookie反序列化为历史频次控制数据对象CampCookie ;以及将CampCookie序列化为历史浏览cookie ;预处理模块,用于在所述广告请求携带所述N+广告的历史浏览cookie的情况下,依据当前时间对CampCookie中的各频次限制条件进行预处理;
初始化模块,用于在所述广告请求未携带所述N+广告的历史浏览cookie的情况下,为用户新建CampCookie,并依据基准频次控制数据对象Camplnfo对所述CampCookie数据对象进行初始化;第二判断模块,用于基于所述Camplnfo和CampCookie判断本次广告请求是否符合所述N+广告的频次控制条件;投放模块,用于在本次广告请求符合所述N+广告的频次控制条件时,更新所述N+广告的CampCookie,向用户反馈CampCookie序列化后所得的历史浏 览cookie,并向用户投放所述N+广告。进一步地,所述CampCookie用于以结构化的方式描述用户对所述N+广告的浏览历史,其中至少包含已观看总次数showTotalTimes和一个或多个子周期记录结构,子周期记录结构至少包含频次控制子周期字段period、子周期内已观看次数字段showTimes、子周期截止时间字段expireTime ;所述Camplnfo用于描述广告商的广告频次控制要求,广告服务器会为每一个要求作N+控制的广告建立一个唯一的Camplnfo, Camplnfo至少包含对象标识campID、总次数限制值numLimit、一个或多个子周期控制结构及投放截止日期endDate,子周期控制结构至少包含子周期字段period、子周期限制值times。进一步地,所述预处理模块包括截止时间判断模块,用于将当前时间与CampCookie中各子周期截止时间相比较,判断当前时间已超过对应子周期截止时间;预处理子模块,用于在当前时间已超过对应子周期截止时间的情况下,将对应的子周期已观看次数showTimes置O并根据当前时间重新设置对应子周期的截止时间expireTime。进一步地,所述第二判断模块包括总次数校验模块,用于判断所述N+广告对应的CampCookie中用户已观看总次数showTotalTimes是否大于等于所述N+广告对应的Camplnfo中的numLimit,若是则拒绝向用户再次投放所述N+广告,否则指示子周期频次校验模块执行;子周期频次校验模块,用于依次判断每个频次控制子周期内,用户已观看次数showTimes是否大于等于Camplnfo中设定的对应子周期内允许用户观看次数的上限值times,在所有的子周期内用户已观看次数showTimes都小于Camplnfo中对应子周期内允许用户观看次数的上限值times时,向用户投放所述N+广告,否则拒绝向用户再次投放所述N+广告。本发明通过CampCookie数据结构和Camplnfo数据结构的比较实现了对N+广告的多个子周期频次控制的要求,从而使得广告能够在整个周期内间隔均匀地投放给用户,充分满足了广告商需求和保证了广告商的利益,同时提升了用户体验。本发明还利用数据对象的序列化和反序列化技术,提高了广告服务器对用户浏览历史数据的处理效率以及进行多个子周期频次控制条件匹配的效率,且节约了有限的浏览器cookie资源。
图I为本发明实施例提供的一种广告投放频次控制方法流程图2为本发明实施例提供的CampCookie数据对象结构;图3为本发明实施例提供的Camplnfo数据对象结构;图4为本发明实施例提供的根据N+广告的Camplnfo和CampCookie进行投放校验的流程图;图5为本发明实施例还提供一种广告投放频次控制装置。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进一步详细说明。图I为本发明提供的一种广告投放频次控制方法流程图,具体步骤如下 步骤101、用户浏览器向广告服务器发送广告请求,所述广告请求中包含请求参数。所述请求参数包含但不限于用户观看的视频id、视频所属的一级分类、二级分类、用户IP、关键字等。若所述广告为视频广告,则所述广告请求由浏览器中嵌入的视频播放器来发送。步骤102、判断是否有广告库存,如果有则执行步骤103,否则结束流程;步骤103、根据请求参数取得一个符合投放条件的广告;步骤104、判断所取得的广告是否为需要进行频次控制的N+广告,如果是则执行步骤105,否则执行步骤112 ;步骤105、判断所述广告请求是否携带所取得的N+广告的浏览历史cookie,若是则执行步骤106,否则执行步骤108 ;在浏览器保存有N+广告浏览历史cookie的情况下,所述广告请求还会携带N+广告浏览历史cookie,通过广告浏览历史cookie使广告服务器能够获知用户观看过N+广告的历史情况。步骤106、将广告请求携带的N+广告的广告浏览历史cookie反序列化为历史频次控制数据对象CampCookie ;本发明定义的历史频次控制数据对象CampCookie,该数据对象用于以结构化的方式描述用户对N+广告的浏览历史,在广告服务器更新CampCookie后会将其序列化后反馈给用户浏览器,用户浏览器将其保存为广告浏览历史cookie,在用户再次发送广告请求时,用户浏览器将广告浏览历史cookie再次发送给广告服务器,广告服务器再次将广告浏览历史cookie反序列化为CampCookie,通过CampCookie广告服务器可方便的获知用户之前的广告浏览历史,并通过CampCookie实现对N+广告的广告频次控制。序列化(Serialize)和反序列化(Deserialize)是运行时环境用来支持用户定义类型的流化的机制。序列化的目的是以某种存储形式使自定义对象持久化,反序列化是序列化的逆过程,通过二者的结合可实现对象的跨网络传输,从而使程序更具维护性。CampCookie数据对象结构如附图2所示,用户观看每个N+广告的历史信息都可以用CampCookie数据结构来描述,其中至少包含如下组成元素已观看总次数showTotalTimes :用于记录N+广告被用户观看的总次数;频次控制子周期periodi (i = I, 2,. . . η):用于记录在N+广告频次控制大周期中的第i个子周期值,优选地以天为单位;子周期i内已观看次数showTimesi (i = I, 2, · · · ,η):用于记录在子周期periodi内,某用户观看当前广告的次数;子周期i截止时间expireTimei (i = 1,2,... ,η):用于记录子周期periodi的截止时间。步骤107、依据当前时间对CampCookie中的子周期观看次数和截止时间进行预处理,然后执行步骤109;该步骤将当前时间与CampCookie中各子周期截止时间相比较,如果当前时间已超过子周期截止时间,则对子周期已观看次数showTimesi和子周期截止时间expireTimei重新进行初始化,即将showTimesi置0,根据当前时间重新设置对应子周期的截止时间expireTimei ο
步骤108、广告服务器为用户创建所述N+广告的CampCookie数据对象,并进行初始化,然后执行步骤109;如果广告请求不包含所述N+广告的广告浏览历史cookie,则说明用户之前未曾观看该N+广告,系统会自动为用户创建一个CampCookie并对其进行初始化。对CampCookie的初始化需要依据广告服务器为N+广告创建的基准频次控制数据对象Camplnfo中的信息,Camplnfo数据对象用于描述广告商的广告频次控制要求,广告服务器会为每一个要求作N+控制的广告建立一个唯一的Camplnfo来描述其具体的N+控制要求。Camplnfo的结构如附图3所示,其中至少包含如下组成元素对象标识campld Camplnfo对象的唯一标识,每个广告实体中包含一个campld属性,用于关联对应的Camplnfo ;总次数限制值numLimit :广告在以N+控制的方式进行投放的整个周期内,一个用户总共能够看到该广告的最多次数;子周期periodi :在整个投放周期之下的子投放周期,以天为单位;子周期限制值timesi (i = 1,2, ···, η):广告在子周期periodi内最多能被一个用户观看的次数,具体实现时,每个periodi和timesi可以key-value对的形式存放在HashMap<Integer, Integer〉结构中; 截止日期endDate :广告的N+控制投放的截止日期,超过该日期后,广告可不必再遵守N+控制要求。依据Camplnfo对CampCookie进行初始化的过程为(I)将 showTotalTimes 置 O ;(2)根据 Camplnfo 中的子周期 Camplnfo. period I Camplnfo. periodn 设置CampCookie 中的子周期 CampCookie. period I CampCookie. periodn ;(3)将 CampCookie. showTimes I CampCookie. showTimesn 置为 O ;(4)以当前日期为基准,计算各子周期对应的结束时间,并将计算值赋给CampCookie. expireTime I CampCookie. expireTimen,例如,当日为 12 月 I 日,子周期period I 为 5 日,则对应的 CampCookie. expireTime I 为 12 月 6 日 00 点 00 分 00 秒。在系统运行期间,Camplnfo数据对象将被加载于广告服务器的缓存中,以提高响应速度。步骤109、根据所述N+广告的Camplnfo数据对象和CampCookie数据对象来判断用户是否可以观看这个广告,若判断结果为是,则执行步骤110,否则执行步骤102 ;步骤110、更新CampCookie,将CampCookie中已观看总次数及各子周期观看次数均加1,;步骤111、将更新后的CampCookie序列化后反馈给用户浏览器存储为用户广告浏览历史cookie ;步骤112、向用户投放广告。图4为广告服务器根据N+广告的Camplnfo和CampCookie判断是否向用户投放所述N+广告的流程,具体步骤如下步骤401、根据campld获取对应的Camplnfo数据对象;步骤402、判断CampCookie中用户已观看总次数showTotalTimes是否大于等于Camplnfo中的numLimit,若大于等于则说明在广告的总投放周期内用户的观看次数已经超过或达到了广告商要求的总观看次数的上限值,因此拒绝向该用户再次投放该N+广告,因此返回false ;若小于则执行步骤403 ;步骤403、为循环控制参数i赋初值O ;步骤404、判断CampCookie的子周期i内用户已观看次数showTimesi是否小于Camplnfo中设定的子周期i内允许用户观看次数的上限值timesi,若小于则说明该用户满足子周期i的频次控制要求,可继续进行下一子周期的判断,执行步骤405 ;若大于等于则说明该用户已不满足子周期i的频次控制要求,因此拒绝向该用户再次投放该N+广告,返回 false ;
步骤405、循环控制参数i做自增操作,即i = i+Ι ;步骤406、判断是否已处理完所有子周期的频次控制判断,若是则说明该用户满足所有子周期的频次控制条件,可以向该用户投放该N+广告,返回true ;若否,则执行步骤404。图5为本发明实施例还提供一种广告投放频次控制装置,该装置500包括获取模块510,用于在接收到广告请求后,获取符合投放条件的频次控制广告即N+广告;第一判断模块520,用于判断所述广告请求是否携带所述N+广告的历史浏览cookie ;序列化处理模块530,用于将历史浏览cookie反序列化为历史频次控制数据对象CampCookie ;以及将CampCookie序列化为历史浏览cookie ;预处理模块540,用于在所述广告请求携带所述N+广告的历史浏览cookie的情况下,依据当前时间对CampCookie中的各频次限制条件进行预处理;初始化模块550,用于在所述广告请求未携带所述N+广告的历史浏览cookie的情况下,为用户新建CampCookie,并依据基准频次控制数据对象Camplnfo对所述CampCookie数据对象进行初始化;第二判断模块560,用于基于所述Camplnfo和CampCookie判断本次广告请求是否符合所述N+广告的频次控制条件;
投放模块570,用于在本次广告请求符合所述N+广告的频次控制条件时,更新所述N+广告的CampCookie,向用户反馈CampCookie序列化后所得的历史浏览cookie,并向用户投放所述N+广告。优选地,所述CampCookie用于以结构化的方式描述用户对所述N+广告的浏览历史,其中至少包含已观看总次数showTotalTimes和一个或多个子周期记录结构,子周期记录结构至少包含频次控制子周期字段period、子周期内已观看次数字段showTimes、子周期截止时间字段expireTime ;优选地,所述Camplnfo用于描述广告商的广告频次控制要求,广告服务器会为每一个要求作N+控制的广告建立一个唯一的Camplnfo, Camplnfo至少包含对象标识campID、总次数限制值numLimit、一个或多个子周期控制结构及投放截止日期endDate,子周期控制结构至少包含子周期字段period、子周期限制值times。优选地,所述预处理模块540包括
截止时间判断模块541,用于将当前时间与CampCookie中各子周期截止时间相比较,判断当前时间已超过对应子周期截止时间;预处理子模块542,用于在当前时间已超过对应子周期截止时间的情况下,将对应的子周期已观看次数showTimes置O并根据当前时间重新设置对应子周期的截止时间expireTime。优选地,所述第二判断模块560包括总次数校验模块561,用于判断所述N+广告对应的CampCookie中用户已观看总次数showTotalTimes是否大于等于所述N+广告对应的Camplnfo中的numLimit,若是则拒绝向用户再次投放所述N+广告,否则指示子周期频次校验模块562执行;子周期频次校验模块562,用于依次判断每个频次控制子周期内,用户已观看次数showTimes是否大于等于Camplnfo中设定的对应子周期内允许用户观看次数的上限值times,在所有的子周期内用户已观看次数showTimes都小于Camplnfo中对应子周期内允许用户观看次数的上限值times时,向用户投放所述N+广告,否则拒绝向用户再次投放所述N+广告。本发明所提出的广告投放频次控制方法及装置不仅对整个投放周期的用户观看次数进行了限制,还能够在投放周期内划分多个大小不一的子周期,对每个子周期的用户观看频次作更详细的限制,从而使得广告能够在整个周期内间隔均匀地投放给用户,满足广告商提出的多个限制条件的频次控制要求,比起传统的N+频次控制方法来说,既有更好的用户体验,又更大程度地保证了广告商的利益。本发明通过定义CampCookie数据结构来对用户的广告浏览历史信息进行结构化描述,并利用数据对象的序列化和反序列化技术,提高了广告服务器对用户浏览历史数据的处理效率以及进行多个子周期频次控制条件匹配的效率,而且仅使用一个cookie便完成了复杂的用户信息的存储和访问,节约了有限的浏览器cookie资源(目前主流浏览器在一个域名下能保存的cookie数量基本都仅有50个左右)。实例I某广告商需要投放广告Al,要求广告投放周期是2011-09-25 2011_10_25,要求在整个投放周期内每个用户最多只能看到该广告6次,并且要求每个用户每天最多只能看到该广告2次,每10天最多只能看到4次。下面是具体实施步骤(I)首先在广告系统的广告数据库相关表中创建该广告Al的记录,并设置该广告对应的各项属性,以及N+限制信息。(2)实际投放时,所有当前待投的N+广告的频次限制信息都会被从数据库中提取出来,并分别为它们创建一个Camplnfo实例。如广告Al对应的Camplnfo信息结构如下表I 表I
处 2 55numLimit: 6 次
|-0112]periodi: I 天timesi: 2 次 period2: 10 天times2: 4 次
endDate: 2011-10-25 23:59:59(3)当广告系统找到可匹配当前请求的广告Al,发现Al是N+广告,然后会提取用户浏览器端传来的广告Al相关的cookie信息,如果找到则将其还原为一个CampCookie对象,如果未找到,则新初始化一个CampCookie对象。例如,广告系统接收到某次广告请求时所得到的浏览器cookie的值为“4_1:1:1317484800000_10:2:1317830400000”,将其还原为某个CampCookie对象后,其结构如下表2所示表2
showTotalTimes: 4 次periodi: I 天showTimesi: I 次I /4 818 00000 period2: 10 天 showTimes2: 2 次 ■ 830400000表2的含义为广告Al已经被某个用户总共观看了 4次,其中,当天已经观看I次,最近10天之内已经观看2次,其中长整数1317484800000、1317830400000分别为I天和10天这两个子周期的截止时间点2011-10-0200:00:00和2011-10-06 00:00:00,根据前者可推断出当天是2011-10-01日,根据后者可推断出从5天前的2011-09-26日到2011-10-01当天,用户总共看了这个广告2次,并将于5天后的2011-10-06日零点结束该子周期,该子周期内浏览次数会被清零,然后重新开始下一个10天的频次统计。根据图4的校验流程,可以发现该用户总观看次数4次小于允许观看的最大次数6次,当天观看次数I次小于I天内允许观看的次数上限2次,10天内观看次数2次也小于10天内最多允许观看的次数4次,所以本次广告请求校验结果是TRUE,即广告Al可以投给该用户。当该用户过几分钟后,再次向广告系统请求广告,且广告系统再次命中广告Al时,发现此时取得的CampCookie已经变成如下表3所示表权利要求
1.一种广告投放频次控制方法,其特征在于,该方法包括 广告服务器接收到广告请求后,获取符合投放条件的频次控制广告即N+广告; 若所述广告请求携带所述N+广告的历史浏览cookie,则将所述历史浏览cookie反序列化为历史频次控制数据对象CampCookie,并依据当前时间对CampCookie中的各频次限制条件进行预处理; 若所述广告请求未携带所述N+广告的历史浏览cookie,则为用户新建CampCookie,并依据基准频次控制数据对象CampInfo对所述CampCookie数据对象进行初始化; 广告服务器基于所述CampInfo和CampCookie判断本次广告请求是否符合所述N+广告的频次控制条件,当符合时,更新CampCookie内的观看次数,将CampCookie序列化为历史浏览cookie后反馈给用户,并向用户投放所述N+广告。
2.根据权利要求I所述的方法,其特征在于,所述CampCookie用于以结构化的方式描述用户对所述N+广告的浏览历史,其中至少包含已观看总次数showTotalTimes和一个或多个子周期记录结构,子周期记录结构至少包含频次控制子周期字段period、子周期内已观看次数字段showTimes、子周期截止时间字段expireTime。
3.根据权利要求2所述的方法,其特征在于,所述CampInfo用于描述广告商的广告频次控制要求,广告服务器会为每一个要求作N+控制的广告建立一个唯一的Camplnfo,CampInfo至少包含对象标识campID、总次数限制值numLimit、一个或多个子周期控制结构及投放截止日期endDate,子周期控制结构至少包含子周期字段period、子周期限制值times。
4.根据权利要求2所述的方法,其特征在于,所述依据当前时间对CampCookie中的各频次限制条件进行预处理具体为 将当前时间与CampCookie中各子周期截止时间相比较,如果当前时间已超过对应子周期截止时间,则将对应的子周期已观看次数showTimes置0并根据当前时间重新设置对应子周期的截止时间expireTime。
5.根据权利要求2所述的方法,其特征在于,所述依据Camplnfo对所述CampCookie数据对象进行初始化的步骤具体为将 showTotalTimes 置 0 ; 根据 Camplnfo 中的子周期 Camplnfo. period I Camplnfo. periodn 设置 CampCookie中的子周期CampCookie. period I CampCookie. periodn,其中n为频次控制子周期的个数;将 CampCookie. showTimes I CampCookie. showTimesn 置为 0 ; 以当前日期为基准,计算各子周期对应的结束时间,并将计算值赋给CampCookie.expireTime I CampCookie. expireTimen。
6.根据权利要求3所述的方法,其特征在于,所述基于Camplnfo和CampCookie判断本次广告请求是否符合所述N+广告的频次控制条件的方法具体为 判断所述N+广告对应的CampCookie中用户已观看总次数showTotalTimes是否大于等于所述N+广告对应的Camplnfo中的numLimit,若是则拒绝向用户再次投放所述N+广告,否则依次判断每个频次控制子周期内,用户已观看次数showTimes是否大于等于Camplnfo中设定的对应子周期内允许用户观看次数的上限值times,只有在所有的子周期内用户已观看次数showTimes都小于Camplnfo中对应子周期内允许用户观看次数的上限值times时,才允许向用户投放所述N+广告,否则拒绝向用户再次投放所述N+广告。
7.一种广告投放频次控制装置,其特征在于,该装置包括 获取模块,用于在接收到广告请求后,获取符合投放条件的频次控制广告即N+广告; 第一判断模块,用于判断所述广告请求是否携带所述N+广告的历史浏览cookie ; 序列化处理模块,用于将历史浏览cookie反序列化为历史频次控制数据对象CampCookie ;以及将CampCookie序列化为历史浏览cookie ; 预处理模块,用于在所述广告请求携带所述N+广告的历史浏览cookie的情况下,依据当前时间对CampCookie中的各频次限制条件进行预处理; 初始化模块,用于在所述广告请求未携带所述N+广告的历史浏览cookie的情况下,为用户新建CampCookie,并依据基准频次控制数据对象Camplnfo对所述CampCookie数据对象进行初始化; 第二判断模块,用于基于所述Camplnfo和CampCookie判断本次广告请求是否符合所述N+广告的频次控制条件; 投放模块,用于在本次广告请求符合所述N+广告的频次控制条件时,更新所述N+广告的CampCookie,向用户反馈CampCookie序列化后所得的历史浏览cookie,并向用户投放所述N+广告。
8.根据权利要求7所述的装置,其特征在于, 所述CampCookie用于以结构化的方式描述用户对所述N+广告的浏览历史,其中至少包含已观看总次数showTotalTimes和一个或多个子周期记录结构,子周期记录结构至少包含频次控制子周期字段period、子周期内已观看次数字段showTimes、子周期截止时间字段 expireTime ; 所述Camplnfo用于描述广告商的广告频次控制要求,广告服务器会为每一个要求作N+控制的广告建立一个唯一的Camplnfo, Camplnfo至少包含对象标识campID、总次数限制值numLimit、一个或多个子周期控制结构及投放截止日期endDate,子周期控制结构至少包含子周期字段period、子周期限制值times。
9.根据权利要求8所述的装置,其特征在于,所述预处理模块包括 截止时间判断模块,用于将当前时间与CampCookie中各子周期截止时间相比较,判断当前时间已超过对应子周期截止时间; 预处理子模块,用于在当前时间已超过对应子周期截止时间的情况下,将对应的子周期已观看次数showTimes置0并根据当前时间重新设置对应子周期的截止时间expireTime。
10.根据权利要求8所述的装置,其特征在于,所述第二判断模块包括 总次数校验模块,用于判断所述N+广告对应的CampCookie中用户已观看总次数showTotalTimes是否大于等于所述N+广告对应的Camplnfo中的numLimit,若是则拒绝向用户再次投放所述N+广告,否则指示子周期频次校验模块执行; 子周期频次校验模块,用于依次判断每个频次控制子周期内,用户已观看次数showTimes是否大于等于Camplnfo中设定的对应子周期内允许用户观看次数的上限值times,在所有的子周期内用户已观看次数showTimes都小于Camplnfo中对应子周期内允许用户观看次数的上限值times时, 向用户投放所述N+广告,否则拒绝向用户再次投放所述N+广告。
全文摘要
本发明公开了一种广告投放频次控制方法及装置,用于解决现有广告投放技术无法实现复杂的多子周期频次控制要求,广告投放效率低,对浏览器cookie资源占用过多的技术问题。本发明通过CampCookie数据结构和CampInfo数据结构的比较实现了对N+广告的多个子周期频次控制的要求,从而使得广告能够在整个周期内间隔均匀地投放给用户,充分满足了广告商需求和保证了广告商的利益,同时提升了用户体验。本发明还利用数据对象的序列化和反序列化技术,提高了广告服务器对用户浏览历史数据的处理效率以及进行多个子周期频次控制条件匹配的效率,且节约了有限的浏览器cookie资源。
文档编号G06Q30/02GK102708495SQ201210006190
公开日2012年10月3日 申请日期2012年1月6日 优先权日2012年1月6日
发明者卢述奇, 姚键, 孙欣, 尹玉宗, 张云锋, 张缓迅, 潘柏宇, 蒲仕超 申请人:合一网络技术(北京)有限公司