[发明专利]一种基于Storm平台的分布式数字标牌广告投放方法有效
申请号: | 201510583827.4 | 申请日: | 2015-09-14 |
公开(公告)号: | CN105184614B | 公开(公告)日: | 2018-08-24 |
发明(设计)人: | 赵霞;张珣;于重重;于田昊;陆洋;潘博;刘帅帅;孙楷 | 申请(专利权)人: | 北京工商大学;广州点屏信息技术有限公司 |
主分类号: | G06Q30/02 | 分类号: | G06Q30/02;G06F8/30 |
代理公司: | 北京万象新悦知识产权代理事务所(普通合伙) 11360 | 代理人: | 贾晓玲 |
地址: | 100048*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于Storm平台的分布式数字标牌广告投放方法,将广告投放过程分为:1)搭建基于Storm平台的处理框架,包含读订单,选屏,排期,更新订单状态;2)发射源接收订单消息并发给选屏处理单元;3)选屏处理单元根据订单地理约束条件等为每个订单选择屏位;4)排期处理单元根据订单中时间约束条件、屏位空闲时间段为该屏位生成排期列表;5)状态处理单元根据排期结果,更新订单状态。本发明能够高效地实现海量订单广告的即时精准投放,同时能够提高数字标牌的屏位利用率,减少时间碎片,具有很高的商业价值和应用推广价值。 | ||
搜索关键词: | 一种 基于 storm 平台 分布式 数字 标牌 广告 投放 方法 | ||
【主权项】:
1.一种基于Storm平台的分布式数字标牌广告投放方法,其步骤包括:A.搭建基于Storm平台的选屏排期框架:该框架包含读订单,选屏,排期,更新订单状态四个连续任务阶段,分别由读订单处理单元、选屏处理单元、排期处理单元和状态处理单元组成,具体实现如下:A1.读订单处理单元从Socket服务器读取订单信息,并将一个订单的所有信息打包成一个元组,并发射给选屏处理单元;A2.选屏处理单元为每个订单启动一个选屏任务,根据接收到的订单的地理位置、受众特征、商业环境的约束条件,进行精准选屏,得到每个订单的屏位集合;并合并每个屏位上的订单ID,形成集合;将屏位ID、订单ID、以及该订单在该屏位上分配的次数打包成元组,发射给排期处理单元;A3.排期处理单元每接到一个元组,为元组指定的屏位ID启动一个排期任务,为该屏位上的订单ID,按照订单约束条件和屏位空闲时间段排期,生成排期列表;将屏位ID、订单ID、以及未排完的次数打包成元组,发射给状态处理单元;A4.状态处理单元接收到步骤A3发来的元组,累计该订单未排完的次数,如果累计未排完次数为0,则修改订单状态为已排期状态;否则修改订单状态为排期失败状态;B.读订单处理单元接收Socket服务器发来的订单消息,以元组形式发射给选屏处理单元,具体实现如下:B1.读订单处理单元与Socket服务器建立连接;B2.读订单处理单元最初接收到的订单信息是以为开端,<\xml>为结尾格式的订单,找到订单中以为开端, 为结尾的部分内容;B3.截取B2所找到的内容,将订单格式修改为以为开端, 为结尾格式的订单;B4.将这个订单信息以元组形式发射给选屏处理单元;C.选屏处理单元为每个订单选择合适的屏位:根据接收到的订单的媒体商ID、标签集合、要求的广告屏以及屏位宽高尺寸、要求的地理位置以及广告屏的相容互斥标签,为这个订单启动一个选屏任务,进行精准选屏;将屏位ID、订单ID、以及该订单在该屏位上分配的排期次数打包成元组,发射给排期处理单元;D.根据订单要求的总次数、播放频次,计算订单在该屏位上每天应当播放的次数,具体实现如下:D1.分别算出一天秒值、起始日期秒值、明天日期秒值、结束日期秒值,在起始日期秒值与明天日期秒值中取较大值作为起始日期秒值;D2.把总次数分摊到从起始日期到结束日期的每一天,计算每天应播放的次数;E.将广告屏的时间段采用时间轨道的方法管理,具体实现如下:E1.将一个被占用的时间段[time,tlen]转换为时间轨道的算法,具体实现如下:E1.1定义一个二进制长字节字符串表示的空时间轨道,该二进制长字节字符串右端为低位0;E1.2在时间轨道中,把从time开始的tlen位二进制位串置为1,具体实现如下:将1左移tlen个长度,将其结果减1,将减1的结果向左移time个长度,得到从time开始向右tlen位为1的二进制位串;E2.将一个时间轨道转换为时间段的算法,具体实现如下:在时间轨道中,判断从多少位开始是1,开始记录time,再判断多少位的时候变回0,记录为tlen,具体实现如下:从右边最低0位开始数,右移计数,右移n次如果发现数位变1了,则说明n+1位是1,如此往复,最终得到此二进制串所相对应的[time,tlen];E3.合并两个时间段的算法,具体实现如下:先分别将两个时间段转化为时间轨道,再将两个时间轨道做逻辑或运算得到新的时间轨道,将结果时间轨道转化为时间段[time,tlen];E4.求两个时间段的交集时间:分别将两个时间段转化为时间轨道,再将两个时间轨道做逻辑与运算得到新的时间轨道,将结果时间轨道转化为[time,tlen];E5.判断两个时间段是否有重叠:求两个时间段的交集,结果如果大于0,则有重叠;E6.切除引起互斥的时间轨道,具体实现如下:E6.1读取订单的互斥标签和订单的互斥时间段;E6.2如果其他广告没有引起互斥,原有时间轨道不需要切除;如果其他广告会引起互斥,则切除互斥时间段;F.排期处理单元为每个屏位ID启动一个排期任务,为该屏位上的订单ID排期,将排期结果保存至Redis数据库,具体实现如下:F1.获取屏位的当天的时间轨道;如果当天时间轨道为空,就读取空闲时间段,转换成时间轨道;如果没有当天的空闲时间段,就循环读取前一天的空闲时间段,转换成时间轨道;如果没有从前的空闲时间段,就读取开机时间到关机时间的一段时间为空闲时间段,转换为时间轨道;这个过程中形成的空闲时间段和时间轨道,都要保存在Redis数据库中,供下次排期使用;具体实现如下:F1.1给定屏位ID和日期,以“Area:area_id:day:time_track_list”作为键,利用Redis的lrange命令返回当天时间轨道列表;F1.2如果列表为空,就读取屏位的当天的空闲时间段;并转换成长整数空闲时间,以日期为键,以字典形式保存在Redis库中,再转换为时间轨道列表,并统计该屏位当天的空闲时间总长度;F1.3如果没有当天的空闲时间段,则循环读取前一天的空闲时间段,作为当天的空闲时间段,并转换为时间轨道;同时还将该时间轨道保存在Redis数据库中,作为当天的时间轨道,供下次排期使用;F1.4如果该屏位循环读取从前的空闲时间段,也没有记录,则读取该屏的开关机时间,作为其空闲时间段,并将其转换为空闲时间列表和时间轨道,并保存在Redis数据库里,供下次排期使用;F2.根据订单的广告播放时间要求和屏上已经排期的订单的互斥约束条件,切除不可用时间段,得到可用的时间轨道;具体实现如下:F2.1读取订单中广告的播放时间要求,形成在该屏位上的可播放时间段,并将此时间段与屏位时间轨道做交集运算,得出此订单在此屏位上的可用时间轨道;F2.2为屏定义一个互斥标签时间轨道集合,该集合的每个元素里包含一组标签集合和时间轨道,一组标签集合包含该屏上已排期的订单的广告行业标签,以及该订单声明的互斥标签,时间轨道即为该订单已经占用的屏位的时间轨道;如果有新订单的广告行业标签或者订单声明的互斥标签被该互斥标签集合包含,则要从新订单的时间轨道中切掉:新订单的时间轨道与该集合中的标签对应的时间轨道的交集;该新订单在该屏上排期之后,则该订单的广告行业标签以及其排期的时间轨道将被保存中这个集合里;如果该订单声明了互斥标签,则该订单的互斥标签也被保存进入这个互斥标签时间轨道集合;F2.3根据订单的广告行业标签,从可用时间轨道中切去该订单不能使用的时间段,形成最终的可用时间轨道;F2.4如果该订单有互斥标签,则从可用时间轨道中切去该订单不能使用的时间段,形成最终的可用时间轨道;F2.5当该订单排期结束之后,把该订单的广告行业标签、互斥标签、以及订单在屏位上的排期时间轨道,存入这个屏互斥标签时间轨道集合中;F3.对当天的一个订单进行排期,把订单尽量均分在屏位空闲时间段内,且保证订单要求的最小间隔,具体实现如下:F3.1一个广告周期=广告播放时长+订单要求的最小间隔,如果广告播放时长>时间轨道的空闲秒数,则无法排期;F3.2如果时间轨道的空闲秒数>广告播放时长*订单要播放的次数,计算新的两次广告播放时间间隔,并计算新的广告周期;F3.3实现订单要求的最小间隔;F3.4把订单尽量均分在屏位空闲时间段内,实现一个新的广告周期;F3.5每排完一次广告,就修改排期统计计数;F3.6循环F3.4~F3.5,把这次广告排期结果写入排期列表;F4.排期完毕,更新排期后的时间轨道,同时将排期列表保存在Redis数据库中,具体实现如下:F4.1更新排期后的时间轨道;F4.2把屏位的排期列表入库;G.状态处理单元更新订单状态,累计该订单未排完的次数,如果累计未排完次数为0,则修改订单状态为已排期状态,否则修改订单状态为排期失败状态,具体实现如下:G1.将未被排期次数加到原来未排期次数上,具体实现如下:G2.更改订单状态。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工商大学;广州点屏信息技术有限公司,未经北京工商大学;广州点屏信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510583827.4/,转载请声明来源钻瓜专利网。