一种广告素材分发的方法及装置
技术领域
本申请涉及数字媒体播放
技术领域
,尤其是涉及一种广告素材分发的方法及装置。背景技术
数字媒体播放系统是一个很常见的系统,如商圈的大型 LED 屏幕、电梯里的广告屏等都采用该系统进行管理。在数字媒体播放系统中素材的分发尤为重要,因为其涉及到服务器的带宽大小、带宽使用率,以及素材的到达率、素材到达设备的时效率等。
目前在多数的播放系统中,主要采用以下分发技术:
(1)主动拉取技术主要为广告设备定时循环向服务器申请获取广告素材,一般控制在1至4 分钟向服务器发起一次请求;这种不断向服务器请求的拉取技术主要存在造成资源的浪费的缺陷,一方面,由于发起的无数次请求中,可能只有一次能够获取到素材,这样就造成了广告设备的性能资源浪费,另一方面,当广告设备的数量上在1000 台以上时,所有广告设备都会一起向服务器发起请求,会占用大量的服务器带宽资源,如果服务器配置较低,将会引起服务器带宽占满,甚至服务器宕机。
(2)推送分发技术采用推送机制,服务器与各个广告设备建立通信连接,在有新广告发布的时候,通过通信连接通道,通知每个广告设备来下载素材,广告设备在收到信息后,进行广告的下载。推送分发技术解决了广告设备一直定时循环发起请求的问题,减少了广告设备资源的浪费,但是在分发一个新广告的时候,所有的广告设备还是会同时向服务器来请求下载广告素材,同样会占用大量的服务器带宽资源,也会出现服务器带宽的占满的情况,如果广告设备网络环境较差,有可能会下载失败,无法保证服务器带宽有效的使用率和广告素材的达到率。
发明内容
为了减少在素材分发时对广告设备、服务器的资源占用,保证了服务器带宽的有效使用率和广告素材的有效达到率,本申请提供了一种广告素材分发的方法及装置。
第一方面,本申请提供一种广告素材分发的方法,采用如下的技术方案:
一种广告素材分发的方法,包括:
选择待发布广告本次下载的素材以及用于下载所述素材的第一广告设备;
按照下载速度对所述第一广告设备进行排序;
将排序的所述第一广告设备依次配置预设数量至按照先后排序的每个下载时段,并形成待发布广告的素材下载列表;
在每个所述下载时段开始前预设时间,根据所述素材下载列表向所述下载时段配置的所述第一广告设备发送所述素材的下载通知。
通过采用上述技术方案,不仅避免广告设备一直的循环查询,节省广告设备的资源开销,提高了广告设备的性能;而且服务器同时请求的数量大幅度减少,有效降低服务器配置要求和资源占用,节约服务器成本,提高素材分发的可靠性,保证素材到达广告设备的达到率。
可选的,在所述选择待发布广告本次下载的素材以及用于下载所述素材的第一广告设备之前还包括:
设置每台广告设备初始的所述下载速度、所述预设数量以及所述下载时段的预设时长,并按照所述预设时长将每天划分为多个所述下载时段;
其中,所述预设数量小于等于服务器可以支持的广告设备最大并发下载数量。
可选的,所述方法还包括:
从所述第一广告设备接收并存储第一下载速度;其中,所述第一下载速度为所述第一广告设备根据每次下载的素材的大小和下载所述素材的时间计算得到的下载速度;
求对应所述第一广告设备所有第一下载速度的平均值,并将对应所述第一广告设备的所述下载速度更新为所述平均值。
可选的,所述方法还包:
接收来自所述第一广告设备的下载成功消息,并根据所述下载成功消息将所述素材下载列表中对应第一广告设备的状态更新为下载成功;其中,所述下载成功消息为所述第一广告设备根据下载通知下载所述素材成功时发送的消息;
在所述素材下载列表中所有第一广告设备的状态都为下载成功时,将所述素材的下载状态更新为已下载完成。
可选的,所述在每个所述下载时段开始前预设时间,根据所述素材下载列表向所述下载时段配置的所述第一广告设备发送所述素材的下载通知,包括:
定时获取当前时间;
查询所述素材下载列表判断所述当前时间是否在所述下载时段开始前预设时间;
如果是在所述下载时段开始前所述预设时间,根据所述素材下载列表向所述下载时段配置的第一广告设备发送所述素材的下载通知。
可选的,所述根据所述素材下载列表向所述下载时段配置的所述第一广告设备发送所述素材的下载通知包括:
根据所述素材下载列表,通过与广告设备之间构建的socket通道向所述下载时段配置的所述第一广告设备发送所述素材的下载通知。
可选的,所述根据所述素材下载列表,通过与广告设备之间构建的socket通道向所述下载时段配置的所述第一广告设备发送所述素材的下载通知包括:
根据所述素材下载列表获取所述下载时段配置的所有第一广告设备,并形成所述下载时段的第一下载列表;
依次调用与所述第一下载列表中每个所述第一广告设备之间的socket通道,通过socket通道向所述下载时段的所述第一广告设备发送所述素材的下载通知。
可选的,在调用与所述第一下载列表中每个所述第一广告设备之间的socket通道时,如果无法调用socket通道发送所述素材的下载通知,还包括:
将对应所述第一广告设备加入失败队列;
在所述待发布广告的预设投放时间内,循环调用与所述失败队列中所述第一广告设备之间的socket通道;
如果能够调用socket通道,通过socket通道向对应所述第一广告设备发送所述素材的下载通知,并将所述第一广告设备从所述失败队列中移出。
可选的,所述方法还包括:
基于与所有广告设备之间的socket通道构建socket心跳机制;
定期通过与所有广告设备之间的socket通道发送或接收心跳消息判定所述广告设备是否在线;
如果广告设备掉线,与掉线所述广告设备进行重连;
如果判定所述广告设备连续不在线的次数达到预设次数,向运维设备发送提示消息。
第二方面,本申请提供一种广告素材分发的装置,采用如下的技术方案:
一种广告素材分发的装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述一种广告素材分发的方法。
通过采用上述技术方案,不仅避免广告设备一直循环查询,节省了广告设备的资源开销,提高了广告设备的性能;而且服务器同时请求的数量大幅度减少,有效降低服务器配置要求和资源占用,节约服务器成本,提高素材分发的可靠性,保证素材到达广告设备的达到率。
综上所述,本申请包括以下至少一种有益技术效果:
1.实现广告素材合理的分时段下载和广告设备的分时段通知,不仅避免广告设备一直循环查询,节省广告设备的资源开销,提高广告设备的性能;而且服务器同时请求的数量减少,有效降低服务器配置要求和资源占用,节约服务器成本,提高素材分发的可靠性,保证素材到达广告设备的达到率;
2.实时更新广告设备的平均下载速度,通过结合广告设备实际的平均下载速度,合理的将广告设备的下载分配到不同时段下载,保证了服务器资源的合理利用。
附图说明
图1是本申请实施例提供的一种广告素材分发的方法的流程图;
图2是本申请实施例中步骤S400的流程图;
图3是本申请实施例中步骤S500的流程图;
图4是本申请实施例提供的一种广告素材分发的装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图1-4及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请实施例公开一种广告素材分发的方法,应用于数字媒体播放系统的服务器。参照图1,作为一种广告素材分发的方法的一种实施方式,广告素材分发的方法包括:
步骤S100、设置每台广告设备初始的下载速度、预设数量以及下载时段的预设时长,并按照预设时长将每天划分为多个下载时段,完成各个参数的初始化。
在本实施例中,广告设备的初始下载速度可以默认设置为预设值,也可以根据每个广告设备的实际网络环境设置对应的下载速度。在设置预设数量时只要小于等于服务器可以支持的广告设备最大并发下载数量即可;而数字媒体播放系统服务器可以支持的广告设备最大并发下载数量是由当前服务器的基础配置、带宽决定的;如数字媒体播放系统服务器可以支持的广告设备最大并发下载数量为200个或500个,预设数量小于等于200个或500。
本实施例的每个下载时段时长可以相同,也可以根据需要在所有下载时段中设定一个以上不同时长的下载时段;多个下载时段可以在时间上连续也不可不连续;例如设置系统的下载时段时长为1小时,即下载时段为每小时一个分段,这样,每天最多能划分24个下载时段;即……,08:00:00-08:59:59,09:00:00-09:59:59,10:00:00-10:59:59,……,13:00:00-13:59:59,14:00:00-14:59:59……。
步骤S200、从待发布广告的所有素材中选择用于本次下载的素材,以及从系统的所有广告设备中(从存储的系统的广告设备列表中)筛选用于下载本次下载素材的第一广告设备,以及从待发布广告的所有素材中选择用于本次下载的素材;在本实施例中,根据客户的广告投放地理范围、广告投放的广告设备类型等要求以及本次下载的素材对广告设备的要求,从数字媒体播放系统所有广告设备中选择出第一广告设备,用于发布待发布的广告。
步骤S300、按照下载速度对第一广告设备进行排序;即将下载速度快的第一广告设备的唯一标识排到最后,下载速度慢的放到最前面,或者,将下载速度慢的第一广告设备的唯一标识排到最后,下载速度快的放到最前面。
为了结合广告设备实际的下载速度,更好、更合理的将广告设备的下载分配到不同时段下载,保证服务器资源的合理利用,本实施例提供的方法还包括从第一广告设备接收并存储该第一广告设备每次下载素材的第一下载速度,并获取该第一广告设备历史上所有第一下载速度,求所有第一下载速度的平均值;将该第一广告设备用于排序的下载速度更新为第一下载速度的平均值。在本实施例中,第一下载速度为第一广告设备根据每次下载的素材的大小和下载素材的时间计算得到的下载速度,即素材的大小除以下载素材的时间得到第一下载速度。
步骤S400、将排序的所述第一广告设备依次配置预设数量至按照先后排序的每个下载时段,并形成待发布广告的素材下载列表;在该素材下载列表中每个下载时段对应预设数量的第一广告设备的唯一标识,使每个下载时段只有预设数量的第一广告设备可以进行下载,实现第一广告设备在不同时间段进行下载。
步骤S500、在每个下载时段开始前预设时间(如预设时间为10分钟)根据素材下载列表(下载时段配置的第一广告设备的唯一标识)向该下载时段对应的所有第一广告设备发送素材的下载通知,第一广告设备接收到素材的下载通知后,根据下载通知下载素材,并在成功下载素材后发送下载成功消息。
步骤S600、接收来自第一广告设备的下载成功消息,并根据下载成功消息将素材下载列表中对应第一广告设备的状态更新为下载成功,以避免重复发送素材的下载通知;在素材下载列表中所有第一广告设备的状态都为下载成功时,为了避免待发布广告每种素材的重复下载,将素材的下载状态更新为已下载完成。
本申请实施例为用于发布待发布广告的第一广告设备分配不同下载时段,每个第一广告设备只在对应下载时段开始素材的下载,并在每个下载时段开始前向对应第一广告设备发送素材的下载通知,实现广告素材合理的分时段下载和广告设备的分时段通知;不仅避免广告设备一直的循环查询,节省广告设备的资源开销,提高广告设备的性能;而且服务器同时接收请求的数量减少,有效降低服务器配置要求和资源占用,节约服务器成本,提高素材分发的可靠性,保证素材到达广告设备的达到率。
在本实施例中,如图2所示,步骤S400包括以下步骤:
步骤S401、对排序的第一广告设备的唯一标识依次分成每组包括预设数量第一广告设备唯一标识的设备组。
步骤S402、按照下载时段的先后次序为每个下载时段配置一个设备组。为保证下载速度慢的第一广告设备能够在待发布广告发布前下载完成,在本实施例中,当前下载时段设备组中第一广告设备的下载速度大于等于前一个下载时段设备组中第一广告设备的下载速度,小于等于后一个下载时段设备组中第一广告设备的下载速度;即下载时段09:00:00-09:59:59设备组中第一广告设备的下载速度大于等于下载时段08:00:00-08:59:59设备组中第一广告设备的下载速度,小于等于下载时段10:00:00-10:59:59设备组中第一广告设备的下载速度。
例如,预设数量为200个,第一广告设备为1000个,下载时段为每小时一个分段,分为08:00:00-08:59:59,09:00:00-09:59:59,10:00:00-10:59:59,……,13:00:00-13:59:59,14:00:00-14:59:59七个下载时段,首先从排序(按照平均下载速度由小到大排序)后的第一广告设备的唯一标识中前200个加入到下载时段08:00:00-08:59:59,第二个200个加入到下载时段09:00:00-09:59:59,第三个200个加入到下载时段10:00:00-10:59:59,依次加入,直到所有第一广告设备的唯一标识都配置至对应下载时段,形成素材下载列表。
如图3所示,在本申请的另一实施例中,步骤S500包括:
步骤S501、启动同步线程;
步骤S502、定时(例如每分钟)获取当前时间(服务器时间);
步骤S503、查询素材下载列表,判断当前时间是否在下载时段开始前预设时间(例如,预设时间为10分钟,判断当前时间是否为下载时段开始前10分钟),如果是,执行步骤S504;否则,执行步骤S502;
步骤S504、根据素材下载列表向该下载时段配置的所有第一广告设备发送素材的下载通知。在本实施例中,步骤S504具体为根据所述素材下载列表,通过与广告设备之间构建的socket通道向所述下载时段配置的所述第一广告设备发送所述素材的下载通知。
本实施根据所述素材下载列表,通过与广告设备之间构建的socket通道向所述下载时段配置的所述第一广告设备发送所述素材的下载通包括:
根据素材下载列表获取该下载时段配置的所有第一广告设备(唯一标识),并形成该下载时段的第一下载列表;
依次调用与第一下载列表中每个第一广告设备之间的socket通道,通过socket通道向第一下载列表中的第一广告设备发送素材的下载通知。
在实际应用中,常常会出现因为网络原因或广告设备系统崩溃,导致在调用与第一下载列表中每个第一广告设备之间的socket通道时,无法调用socket通道发送素材的下载通知,为了保证素材的下载通知达到每个第一广告设备,将对应第一广告设备(唯一标识)加入失败队列;在待发布广告的预设投放时间(预设投放时间等于待发布广告停止投放时间与开始投放时间之差)内,循环调用失败队列中第一广告设备的socket通道;如果能够调用socket通道,通过socket通道向对应第一广告设备发送素材的下载通知,并将第一广告设备(唯一标识)从失败队列中移出,避免重复发送。
为了保证通信顺畅,使素材下载通知顺利到达第一广告设备,本实施例还基于与所有广告设备之间的socket通道构建了socket心跳机制,定期通过与所有广告设备之间的socket通道发送或接收心跳消息判定广告设备是否在线,即定期通过socket通道向广告设备发送或从广告设备接收心跳包,通过心跳包检测(心跳包是否发送成功或是否接收到心跳包)来判断对应第一广告设备是否在线;如果因为网络原因或广告设备系统崩溃广告设备掉线(无法通过socket通道与广告设备通信),与掉线广告设备进行重连,否则,继续进行心跳包检测;如果检测广告设备长时间不在线(广告设备连续判定不在线的次数达到预设次数为长时间不在线),则向运维设备发送提示消息,提示运维人员进行处理。
另外,本申请实施例还公开了一种广告素材分发的装置,部署于数字媒体播放系统;具体地,该装置包括:一个或多个处理器和存储器,如图4所示,以一个处理器200及存储器100为例。处理器200和存储器100可以通过总线或者其他方式连接,如以通过总线连接为例。
存储器100作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本申请实施例中的一种广告素材分发的方法。处理器200通过运行存储在存储器100中的非暂态软件程序以及指令,从而实现上述本申请实施例中的一种广告素材分发的方法。
存储器100可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储执行上述实施例中的一种广告素材分发的方法所需的数据等。此外,存储器100可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述实施例中的一种广告素材分发的方法所需的非暂态软件程序以及指令存储在存储器中,当被一个或者多个处理器执行时,执行上述实施例中的一种广告素材分发的方法,例如,执行以上描述的图1中的方法步骤S100至步骤S600、图2中的方法步骤S401至步骤S402以及图3中的方法步骤S501至步骤S504。
以上均为本申请的较佳实施例,并非依此限制本申请的保护范围,本说明书(包括摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。