发明内容
为了解决上述网络资源利用率较低及单一广告重复播放的技术问题,本发明提出了一种新的在流媒体资源上轮播广告的方法和装置,其能够合理的利用资源,采用了轮播机制,将多段广告组合轮播,避免一段广告频繁播放造成用户厌恶而产生负效果。
需要说明的是,为了清楚且突出的表示本发明的轮播广告技术,以下全文中均使用了“蓝海联播”这一词汇来指代本发明提出的轮播广告技术,本领域技术人员应清楚,这一词汇仅用于指代的目的,无意限制本发明。
本发明提出了一种在流媒体资源上轮播广告的方法,其特征在于,包括如下步骤:
第一步,用户访问视频后,此次流量进入广告投放引擎,进行广告请求;
第二步,根据广告请求获取相应的广告资源包,其中该资源包中包含多段广告素材文件;
第三步,判断当前指向所述多段广告素材文件的轮播位置,将当前轮播位置下移一个单元指向另一段广告素材文件;
第四步,获取当前广告资源包在新的轮播位置下的广告素材文件,并在用户访问视频的相应位置上放置该广告素材文件。
优选的,其中根据广告请求获取相应的广告资源包进一步包括:
根据广告请求用户所处的地区位置或者用户访问视频的不同分类获取不同的广告资源包。
优选的,其特征在于:
将当前轮播位置下移一个单元指向另一段广告素材文件,采用顺序轮播或随机轮播的方式。
优选的,其特征在于在第二步之前还包括步骤:
判断用户访问的视频是否是业务保护流量,如果是,则不进行广告投放,直接返回;否则进入后续广告投放环节。
优选的,其特征在于:
用户浏览器端植入有用于轮播广告的Cookie,该Cookie信息中保存有当前的广告轮播位置,并在广告轮播之后更新该广告轮播位置。
优选的,其特征在于:
当在第三步判断当前指向的轮播位置上广告素材文件为空时,则随机选择所述多段广告素材文件中的一段作为初始轮播位置。
优选的,其特征在于,在用户访问视频的相应位置上放置广告素材文件之前,还包括步骤:
判断流媒体资源上相应的广告位置是否已经被占用,若被占用,则跳过广告轮播步骤。
本发明还提供了一种基于流媒体资源的广告轮播的装置,其特征在于,包括:
广告请求接收模块,用于在用户访问视频,此次流量进入广告投放引擎后,接收用户的广告请求;
广告资源包获取模块,用于根据广告请求获取相应的广告资源包,其中该资源包中包含多段广告素材文件;
轮播位置确定模块,用于判断当前指向所述多段广告素材文件的轮播位置,将当前轮播位置下移一个单元指向另一段广告素材文件;
广告素材文件放置模块,用于获取当前广告资源包在新的轮播位置下的广告素材文件,并在用户访问视频的相应位置上放置该广告素材文件。
优选的,其中所述广告资源包获取模块进一步包括:
根据广告请求用户所处的地区位置或者用户访问视频的不同分类获取不同的广告资源包。
优选的,其特征在于:
将当前轮播位置下移一个单元指向另一段广告素材文件,采用顺序轮播或随机轮播的方式。
优选的,其特征在于还包括:
业务保护流量判断模块,用于判断用户访问的视频是否是业务保护流量,如果是,则不进行广告投放,直接返回;否则进入后续广告投放环节。
优选的,其特征在于:
用户浏览器端植入有用于轮播广告的Cookie,该Cookie信息中保存有当前的广告轮播位置,并在广告轮播之后更新该广告轮播位置。
优选的,其特征在于还包括:
广告素材文件判断模块,用于当判断当前指向的轮播位置上广告素材文件为空时,随机选择所述多段广告素材文件中的一段作为初始轮播位置。
优选的,其特征在于,还包括:
广告位置占用判断模块,用于判断流媒体资源上相应的广告位置是否已经被占用,若被占用,则跳过广告轮播。
采用本发明的技术方案后,可以有效的利用各种流媒体资源,提升广告播放的效率。
附图说明
下面结合附图及具体实施例对本发明再作进一步详细的说明:
附图1为根据本发明实施例的蓝海联播中执行当前轮播位广告的圆形示意图。
附图2所示为根据本发明实施例的蓝海联播中轮询指针指向下一个轮播位示意图。
附图3所示为根据本发明实施例的资源包相交的示意图。
附图4所示为根据本发明实施例的BlueoceanCookie数据结构示意图。
附图5所示为根据本发明实施例的resourceMap数据结构示意图。
附图6所示为根据本发明实施例的蓝海联播轮播数据结构示意图。
附图7所示为根据本发明实施例的素材文件信息映射数据结构示意图。
附图8所示为根据本发明实施例的蓝海联播广告流程框图。
附图9所示为根据本发明实施例的蓝海联播内部流程框图。
附图10所示为根据本发明实施例的浏览器cookie-服务器内存解析示意图。
附图11所示为根据本发明实施例的广告A在BlueoceanMaps中的信息实例。
附图12所示为根据本发明实施例的BlueoceanCookie实例。
附图13所示为根据本发明实施例的更新后的BlueoceanCookie实例。
附图14所示为根据本发明实施例的更新前BlueoceanCookie实例。
附图15所示为根据本发明实施例的更新后的BlueoceanCookie实例。
附图16所示为本发明基于流媒体资源的广告轮播装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
蓝海联播采用圆环模型,将视频流量构建成圆环的循环,圆环分成N个单元,此即为该圆环的总轮数。初始采用随机机制,随机定位圆环上的一个单元,为圆环开始节点,这种做法将在一定程度上保证圆环每个单元对应的流量资源平均化,随后的流量进入圆环都将遵循这个初始化轮询顺序。圆环上的每个单元可以安插一个投放素材文件,即可进行一次广告投放。每次流量进入圆环,圆环将提取出当前轮询到的单元,获取该单元上的广告素材文件,进行投放,如果当前单元上无广告素材文件,该流量将从圆环流出,进入到广告系统其他广告投放产品下,这是一种流量分层流出模型;在圆环中获取到了广告素材文件后,圆环会将当前指针移动至下一个单元,此过程完成了广告投放和轮询指针的偏移。附图1,附图2演示了一个5轮播的一次轮播过程。
图1和2中,圆环的单元N为5,其中演示了一个5轮播的一次轮播过程,在轮播中每个位置次序是相对的。每次轮播都会从当前位置找到当前位置上的广告投放,如图中,当前进入圆环模型时,找到当前位置为编号5,投放编号5上的广告,并将轮播指针下移至4,依次类推,当下一个流量进入圆环的时候,会投放编号4上的广告,后续的流量依次是3-2-1,直到再次进入5,称此为一次轮播循环。至于圆环上的位置都是相对存在关系,所以以上编号实际只是个代号。可以设想圆环模型其实就是5-4-3-2-1-5-4-3-2-1……这样一个无限循环模式。当然,上述轮播循环也可以是随机的,即通过随机的方式,在当前位置的广告播放后,将指针指向下一个编号,可以设想圆环模型的播放顺序为5-2-4-3-1-3-5-4-2-1,或者其它随机的顺序。
既然提到蓝海联播是基于视频流量上构建一种轮播模型,那么自然离不开视频流量。前面也提到过蓝海联播是为了提升二三线资源的利用率,所以蓝海联播的视频流量也是特别针对二三线热点资源的包装。基于这些,提出一个流量资源包的概念,这些资源包是在业务长期积累的经验下设计出来,资源包会包含二三线热点城市的列表,以及相应的视频频道资源构建而成,在此资源包下,蓝海联播就衍生成为资源包在一定时间内的使用规则。既然资源包是一种二三线城市流媒体资源的打包,那么自然有可能存在多个资源包对一个指定区域某个频道流媒体资源的抢占问题,即资源包相交,后续会使用资源包相交这个词,意指资源的抢占,参见附图3,图中资源包A和资源包B相交。
针对这种资源包相交的问题,是否应该提出禁止其相交的规则呢?从业务上来说,资源包只是资源的一个打包集合,在打包的时候对其相交作出过于严格的限制,反而降低了其资源包装的能力,而往往一个流媒体资源是能以多种包装形式进行售卖,以满足各种广告客户的需求。所以资源包不应该限制其打包能力,真正相交的资源包出现冲突的时候,是其在使用的过程中,换句话说,应该做出限制的是蓝海联播。蓝海联播才是资源包的一定时间范围内的使用,而抢占的时候也是在此发生的,所以应该在使用的时候做出限制,即创建蓝海联播需要验证其资源是否有相交性质,以确定其是否可以进行投放。
在前面,我们说明了蓝海联播设计的背景和思路,接下来会展开详细描述蓝海联播的实现上的细节,在蓝海联播的实现上,需要用到以下几个重要的数据结构:
为了记录蓝海联播在客户端的播放情况,定义了一个BlueoceanCookie数据结构,结构如图4所示。BlueoceanCookie数据结构中包括三个字段,资源包A_ID:当前轮播数;资源包B_ID:当前轮播数;资源包C_ID:当前轮播数。
为了记录具体某个地区+分类对应的资源包投放(资源包进入投放时,相当于蓝海联播的地区分类信息),定义了一个resourceMap数据结构,结构如图5所示。resourceMap数据结构中包括三个字段,地区A1+分类B1:资源C1;地区A2+分类B1:资源C2;地区A2+分类B2:资源C3。
蓝海联播轮播的数据结构,需要存储某个轮播单元上的广告素材文件,就需要如图6所示的蓝海联播轮播数据结构。蓝海联播轮播数据结构中包括两个资源,资源A和资源B,资源A中包括第一轮播:素材文件A和第二轮播:素材文件B;资源B中包括第一轮播:素材文件C和第二轮播:素材文件D。
为了存储素材文件详细信息,定义了一个素材文件信息映射(adIdeaMap)数据结构,如图7所示。素材文件信息映射数据结构包括两个字段,素材文件ID:素材文件A信息和素材文件ID:素材文件B信息。
那么这些数据结构是如何完成蓝海联播的信息存储的呢?
●一个蓝海联播由业务人员在广告系统后台创建后,会定制出打包的资源,这个打包的资源其实说明了这样一种关系,一个打包的资源包含了哪些定制的网站频道信息和要在哪些城市进行投放;在某视频网站,网站的频道对应成一个频道的编号(ID),城市对应成一个城市编号(ID),存储成一个资源编号与频道ID和城市ID的映射关系,这样的关系结构由图5中resourceMap数据结构表示出来。
●既然资源已经定制好频道和地区,接下来要定制出这个资源下的轮播总次数,以及在每一个轮播位置上需要放置哪些广告素材文件,这样的关系结构由图6中蓝海联播轮播数据结构表示。
●刚才提到了资源需要在每个位置上存放一个素材文件信息,实际上,技术上为了减少系统开销,在图6中蓝海联播轮播数据结构中存放的只是素材文件的ID,而不是完整的素材文件信息,这样自然需要一个素材文件信息数据结构,通过素材文件ID找到其详细信息(这些信息包括素材文件地址,素材文件时长,素材文件控制策略等),于是就需要图7中素材文件信息映射数据结构,这个数据结构就是为了表示素材文件ID和具体素材文件详细信息的关系。
接下来,介绍数据的获取与解析的具体流程图:
在BlueoceanCookie的解析中,广告系统为了实现资源上轮播效果,故在用户浏览器端植入轮播Cookie;接下来,结合附图10,介绍下轮播Cookie的解析流程:
图中各个组成元素的含义分别如下:
●resourceId:蓝海联播对应的资源ID,即分类和地区信息。
●lun:蓝海联播在当前的轮播位置,每一个轮播位置最多有一段广告投放。
Cookie与服务器内存数据转换:某视频网站的广告系统使用了互联网上用于记录用户访问网站信息的cookie技术,用于保存蓝海联播的轮播信息,用于确定当前用户进入时,需要给予其播放的轮播广告。Cookie中存放的数据如图10中顶部所示,其是由一串字符组成,格式如图中所示“resourceId:lun_resourceId:lun_resourceId_lun”,这种格式可以保证在技术可行的范围内,记录尽可能多的轮播信息,如上面解释过,resourceId实际上是蓝海联播的资源ID,lun实际上是当前这个蓝海联播的当前轮播位置,即是前述圆环模型上的某个位置,多个轮播信息在cookie存储时,用特殊字符“_”分割,这是技术上的一种实现,当然可以有多种其他实现方法,比如用其它符号进行分割。当一个用户在某视频网站上看到一个视频,此时会请求该视频网站的广告系统,广告系统通过请求获取用户当前的cookie信息,得到蓝海联播的轮播信息,按照格式解析出resourceId(蓝海联播的资源ID)和lun(蓝海联播的当前轮播位置),并将此信息,由resourceId和lun组成的一行数据,存入内存的名为hmCookie的对象中,这样用户浏览器端的蓝海联播的信息就进入到广告系统的内存中,后续广告系统会根据用户的hmCookie信息(hmCookie的原型数据结构即是前述BlueoceanCookie数据结构),选择一段适合的广告进行投放。
我们对前贴广告开展了3前贴广告投放的模式,前贴1,前贴2和前贴3,在本发明中,只提取第二前贴用本发明专利技术投放。
接下来,我们具体描述视频广告播放的具体流程。
用户访问视频时,执行广告播放的流程如下:
1.用户访问视频后,此次流量进入广告投放引擎,进行广告请求。
2.判断该流量是否是业务保护流量,如果是,则不进行广告投放,直接返回;否则进入后续广告投放环节。
3.流量优先进入高优先级的广告策略中获取广告,执行完后,如果第二前贴广告位已被占用,则跳过蓝海联播广告策略;如果第二前贴未被占用,则进入蓝海联播广告策略。
4.最后进入低优先级的广告策略,发现广告位有空闲的,则补全,最后返回广告数据。具体的流程图参见附图8:
在上述广告播放的流程中,蓝海联播的内部流程如图9所示:
1.获取请求参数的地区和分类信息,得到当前请求地区+分类的组合,共有四种可能的组合,分别为:市+二级分类,市+一级分类,省+二级分类,省+一级分类;
2.由当前用户的地区+分类查找在此条件下投放的蓝海联播,找到其相应的资源包,判断是否找到符合的资源包,如果未找到,则直接返回;如果找到,则进入下一步。
3.读取解析Cookie中蓝海联播轮播数据,判断轮播数据是否为空,如果为空,将使用随机位置策略,初始化轮播位;如果不为空,则将当前轮播位置下移一个单元至新轮播位。
4.获取当前资源包在新的轮播位置下的投放广告,如果有广告,则在第二前贴位置上放置该广告。
5.将资源包的新轮播位置设置到用户Cookie中,已待后续投放跟踪使用并将已经投放失效的蓝海联播移除。
接下来,结合具体的实例,详细描述在基于地区和分类的流媒体资源上轮播广告的方法。
实例一:河北某知名化妆品客户的广告A投放。
广告投放周期是:2012-10-25~2012-12-25,购买了业务组准备的“河北_电视剧/电影/娱乐/综艺_3轮次”打包资源,该资源内容:
(1)地区要求河北全省。
(2)分类要求电视剧下的大陆剧,港剧,台剧,以及所有电影,娱乐和综艺。
(3)购买3个轮次(即3个轮播位置,在该区域,业务人员建立了一个5轮的圆环模型,另外空余出来的两个轮次,又进入到其他广告客户的广告投放)
实际投放时,所有的资源信息和轮播位置都从数据库中提取出来,并创建一个BlueoceanMaps实例用于存储这些信息。如广告A在BlueoceanMaps中的信息如附图11所示。
当广告投放引擎找到符合该地区+分类的流量后,将会进入到该数据结构中从“地区分类资源映射”数据中寻找到相应的资源包ID,然后解析客户的Cookie轮播信息,计算当前轮播位置,在由资源包ID和当前轮播位置,从“资源轮播位置信息”找到当前位置的素材文件ID;得到了素材文件ID后,实际上就得到了要投放的广告,剩下的只需要得到该广告的素材文件地址,这时广告投放引擎会从“素材文件信息”中,找到素材文件的详细信息,封装成广告数据,最后返回给网站上的播放器,播放该轮次的广告。
例如,广告系统接收到某次广告请求时所得到的浏览器cookie的值为“1004:1_1005:2”,采用“Cookie与服务器内存数据转换”规则将其还原为一个BlueoceanCookie对象后,转换规则参考前述BlueoceanCookie的解析,其结构如图12所示。
从图11和图12中可以看到,用户观看1004的资源包(即实例一的广告主定制的基于地区+分类的广告轮播),已看到第1轮次;1005的资源包,已看到第2次。这表示实例一的上一次广告播放了素材文件A了,本次需要进入到播放位置2,播放素材文件B。广告投放引擎处理完这次广告播放请求后,会修改用户Cookie的数据为“1004:2_1005:2”,如图13所示。
实例二:某城市客户的广告D投放。
广告投放周期是:2012-10-23~2012-11-01,购买了业务组准备的“南京_电影/综艺_2轮次”打包资源,该资源内容:
(1)地区要求精确到城市:南京。
(2)分类要求所有电影和综艺。
(3)购买2个轮次(即2个轮播位置,在该区域,业务人员建立了一个2轮的圆环模型流量完全提供给该客户投放)
广告D对应的BlueoceanMaps信息结构同实例一中是类似的,可参见图11。
开始实际投放时,该广告的资源信息和轮播位置都从数据库中提取出来,并加载到BlueoceanMaps实例中。如广告D在BlueoceanMaps中的信息如附图11所示。
当广告投放引擎找到南京地区的电影或综艺的流量后,将会进入到该数据结构中从“地区分类资源映射”数据中寻找到相应的资源包ID。
接着,解析客户的Cookie轮播信息,广告系统接收到某次广告请求时所得到的浏览器cookie的值为“1008:2”,采用“Cookie与服务器内存数据转换”规则将其还原为一个BlueoceanCookie对象后,转换规则参考前述BlueoceanCookie的解析,其结构如图14所示,表示广告D的轮播到位置2处,获取当前位置2的广告进行播放,然后移动指针,因为已到圆环的最后一位,所以新的指针位置将重新指向起点1,随后广告系统将此新的指针位置记录到用户Cookie中,覆盖上一次Cookie信息。结果如图15所示。
广告D在轮播过程中,创建的圆环模型内的轮播总数为2,因此广告轮播始终是在位置1和位置2之间来回循环,投放广告D在这两个位置上不同的素材文件。
从实现技术上讲,本发明提出了这样一种解决方案,通过蓝海联播的方式对视频的前贴广告进行播放,在蓝海联播中定义了一种数据结构来对用户的广告轮播历史信息进行记录,并提供了该数据客户端cookie与服务端内存之间的转换。在广告投放期间,所有在指定地区和分类的用户,都将由某视频网站的广告投放引擎解读其广告轮播数据,并由此数据实现多个广告的轮播效果。在广告投放引擎完成广告投放匹配后,会重新计算此数据,并序列化成一定格式,重新存储于浏览器Cookie中,在此过程中,广告投放引擎考虑到用户Cookie信息存储数据的最小化,尽可能减少了用户端Cookie的长度,同时又以最精简的方式实现了广告轮播效果,也尽可能的降低广告请求时长,改善用户体验。
本发明除方法发明外,还包含实现上述广告轮播方法的装置结构发明,附图16所示为本发明基于流媒体资源的广告轮播装置的结构示意图。
如附图16所示,本发明中的基于流媒体资源的广告轮播的装置可包括:广告请求接收模块,广告资源包获取模块,轮播位置确定模块,广告素材文件放置模块四个基本模块。为了使得本发明的方案更为优化,本发明的装置可选的还可包括业务保护流量判断模块,广告素材文件判断模块,广告位置占用判断模块三个优选模块。以下对本发明装置各模块的工作过程做示例性介绍。
广告请求接收模块,用于在用户访问视频,此次流量进入广告投放引擎后,接收用户的广告请求;
广告资源包获取模块,用于根据广告请求获取相应的广告资源包,其中该资源包中包含多段广告素材文件;
轮播位置确定模块,用于判断当前指向所述多段广告素材文件的轮播位置,将当前轮播位置下移一个单元指向另一段广告素材文件;
广告素材文件放置模块,用于获取当前广告资源包在新的轮播位置下的广告素材文件,并在用户访问视频的相应位置上放置该广告素材文件。
通过上述四个模块的工作,实现了多段广告素材文件的轮换播放。
此外,其中所述广告资源包获取模块可进一步根据广告请求用户所处的地区位置或者用户访问视频的不同分类获取不同的广告资源包,从而进一步满足了客户需求。
其中将当前轮播位置下移一个单元指向另一段广告素材文件,可以采用顺序轮播或随机轮播的方式。
如附图16所示,所述装置还可进一步包括有一个业务保护流量判断模块,用于判断用户访问的视频是否是业务保护流量,如果是,则不进行广告投放,直接返回;否则进入后续广告投放环节,这样可以避免对于无需加载广告视频的流量进行广告视频的加载。
如前文对于本发明方法实施例的介绍,用户浏览器端可植入有用于轮播广告的Cookie,该Cookie信息中保存有当前的广告轮播位置,并在广告轮播之后更新该广告轮播位置。
如附图16所示,所述装置还可进一步包括有一个广告素材文件判断模块,用于当判断当前指向的轮播位置上广告素材文件为空时,随机选择所述多段广告素材文件中的一段作为初始轮播位置。
如附图16所示,所述装置还可进一步包括有一个广告位置占用判断模块,用于判断流媒体资源上相应的广告位置是否已经被占用,若被占用,则跳过广告轮播。
本领域的技术人员应该理解,本发明的方法和装置可以采用硬件、软件、或硬件和软件相结合的方式,通过微处理器、数字信号处理器、现场可编程逻辑单元、或门阵列等各种方式实现。
综上所述,虽然本发明已以优选实施例披露如上,然而其并非用以限定本发明。本发明所属技术领域的普通技术人员,在不脱离本发明的精神和范围内,可作各种变动与修饰。因此,本发明的保护范围当视后附的权利要求所界定的范围为准。