一种广告投放方法及系统的制作方法

文档序号:6362925阅读:200来源:国知局
专利名称:一种广告投放方法及系统的制作方法
技术领域
本发明涉及互联网技术领域,尤其涉及一种互联网广告投放方法及系统。
背景技术
大型互联网的广告投放面临着如下几个主要问题一是广告并发请求量大,往往平均每秒钟都要对数万甚至十万次广告请求作出响应。二是广告的定投方式(即指定广告在某种条件下投放)繁多,常见的定向投放方式有视频组定投(指定的广告只能投到某一组指定的视频中)、人群定投(指定的广告只能投到某一类人群中)、地区定投、关键字定投,还可以进行多定投方式组合投放,如地区+视频组定投、地区+分类+关键字定投等 ’另夕卜,以客户对投放次数的限制来看,还有N+投放(即限制每个用户在指定的时间段内能观看的广告次数)方式和普通的非N+投放方式。此外,还可能需要根据客户的重要性将客户划分为若干个等级,高等级客户的广告应该保证优先于低等级客户的广告投放。 常见的广告系统,其投放定向条件往往比较简单,如仅仅按关键字或网页分类(频道)等很少的几个定向条件来进行投放,只需要设计若干个简单的哈希表、列表或数组等数据结构来缓存广告数据,便能够满足广告投放的要求;然而当广告定向投放的条件非常多、广告之间又有各种投放优先级的要求时,如果仍然使用简单的数据结构来缓存数据,往往会在广告匹配的时候作过多的冗余查找,浪费服务器资源,广告投放效率将会受到极大的影响,此外,如果广告投放系统的系统结构设计不合理,广告投放效率会随着广告数据量的增大而成倍降低,广告的响应时间也会不断地增大,从而导致用户等待时间过长,影响用户感受。

发明内容
有鉴于此,本发明的主要目的在于提供一种广告数据的缓存方法及系统,用于改进现有广告系统结构,提高广告投放效率,减小用户等待时间。为达到上述目的,本发明的技术方案是这样实现的—种广告投放方法,其特征在于,该方法包括从广告数据库服务器中获取广告数据,将获取的广告数据缓存在后台管理服务器中;前端广告投放服务器从后台管理服务器的缓存中读取广告数据并在本地缓存;所述后台服务器和前端投放服务器以投放条件树的树形数据结构来缓存所述广告数据,投放条件树的每一级对应一级广告投放条件的优先级,每个分支对应一种投放条件,最底层叶子节点为符合上层节点所指示投放条件的广告素材标识的集合;当前端投放服务器接收到广告请求后,根据广告请求参数在所述投放条件树中匹配满足投放条件的广告,并返回广告代码给请求方。进一步地,所述匹配满足投放条件的广告,并返回广告代码给请求方的方法具体为依据广告请求携带的参数确定各个优先级对应的投放条件;
以深度遍历算法在所述投放条件树中匹配所确定的各个优先级对应的投放条件,在遇到叶子节点时,从叶子节点所包含的广告素材标识的集合中获取符合投放条件的广告素材标识;根据所获取的广告素材标识获取具体的广告素材详细参数,将广告素材详细参数与广告请求中的相关参数一起组织成广告代码,将广告代码返回给请求方。进一步地,所述后台服务器构造投放条件树的方法具体为使用哈希图HashMap来构造所述投放条件树中除叶子节点之外的每一级节点,通过HashMap键值对中的key来反映不同的投放条件,通过HashMap键值对中的value来链接下一级HashMap,每一级HashMap对应一级广告投放条件优先级;最后一级HashMap键值对中的value以列表数据类型装载符合相同投放条件的所有广告素材标识。 本发明还提供一种广告投放系统,所述系统包括广告数据库服务器,用于存储与广告投放相关的广告数据;后台服务器,用于从广告数据库服务器中获取广告数据,将获取的广告数据缓存在本地缓存中;前端投放服务器,用于从后台管理服务器的缓存中读取缓存的广告数据并在本地缓存中进行缓存;接收广告请求,根据广告请求参数在本地缓存的广告数据中匹配满足投放条件的广告,并返回广告代码给请求方;
所述后台服务器和前端投放服务器以投放条件树的树形数据结构来缓存所述广告数据,投放条件树的每一级对应一级广告投放条件的优先级,每个分支对应一种投放条件,最底层叶子节点为符合上层节点所指示投放条件的广告素材标识的集合;所述前端投放服务器基于所述投放条件树进行广告匹配。进一步地,所述前端投放服务器包括缓存模块,用于从后台管理服务器的缓存中读取缓存的广告数据并在本地缓存中进行缓存;匹配模块,用于依据广告请求携带的参数确定各个优先级对应的投放条件,以深度遍历算法在所述投放条件树中匹配所确定的各个优先级对应的投放条件,在遇到叶子节点时,从叶子节点所包含的广告素材标识的集合中获取符合投放条件的广告素材标识;反馈模块,用于根据所获取的广告素材标识获取具体的广告素材详细参数,将广告素材详细参数与广告请求中的相关参数一起组织成广告代码,将广告代码返回给请求方。进一步地,所述广告数据库服务器使用分布式网络缓存工具将获取的广告数据缓存在后台管理服务器中;所述前端广告投放服务器使用分布式网络缓存工具从后台管理服务器的缓存中读取广告数据并在本地缓存。进一步地,所述系统还包括负载均衡服务器HaproxyServer,位于在前端投放服务器CastServer集群和用户终端之间,用于依据负载均衡策略向CastServer集群中的不同CastServer分发广告请求。本发明采用后台管理服务器MServer和前端投放服务器CastServer集群两级广告数据缓存结构,提高了广告数据处理效率;广告数据缓存采用树形数据结构来反映不同的投放条件及投放条件的优先级,前端投放服务器定时刷新本地缓存的广告数据,基于广告投放条件树查找满足投放条件的广告,广告投放条件树的匹配时间复杂度相当于线性时间复杂度,相比传统的广告匹配方法大大提高了匹配效率,减少服务器的运算量。


图I为本发明实施例提供的广告投放系统功能模块示意图;图2为本发明实施例提供的投放条件树结构示意图;图3为本发明实施例提供的投放条件树的装载过程流程图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进一步详细说明。
图I为本发明实施例提供的一种广告投放系统的结构图,该系统包括广告数据库服务器AdDBServer,用于存储与广告投放相关的广告数据,包含客户数据、合同数据、投放条件、广告素材等。后台管理服务器MServer,用于定时从广告数据库服务器中提取广告数据,生成投放条件树数据对象,并在本地缓存所生成的投放条件树数据对象"Server还可用于广告预定、排期、素材设置等一系列管理功能。前端广告投放服务器CastServer,用于定时从后台管理服务器提取缓存的广告投放条件树数据对象并在本地进行缓存,在接收到用户终端发送的广告请求时,基于所述广告投放条件树查找满足投放条件的广告,并返回广告代码给请求方。广告素材服务器IdeaServer,用于存放实际要播放的广告素材,以及在接收到用户终端发起的获取实际播放的广告素材的请求时,向用户终端返回实际播放的广告素材。用户终端接收到前端广告投放服务器返回的广告代码后,通过解析代码获得实际需要的广告素材标识,然后向广告素材服务器发起获取实际播放的广告素材的请求,广告素材服务器依据请求返回相应的广告素材。所述广告素材可以为视频、flash、图片等。为了应对大规模的并发的广告请求,减轻数据库服务器的负载,本发明采用两级数据缓存机制,并且在后台管理服务器MServer和前端投放服务器CastServer上使用分布式网络缓存工具(如Memcache、redis等)来进行数据的缓存。Mserver定时从广告数据库服务器AdDBServer中取得待投放的广告数据,生成投放条件树数据对象,然后通过分布式网络缓存工具提供的写入set操作功能将所生成的投放条件树数据对象写入本机的缓存中;CastServer会定时通过分布式网络缓存工具提供的获取get操作从MServer的缓存中读取缓存数据,装载到本机缓存中。所述后台服务器和前端投放服务器对所述广告数据进行缓存时采用树形数据结构即投放条件树,来反映不同的投放条件及投放条件的优先级,投放条件树的每一层对应一级广告投放优先级,每个分支对应不同的投放条件,具体的,本发明使用哈希图HashMap来构造所述投放条件树中除叶子节点之外的每一级节点,通过HashMap键值对中的key来反映投放条件,通过HashMap键值对中的value来链接下一级HashMap,每一级HashMap对应一级广告投放优先级;
所述投放条件树的最底层叶子节点为符合上层节点所指示投放条件的广告素材标识的集合,用于存放投放条件相同的广告素材标识,所述集合可通过列表List、数组、链表等数据类型来表达。优选地,为了保证高效投放,前端投放服务器CastServer和用户终端之间挂接了负载均衡服务器HaproxyServer,当用户在网站上的某个行为(如打开一个视频播放页)触发了一次广告请求时,该请求会首先被HaproxyServer得到,然后HaproxyServer会通过一定的策略将该请求转发给多个CastServer中的一台,这台CastServer再到其本机的缓存中进行广告匹配,若找到合适的广告,则向请求方返回要投放的广告代码。本发明优选实施例中,通过多级的哈希图HashMap和列表List来构造投放条件树数据对象,广告投放系统中待投放的广告数据就是以这种结构存放在缓存中,其结构以java风格可描述如下HashMap〈String, HashMap〈String,…,HashMap〈String, List<String>>... >>·根据上面的描述可以看出,该数据结构并非完全固定不变的,会因广告投放系统所要求支持的投放功能而有所不同。其中省略号内表不内部有若干个嵌套的HashMap结构。HashMap是以键值对(key-value)方式来存储数据的,它以put (key, value)方法存入键值对,以get (key)方法取得value,其优点是可以在线性时间复杂度内完成数据查找,而不必在每次查找时都遍历整个集合。最内层是List对象,它则不仅提供了随机访问列表中指定位置的元素,还可以add (value)添加元素,以remove (index)方法删除指定位置的元素。所述投放条件树的构造方法如下步骤I、确定广告有哪些具体的投放要求;例如视频广告投放优先级别的要求为A、广告定投方式为最优先考虑视频组定投广告优先级最高、人群定投广告次之、其它定投方式再次之,其它广告须满足长广告(目前大于7秒的广告被视为长广告,否则为短广告)只投在长视频中、短广告只投在短视频中;B、是否N+广告为次优先考虑N+广告优先于非N+广告进行投放;C、客户级别为再次优先考虑客户级别有V(VIP客户)、A、B、C、D、E等,级别越高,投放顺序越靠前;D、定投方式和是否N+限制、客户级别等都相同的情况下,所做具体投放限制条件越严苛,越优先投放,如定投北京地区的电视剧的广告,要优先于仅仅定投电视剧的广
生P=I ;E、相同的投放条件下按千人成本(Cost Per Millc, CPM)投放的广告,优先于按全流量投放的广告。步骤2、根据广告投放系统具体的功能需求来确定投放条件树的具体结构,基本原则是每一种广告投放条件优先级别要求占用一级HashMap,每一级的HashMap中由键值对(即key-value对)构成,通过HashMap的键值对中的key来反映不同的投放条件,通过HashMap键值对中的value来链接下一级HashMap,直到所有优先级别的HashMap创建完毕,最后一级HashMap键值对中的value则存放一个列表List数据对象,List中存放的是投放条件相同的广告素材ID的集合,广告素材ID是一个广告素材的唯一标识。
例如,基于步骤I中所给的视频广告投放优先级别的要求,应该使用“5层HashMap+1层List”来构造所述投放条件树,以java语言风格描述为HashMap<String, HashMap〈String, HashMap<String, HashMap<String,HashMap〈String, List>>>>>CondTree ;所构造的投放条件树的具体结构可参见附图2的示例。步骤3、上述数据结构中最内层的List中存放的仅仅是广告素材的ID,实际进行广告投放的时候需要根据广告素材的ID取得具体要投放的广告的具体相关参数,如广告素材url、曝光监测url、点击监测url等相关内容。上述具体相关参数可以被组织为一个对象,然后以HashMap方式缓存起来,其结构以java风格定义为HashMap<Interger, AdEntity>adEntityMap ;
其中的key是广告素材ID,value是一个AdEntity对象,对象中存放广告素材url、曝光监测url、点击监测url等相关内容。实际投放时,会先在步骤2中所构造的投放条件树CondTree对象中进行广告匹配,取得一个合适的广告素材ID,然后再根据这个ID到adEntityMap中取得具体的广告素材详细参数,这些参数与用户请求的url中的相关参数一起被组织成广告代码,然后返回给播放器,播放器负责处理后续的广告展现。当从广告数据库中取得一个当前处于投放期的广告后,需要将该广告装载到上述投放条件树中。以下基于上述投放条件树的构造方法,举实例描述广告投放系统的投放条件树的装载过程,如图3所示步骤101、从广告数据库中取得一个当前在投的广告素材(idea)列表ideaList ;步骤102、判断ideaList中是否还有需要处理的广告素材,若有则从ideaList列表中取出一个广告素材,然后执行步骤103 ;否则结束流程;步骤103、根据当前的广告素材的相关属性来确定所取出的广告素材的第一级关键字keyl ;keyl的值由idea的相关属性来确定,例如若该广告为视频组或人群定投,则为V ;否则,如果为长广告,则为I ;如果为短广告,则为s ;步骤104、在投放条件树的根节点即第一级HashMap (以下简称mapl)中匹配是否存在以keyl为关键字的下一级HashMap(以下简称map2),若不存在则执行步骤105 ;否则执行步骤106 ;步骤105、以keyl关键字构造map2,并将键值对(keyl, map2)存入mapl ;执行语句形如map2= new HashMap〈String, HashMap〈String, HashMap〈String,HashMap〈String, List〈String>>>>>();步骤106、根据当前的广告素材的相关属性来确定该广告素材的第二级关键字key2 ;key2同样由idea的相关属性来确定,例如若idea为N+广告,则key2赋值为n ;否则,赋值为g ;步骤107、在map2中判断是否存在以key2为关键字的下一级HashMap (以下简称map3),若不存在则执行步骤108 ;否则执行步骤109 ;步骤108、以key2关键字构造map3,并将键值对(key2, map3)存入map2 ;执行语句形如map3= new HashMap〈String, HashMap〈String, HashMap〈String,List<String ();步骤109、根据当前的广告素材的相关属性来确定该广告素材的第三级关键字key3 ;key3同样由广告素材的相关属性来确定,例如其值为广告素材所对应的广告客户级别,所述客户级别的标识可通过V、A、B、C、D、E、S等字母标识;步骤110、在map3中判断是否存在以key3为关键字的下一级HashMap (以下简称map4),若不存在则执行步骤111 ;否则执行步骤112 ;步骤111、以key3关键字构造map4,并将键值对(key3, map4)存入map3 ;执行语句形如map4= new HashMap<String, HashMap<String,List<String > (); 步骤112、根据当前的广告素材的相关属性来确定该广告素材的第四级关键字key4 ;key4同样由广告素材的相关属性来确定,其值依赖于idea的具体定投方式,例如av (表示地区+视频组定投)、ac (地区+人群定投)、p (分类定投)等;步骤113、在map4中判断是否存在以key4为关键字的下一级HashMap (以下简称map5),若不存在则执行步骤114 ;否则执行步骤115 ;步骤114、以key4关键字构造map5,并将键值对(key4, map5)存入map4 ;执行语句形如map5= new HashMap<String, List<String>> ();步骤115、根据当前的广告素材的相关属性来确定该广告素材的第五级关键字key5 ;步骤116、在1^口5中判断是否存在以key5为关键字的下一级List对象,若不存在则执行步骤117 ;否则执行步骤118 ;步骤117、新建List对象,并将键值对key5_List添加到map5中;步骤118、将当前广告素材id添加到map5中key5对应的List所指向的广告素材列表中,若所对应的广告素材列表不存在,则新建后再存入。然后再次执行步骤102。当前端投放服务器接收到广告请求后,依据广告请求中的参数,基于投放条件树查找满足投放条件的广告,并返回广告代码给请求方。与上述广告装载步骤流程相对应的广告匹配流程的具体步骤如下步骤201、从所接收到的广告请求中获取请求参数;广告请求中的一系列参数可采用下述ReqParam对象的形式进行组织public class ReqParam (
private String vid;//视频 id
private String s; //视频所对应的节目id
private String ct;//视频所属的一级分类,如电视剧、电影、综艺、娱乐等private String cs; //视频所属的二级分类,它有一个唯一对应的一级分类,如大陆剧、港台剧、韩剧,等都是一级分类电视剧下的二级分类
private String provinceld;//当前用户所在的省,可通过用户请求中的ip信息
获取
private String cityld; //当前用户所在的城市,可通过用户请求中的ip信息
获取
private String uid;//上传当前视频的用户的账号(用户id) private String t;//视频的播放时长 private String keyword;//视频请求所带的关键字 private String partnerid;//合作方 id
}步骤202、从广告请求的参数中获取第一级关键字列表;根据广告请求参数reqParam,获取已排好序的当前级别map对应的keyl列表;步骤203、从第一级关键字列表取出一个未处理的第一级关键字keyl,执行步骤204 ;若第一级关键字列表为空或所有的关键字都处理完毕仍未找到可投放的广告,则转到步骤218 ;步骤204、在第一级HashMap中(以下简称mapl)匹配keyl,获得keyl对应的下一级HashMap (以下简称map2);步骤205 ;从广告请求参数中获取以keyl为上级关键字的第二级关键字列表;步骤206、从第二级关键字列表取出一个未处理的第二级关键字key2,执行步骤207 ;若第二级关键字列表为空或所有的关键字都处理完毕仍未找到可投放的广告,则返回执行步骤203 ;步骤207、在map2中匹配key2,获得key2对应的下一级HashMap (以下简称map3);步骤208 ;从广告请求参数中获取以key2为上级关键字的第三级关键字列表;步骤209、从第三级关键字列表取出一个未处理的第三级关键字key3,执行步骤210 ;若第三级关键字列表为空或所有的关键字都处理完毕仍未找到可投放的广告,则返回执行步骤206 ;
步骤210、在map3中匹配key3,获得key3对应的下一级HashMap (以下简称map4);步骤211 ;从广告请求参数中获取以key3为上级关键字的第四级关键字列表;步骤212、从第四级关键字列表取出一个未处理的第四级关键字key4,执行步骤213 ;若第四级关键字列表为空或所有的关键字都处理完毕仍未找到可投放的广告,则返回执行步骤209 ;步骤213、在map4中匹配key4,获得key4对应的下一级HashMap (以下简称map5);步骤214 ;从广告请求参数中获取以key4为上级关键字的第五级关键字列表;步骤215、从第五级关键字列表取出一个未处理的第五级关键字key5,执行步骤216 ;若第五级关键字列表为空或所有的关键字都处理完毕仍未找到可投放的广告,则返回 执行步骤212 ;步骤216、在map5中匹配关键字key5,获得key5对应的广告素材列表adList ;步骤217、从adList的尾部依次向前查找可投放的广告,若查到可投放的广告,则返回对应的广告素材标识;若adList中的某个广告已投放完毕,则从adList中删除该广告的广告素材标识;若在adList中没有找到可投放的广告,则执行步骤215 (即退回到上一级map)。步骤218、返回空字符串,结束流程。以附图2所示的投放条件树为例,按照上述规则进行遍历,其过程为(I)先从根节点向下查找,顺序依次为klv、k2n、k3o、k4s、k5sl ;(2)到达第五层后,取得第一个列表,然后从列表末尾开始向前访问,依次为idm、id (m-1)、…、idl ;(3)到达第一个列表的最前端后,如果仍然未找到可投放的广告,则退回到上一层的 k5s2 ;(4)然后从k5s2再找到第二个列表,然后再从列表末尾开始向前访问,依次为idn、id (n-1)、…、id (m+1)按上述规则,最终可完成对整个投放条件树的遍历。实施实例一比如某视频网站,对其前贴广告(即视频播放之前播放的视频广告)投放的要求如下(I)要求能够提供视频组定投、人群定投、用户定投、关键字定投、地区定投+分类(频道)定投、分类定投等定投方式;(2)要求能够提供对广告的N+限制功能;(3)能够根据客户的重要性将客户划分为若干个等级,高等级客户的广告应该保证优先于低等级客户的广告投放,但是视频组定投和人群定投类的广告则不必根据客户等级来决定投放顺序(4)为提高用户体验,短视频(5分钟以内的视频)中,只能投放短前贴(时长不超过7秒钟),长视频(5分钟以上的视频)中,只能投放长前贴(时长大于7秒钟),但是视频组定投和人群定投类的广告则不受此限制;
根据上述要求,可以采用“5级HashMap+1级List”的组合数据结构来完成广告数据的缓存。下面对每一级的key的组成进行说明其中第一级的key作如下设置V :用于视频组(vidcogroup)定投、人群定投类广告,由于这类定投方式没有长广告只投长视频、短广告只投在短视频,以及没有根据客户级别决定投放顺序的,所以它们归
为一类。I :用于只投在长视频中的长广告。s :用于只投在短视频中的短广告。第二级key含义
n:N+广告f:非 N+广告第三级key含义a、b、c、d、e :分别表示A、B、C、D、E级客户的广告,级别依次降低第四级key含义s :视频组定投的广告c :人群定投广告u :用户定投广告(广告只投放在指定的用户的视频中)k:关键字定投广告p :分类定投广告第五级key含义:由第四级key名称+key值组成,如c3 :指定投放在白领女性(人群id为3)人群中的广告。allpd :指定投放在北京地区(省份id :11)且在电视剧分类(分类id d)下的广
生口 o比如,某次广告请求,对应的参数值分别为
权利要求
1.一种广告投放方法,其特征在于,该方法包括 从广告数据库服务器中获取广告数据,将获取的广告数据缓存在后台管理服务器中;前端广告投放服务器从后台管理服务器的缓存中读取广告数据并在本地缓存; 所述后台服务器和前端投放服务器以投放条件树的树形数据结构来缓存所述广告数据,投放条件树的每一级对应一级广告投放条件的优先级,每个分支对应一种投放条件,最底层叶子节点为符合上层节点所指示投放条件的广告素材标识的集合; 当前端投放服务器接收到广告请求后,根据广告请求参数在所述投放条件树中匹配满足投放条件的广告,并返回广告代码给请求方。
2.根据权利要求I所述的方法,其特征在于,所述匹配满足投放条件的广告,并返回广告代码给请求方的方法具体为 依据广告请求携带的参数确定各个优先级对应的投放条件; 以深度遍历算法在所述投放条件树中匹配所确定的各个优先级对应的投放条件,在遇到叶子节点时,从叶子节点所包含的广告素材标识的集合中获取符合投放条件的广告素材标识; 根据所获取的广告素材标识获取具体的广告素材详细参数,将广告素材详细参数与广告请求中的相关参数一起组织成广告代码,将广告代码返回给请求方。
3.根据权利要求2所述的方法,其特征在于,所述后台服务器构造投放条件树的方法具体为 使用哈希图HashMap来构造所述投放条件树中除叶子节点之外的每一级节点,通过HashMap键值对中的key来反映不同的投放条件,通过HashMap键值对中的value来链接下一级HashMap,每一级HashMap对应一级广告投放条件优先级; 最后一级HashMap键值对中的value以列表数据类型装载符合相同投放条件的所有广告素材标识。
4.根据权利要求I所述的方法,其特征在于, 所述广告数据库服务器使用分布式网络缓存工具将获取的广告数据缓存在后台管理服务器中; 所述前端广告投放服务器使用分布式网络缓存工具从后台管理服务器的缓存中读取广告数据并在本地缓存。
5.根据权利要求I所述的方法,其特征在于, 在前端投放服务器CastServer集群和用户终端之间挂接负载均衡服务器HaproxyServer,所述HaproxyServer用于依据负载均衡策略向CastServer集群中的不同CastServer分发广告请求。
6.一种广告投放系统,其特征在于,所述系统包括 广告数据库服务器,用于存储与广告投放相关的广告数据; 后台服务器,用于从广告数据库服务器中获取广告数据,将获取的广告数据缓存在本地缓存中; 前端投放服务器,用于从后台管理服务器的缓存中读取缓存的广告数据并在本地缓存中进行缓存;接收广告请求,根据广告请求参数在本地缓存的广告数据中匹配满足投放条件的广告,并返回广告代码给请求方;所述后台服务器和前端投放服务器以投放条件树的树形数据结构来缓存所述广告数据,投放条件树的每一级对应一级广告投放条件的优先级,每个分支对应一种投放条件,最底层叶子节点为符合上层节点所指示投放条件的广告素材标识的集合;所述前端投放服务器基于所述投放条件树进行广告匹配。
7.根据权利要求6所述的系统,其特征在于,所述前端投放服务器包括 缓存模块,用于从后台管理服务器的缓存中读取缓存的广告数据并在本地缓存中进行缓存; 匹配模块,用于依据广告请求携带的参数确定各个优先级对应的投放条件,以深度遍历算法在所述投放条件树中匹配所确定的各个优先级对应的投放条件,在遇到叶子节点时,从叶子节点所包含的广告素材标识的集合中获取符合投放条件的广告素材标识; 反馈模块,用于根据所获取的广告素材标识获取具体的广告素材详细参数,将广告素材详细参数与广告请求中的相关参数一起组织成广告代码,将广告代码返回给请求方。
8.根据权利要求7所述的系统,其特征在于, 所述投放条件树中使用哈希图HashMap来构造除叶子节点之外的每一级节点,通过HashMap的键值对中的key来反映不同的投放条件,通过HashMap键值对中的value来链接下一级HashMap,每一级HashMap对应一级广告投放条件优先级;最后一级HashMap键值对中的value以列表数据类型装载符合相同投放条件的所有广告素材标识。
9.根据权利要求6所述的系统,其特征在于, 所述广告数据库服务器使用分布式网络缓存工具将获取的广告数据缓存在后台管理服务器中; 所述前端广告投放服务器使用分布式网络缓存工具从后台管理服务器的缓存中读取广告数据并在本地缓存。
10.根据权利要求6所述的系统,其特征在于,所述系统还包括 负载均衡服务器HaproxyServer,位于在前端投放服务器CastServer集群和用户终端之间,用于依据负载均衡策略向CastServer集群中的不同CastServer分发广告请求。
全文摘要
本发明公开了一种广告投放方法及系统,用于改进现有广告系统结构,提高广告投放效率,减小用户等待时间。本发明采用后台管理服务器MServer和前端投放服务器CastServer集群两级广告数据缓存结构,提高了广告数据处理效率;广告数据缓存采用树形数据结构来反映不同的投放条件及投放条件的优先级,前端投放服务器定时刷新本地缓存的广告数据,基于广告投放条件树查找满足投放条件的广告,广告投放条件树的匹配时间复杂度相当于线性时间复杂度,相比传统的广告匹配方法大大提高了匹配效率,减少服务器的运算量。
文档编号G06Q30/02GK102779308SQ20121000633
公开日2012年11月14日 申请日期2012年1月9日 优先权日2012年1月9日
发明者卢述奇, 姚键, 尹玉宗, 张云锋, 张缓迅, 潘柏宇 申请人:合一网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1