一种基于业务量的广告投放方法及服务器与流程

文档序号:16362002发布日期:2018-12-22 08:13阅读:192来源:国知局
一种基于业务量的广告投放方法及服务器与流程

本发明涉及广告投放领域,尤指一种基于业务量的广告投放方法及服务器。

背景技术

随着智能终端设备的普及,各大硬件厂商对于其所生产的硬件数据越来越重视,其互联网运营板块的市场红利也越来越凸显出来,网络广告逐渐成为了一种主流广告投放方式。

与传统广告媒体相对比,互联网广告覆盖范围广,成本低,互动性强等特点,并且更加贴切现在人们的生活方式。

在精准广告投放的业务信息字段的匹配过程中,往往采用单一模式进行数据提取,其中最主要的是顺序匹配和快速精准查询两种模式。基于hbase广告数据表的快速精准查询方式,其数据匹配提取时间复杂度可以达到o(1)的效率,但是对于历史业务数据的删除和修改操作比较困难,效率较低,主要是针对广告业务比较多,对匹配效率比较敏感,即牺牲存储空间换取查询时间。而基于mysql广告数据表的顺序遍历查询方式,主要是对业务量比较少,对查询匹配效率要求比较低的广告业务比较实用,并且能够及时更新业务字段数据库信息,但是处理数据的速度比较慢。两种模式各有利弊,单一使用某一种模式,当业务量过大或者过小都会影响业务数据信息字段提取的效率。

因此,本专利提出了一种基于业务量的广告投放方法及系统。



技术实现要素:

本发明的目的是提供一种基于业务量的广告投放方法及服务器,根据广告业务量的多少,对广告信息的匹配及提取方式进行调整,兼顾了广告投放效率以及更新数据库的难易程度。

本发明提供的技术方案如下:

本发明提供了一种基于业务量的广告投放方法,其特征在于,包括步骤:统计广告业务量,并判断所述广告业务量是否达到预设业务量;若所述广告业务量达到预设业务量,则根据目标设备的id,通过精准查找模式,在hbase广告数据表中查找出目标广告业务对应的广告信息;若所述广告业务量未达到预设业务量,则根据目标设备的id,通过顺序查找模式,在mysql广告数据表中查找出目标广告业务对应的广告信息;将所述目标广告业务对应的广告信息投放至目标设备。

优选的,还包括步骤:爬取与广告业务相关的网络数据;并根据从所述广告业务相关的网络数据中提取出的投放关键词制定投放匹配规则;从历史网络数据中检测出与所述投放匹配规则相匹配的日志信息、所述日志信息对应的设备id以及所述日志信息对应的网络行为时间;根据所述日志信息对应的设备id,所述日志信息对应的网络行为时间,以及广告业务对应的广告投放内容,构建所述hbase广告数据表和mysql广告数据表。

优选的,构建所述hbase广告数据表的具体步骤为:构建hbase广告数据表结构,所述hbase广告数据表结构包括存放设备id的主键、存放网络行为时间的时间列族和存放广告信息的广告列族;判断所述日志信息对应的设备id是否存在于所述hbase广告数据表的主键中;若所述日志信息对应的设备id在所述hbase广告数据表的主键中,则直接将所述广告业务对应的广告信息插入所述设备id对应的广告列族中,并将所述日志信息对应的网络行为时间插入所述设备id对应的时间列族中;若所述设备id不存在于所述广告业务初始匹配表的主键中,则将所述设备id插入所述广告hbase表的主键中,将所述广告业务对应的广告信息插入所述设备id对应的广告列族中,并将所述日志信息对应的网络行为时间插入所述设备id对应的时间列族中。

优选的,构建所述mysql广告数据表的具体步骤为:创建mysql广告数据表结构,包括:由广告需求日期和设备id构成的主键,以及主键对应的广告分类、广告投放内容、广告投放截止日期;判断所述日志信息对应的设备id是否在mysql广告数据表的主键中;若不在,则将所述广告业务的广告需求日期以及所述日志信息对应的id插入到所述mysql广告数据表的主键中,将所述广告业务对应的广告信息插入到所述设备id对应的广告投放内容中,并根据所述广告业务的广告投放需求,填写广告投放截止日期;若在,则继续判断所述广告业务对应的广告信息是否在所述设备id对应的广告投放内容中;若所述广告业务对应的广告信息不在所述设备id对应的广告投放内容中,则将所述广告业务对应的广告信息插入到所述设备id对应的广告投放内容中,并根据所述广告业务的广告投放需求,填写广告投放截止日期。

优选的,还包括步骤:对所述mysql广告数据表中,广告投放截止日期超过当前日期的广告数据进行删除。

优选的,还包括步骤:查看目标设备在当前时间段内是否有网络行为记录;若有,则将所述目标广告业务对应的广告信息投放至目标设备;否则,放弃对所述目标设备的广告投放。

优选的,还包括步骤:检测目标广告业务对应的广告信息是否投放至所述目标设备;若未投放成功,则根据所述目标设备的当前网络行为记录,继续对所述目标设备进行广告投放或放弃对所述目标设备进行广告投放。

本发明还提供了一种基于业务量的广告投放服务器,服务器包括:统计模块,用于统计广告业务量,并判断所述广告业务量是否达到预设业务量;查找模块,与所述统计模块电连接,用于若所述广告业务量达到预设业务量,则根据目标设备的id,通过精准查找模式,在hbase广告数据表中查找出目标广告业务对应的广告信息;查找模块,还用于若所述广告业务量未达到预设业务量,则根据目标设备的id,通过顺序查找模式,在mysql广告数据表中查找出目标广告业务对应的广告信息;广告投放模块,与所述查找模块电连接,用于将所述目标广告业务对应的广告信息投放至目标设备。

优选的,所述服务器还包括:爬取模块,用于根据爬虫技术,爬取与广告业务相关的网络数据;规则制定模块,与所述爬取模块电连接,用于根据从所述广告业务相关的网络数据中提取出的投放关键词制定投放匹配规则;检测模块,与所述规则制定模块电连接,从历史网络数据中检测出与所述投放匹配规则相匹配的日志信息、所述日志信息对应的设备id以及所述日志信息对应的网络行为时间;构表模块,与所述检测模块电连接,用于根据所述日志信息对应的设备id,所述日志信息对应的网络行为时间,以及广告业务对应的广告投放内容,构建所述hbase广告数据表和mysql广告数据表。

优选的,所述服务器还包括:

数据更新模块,用于对所述mysql广告数据表中,广告投放截止日期超过当前日期的广告数据进行删除。

通过本发明提供的一种基于业务量的广告投放方法及服务器,能够带来以下至少一种有益效果:

1、由于hbase广告数据表在数据的删除和修改方面存在弊端,而mysql广告数据表在广告业务量较大时,广告信息的查询匹配效率上会存在弊端,因此单一使用任何一个数据表,效果都不会很理想。本发明结合了上述两种数据库的优势,在广告业务量较小时,采用mysql广告数据库来进行广告投放的查询和匹配,其查询匹配效率在可接受范围内,并且对于数据的修改比较容易。当广告业务量较大时,采用hbase广告数据库来进行广告投放的查询和匹配,能够以o(1)的时间复杂程度实现高效的广告信息查询匹配。

2、为了防止在mysql广告数据表的使用过程中业务量过快增长,本发明在广告业务设置投放截止日期,当超过当前日期后,对过期的广告业务数据进行清除,减少mysql广告数据表的业务量。

3、在进行广告投放后,本发明还设有回访机制,检测广告投放是否成功,若未投放成功,会根据所述目标设备的当前网络行为记录,选择继续对所述目标设备进行广告投放或放弃对所述目标设备进行广告投放,增加广告投放的有效性。

附图说明

下面将以明确易懂的方式,结合附图说明优选实施方式,对一种基于业务量的广告投放方法及服务器的上述特性、技术特征、优点及其实现方式予以进一步说明。

图1是本发明一种基于业务量的广告投放方法的一个实施例的流程图;

图2是本发明一种基于业务量的广告投放方法的另一个实施例的流程图;

图3是本发明一种基于业务量的广告投放服务器的一个实施例的结构示意图。

附图标号说明:

1-统计模块、2-查找模块、3-广告投放模块、4-爬取模块、5-规则制定模块、6-检测模块、7-构表模块、8-数据更新模块。

具体实施方式

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。

为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。

本发明提供了一种基于业务量的广告投放方法的一个实施例,如图1所示,包括:

s1统计广告业务量,并判断所述广告业务量是否达到预设业务量;

s2若所述广告业务量达到预设业务量,则根据目标设备的id,通过精准查找模式,在hbase广告数据表中查找出目标广告业务对应的广告信息;

s3若所述广告业务量未达到预设业务量,则根据目标设备的id,通过顺序查找模式,在mysql广告数据表中查找出目标广告业务对应的广告信息;

s4将所述目标广告业务对应的广告信息投放至目标设备。

具体的,预设业务量设为p,业务匹配模式标志为tag(tag=0表示通过mysql广告数据包进行顺序遍历查询;tag=1表示通过hbase广告数据表进行快速精准查询)。

由于mysql数据库的特性,其匹配查找方式是通过遍历的方式来完成,因此在数据库中的数据较多时,其查询匹配的时间复杂程度会急剧上升,导致数据的查询匹配效率极低,但是mysql数据库的好处是便于对数据的添加、删除和修改。

在广告投放初期时,由于业务量还比较小,其广告数据的查询和匹配所用的时间处于可接受的范围,并且处于初期阶段时,需要时常对广告数据进行更新,因而在业务量number_job<p时,可采用mysql广告数据表进行顺序遍历模式。

当业务量逐渐变大时,mysql数据库的弊端会凸显出来,对于广告数据的查询和匹配速度非常慢,投放一个广告所需要的时间非常久,达不到广告及时投放的效果,而hbase数据库能够通过o(1)的时间复杂程度进行广告数据的查询和匹配,效率非常高。因此当业务量number_job>p时,可采用hbase广告数据表进行广告数据的查询和匹配。

本实施例结合了hbase数据库和mysql数据库的各自优势,在广告投放过程中,根据业务量的不同,选择不同的广告数据表类查找和匹配广告数据,能够兼顾广告投放的效率以及广告数据表的更新,具有非常强的实用性。

本发明还提供了一种基于业务量的广告投放方法的一个实施例,如图2所示,包括:

s01爬取与广告业务相关的网络数据;并根据从所述广告业务相关的网络数据中提取出的投放关键词制定投放匹配规则;

s02从历史网络数据中检测出与所述投放匹配规则相匹配的日志信息、所述日志信息对应的设备id以及所述日志信息对应的网络行为时间;

s03根据所述日志信息对应的设备id,所述日志信息对应的网络行为时间,以及广告业务对应的广告投放内容,构建所述hbase广告数据表和mysql广告数据表。

构建所述hbase广告数据表的具体步骤为:

构建hbase广告数据表结构,所述hbase广告数据表结构包括存放设备id的主键、存放网络行为时间的时间列族和存放广告信息的广告列族;

判断所述日志信息对应的设备id是否存在于所述hbase广告数据表的主键中;

若所述日志信息对应的设备id在所述hbase广告数据表的主键中,则直接将所述广告业务对应的广告信息插入所述设备id对应的广告列族中,并将所述日志信息对应的网络行为时间插入所述设备id对应的时间列族中;

若所述设备id不存在于所述广告业务初始匹配表的主键中,则将所述设备id插入所述广告hbase表的主键中,将所述广告业务对应的广告信息插入所述设备id对应的广告列族中,并将所述日志信息对应的网络行为时间插入所述设备id对应的时间列族中。

构建所述mysql广告数据表的具体步骤为:

创建mysql广告数据表的信息字段结构,包括:由广告需求日期和设备id构成的主键,以及主键对应的广告分类、广告投放内容、广告投放截止日期;

判断所述日志信息对应的设备id是否在mysql广告数据表的主键中;

若不在,则将所述广告业务的广告需求日期以及所述日志信息对应的id插入到所述mysql广告数据表的主键中,将所述广告业务对应的广告信息插入到所述设备id对应的广告投放内容中,并根据所述广告业务的广告投放需求,填写广告投放截止日期;

若在,则将所述广告业务对应的广告信息插入到所述设备id对应的广告投放内容中,并根据所述广告业务的广告投放需求,填写广告投放截止日期。

s04对所述mysql广告数据表中,广告投放截止日期超过当前日期的广告数据进行删除。

s1统计广告业务量,并判断所述广告业务量是否达到预设业务量;

s2若所述广告业务量达到预设业务量,则根据目标设备的id,通过精准查找模式,在hbase广告数据表中查找出目标广告业务对应的广告信息;

s3若所述广告业务量未达到预设业务量,则根据目标设备的id,通过顺序查找模式,在mysql广告数据表中查找出目标广告业务对应的广告信息;

s41查看目标设备在当前时间段内是否有网络行为记录;

s42若有,则将所述目标广告业务对应的广告信息投放至目标设备;

s43否则,放弃对所述目标设备的广告投放。

s51检测目标广告业务对应的广告信息是否投放至所述目标设备;

s52若未投放成功,则根据所述目标设备的当前网络行为记录,继续对所述目标设备进行广告投放或放弃对所述目标设备进行广告投放。

具体的,本发明的广告投放机制主要围绕hbase广告数据表和mysql广告数据表来完成,因此首先需要根据广告业务需求建立hbase广告数据表和mysql广告数据表。本实施例当前的广告业务以华为p20手机、小米小爱音箱、斐讯体脂秤为例进行说明。

在构建广告hbase表时,需要先构架其基础结构框架,包括一个rowkey主键,以及时间列族和广告列族。

主键用来存储投放设备的设备id,每个设备id都有对应有广告列族和时间列族。广告列族包括至少一个一级广告分类(例如华为、小米、斐讯等总分类),每个一级广告标签包括至少一个二级广告分类(如手机、音箱、体脂秤等细分类),每个二级广告分类包括至少一个广告内容集合,每个广告内容集合包括至少一个广告投放内容,每个广告投放内容之间用“;”隔开;时间列簇用来储存每个设备在浏览广告业务相关网页时的时间。

在构建mysql广告数据表时,需要设计设计mysql广告数据表的match_info信息字段结构,包括:广告需求日期和硬件设备id构成的主键,以及广告分类(包括一级广告分类、二级广告分类),广告内容,广告投放截至日期。

其次,需要将广告信息以及需要投放的设备信息添加至广告hbase广告数据表以及mysql广告数据表中,以添加华为p20手机的相关广告投放信息为例:

a、根据爬虫技术,爬取华为p20手机相关的网络数据(包括华为官网、微博、论坛等),提取出与目标广告业务相关的关键词,例如在华为官网上可以爬取到的关键词“huawei”、“p20”“手机”等投放关键词,然后可以通过这些关键词制定投放匹配规则,例如满足上述两个投放关键词即可满足投放匹配规则。

b、由于每个终端设备在上网浏览时都会有相应的日志记录,这些日志记录会记载到大数据平台中,通过大数据平台hadoop架构的hive库可提取出每个终端的历史网络数据。由此,可以从历史网络数据中提取出与所述投放匹配规则相匹配的日志信息、所述日志信息对应的设备id以及所述日志信息对应的网络行为时间。

例如,某用户通过id1设备在华为官网上浏览华为p20手机时,会产生华为p20手机的相关的日志记录,通过若日志记录满足投放匹配规则(例如日志信息中包含了“华为”、“p20”等关键词),则将此设备列为潜在投放设备一类,并通过日志信息获取此设备的id,以及日志信息的网络行为时间。若设备没有浏览与华为p20手机相关的网页,则日志记录不会满足投放匹配规则。

c、在向hbase广告投放框架中添加数据时,首先需要判断设备id是否存在于所述hbase广告数据表的主键中;

在hbase还没有数据的情况下,即id1还不在hbase表中时,可以直接将id1添加至主键,然后将华为p20的广告添加至id1对应的广告列族中,将id1设备在华为官网上浏览华为p20手机时产生的日志信息的网络行为时间添加至华为p20手机广告对应的时间列族中。

若id1已经在hbase表中,则会在主键处查找到id1,直接将华为p20手机的广告信息插入id1敌营的广告列族中,并将id1设备在华为官网上浏览华为p20手机时产生的日志信息的网络行为时间添加至华为p20手机广告对应的时间列族中即可。

同样的,也可以通过上述a、b、c三个步骤,添加小米小爱音箱的相关广告投放信息以及斐讯体脂称的相关广告投放信息,如下表所示:

在向mysql广告数据表中添加数据时,需要判断所述日志信息对应的设备id是否在mysql广告数据表的主键中;

若不在,则将所述广告业务的广告需求日期以及所述日志信息对应的id插入到所述mysql广告数据表的主键中,将所述广告业务对应的广告信息、插入到所述设备id对应的广告投放内容中,记录日志信息对应的网络行为时间,并根据所述广告业务的广告投放需求,填写广告投放截止日期;

若在,则继续判断所述广告业务对应的广告信息是否在所述设备id对应的广告投放内容中;若所述广告业务对应的广告信息不在所述设备id对应的广告投放内容中,则将所述广告业务对应的广告信息插入到所述设备id对应的广告投放内容中,并根据所述广告业务的广告投放需求,填写广告投放截止日期;若所述广告业务对应的广告信息在所述设备id对应的广告投放内容中,则不进行添加。

建立好的hbase广告数据表以及mysql广告数据表会根据广告业务的需求而不断更新,其数据处于不断变化的过程中。在进行目标广告的投放时,首先会考虑当前的广告业务量,(例如华为p20手机的广告业务需要投放的设备id为2000个,小米小爱音箱的广告业务需要投放的设备id为1500个,斐讯体脂称的广告业务需要投放的设备id为1800个,因此可以统计出广告业务量为5300个)。

若广告业务量达到预设业务量,即通过hbase广告数据表中查找出目标广告业务对应的广告信息。其投放过程为:

首先,获取目标设备的id,获取所述目标设备的当前网页的浏览记录,并判断所述当前网页是否加密;若所述当前网页加密,则放弃投放;若所述当前网页未加密,则判断id是否在hbase广告数据表中。

若id在hbase广告数据表中,则在所述广告业务匹配表中查看目标设备在当前时间段内是否有网络行为记录;若设备id在当前时间段内有网络行为记录,则根据目标设备的id,通过精准查找模式,在hbase广告数据表中以o(1)的时间复杂程度查找出目标广告业务(华为p20手机)对应的广告信息;若设备id在当前时间段内没有网络行为记录,则放弃投放。

通过上述投放方式,能够有效提高广告投放的有效性,使设备能够及时地接收到投放的广告。

若广告业务量未达到预设业务量,即通过mysql广告数据表中查找出目标广告业务对应的广告信息。其投放过程为:

首先,获取目标设备的id,获取所述目标设备的当前网页的浏览记录,并判断所述当前网页是否加密;若所述当前网页加密,则放弃投放;若所述当前网页未加密,则判断id是否在mysql广告数据表中。

若id在mysql广告数据表中,则在所述广告业务匹配表中查看目标设备在当前时间段内是否有网络行为记录;若设备id在当前时间段内有网络行为记录,则根据目标设备的id,通过精准查找模式,在mysql广告数据表中以便利查找的方式查找出目标广告业务(华为p20手机)对应的广告信息;若设备id在当前时间段内没有网络行为记录,则放弃投放。

同时,在广告投放平台设定有一个时钟定时器,定时执行一个脚本,将表mysql广告数据表中所有广告投放截至日期到期的广告业务进行删除操作。

例如:当前机器时间是2018年6月27日03:00:00,逐行获取mysql广告数据表中的广告投放截至日期,假设某行广告投放截至日期是2018年6月25日,在2018年6月27日03:00:00之前,该广告业务是历史广告业务,应删除,执行删除操作。

本发明提供了一种基于业务量的广告投放方法的一个实施例,包括:

统计模块1,用于统计广告业务量,并判断所述广告业务量是否达到预设业务量;

查找模块2,与所述统计模块1电连接,用于若所述广告业务量达到预设业务量,则根据目标设备的id,通过精准查找模式,在hbase广告数据表中查找出目标广告业务对应的广告信息;

查找模块2,还用于若所述广告业务量未达到预设业务量,则根据目标设备的id,通过顺序查找模式,在mysql广告数据表中查找出目标广告业务对应的广告信息;

广告投放模块3,与所述查找模块2电连接,用于将所述目标广告业务对应的广告信息投放至目标设备。

具体的,预设业务量threshold设为p,业务匹配模式标志为tag(tag=0表示通过mysql广告数据包进行顺序遍历查询;tag=1表示通过hbase广告数据表进行快速精准查询)。

由于mysql数据库的特性,其匹配查找方式是通过遍历的方式来完成,因此在数据库中的数据较多时,其查询匹配的时间复杂程度会急剧上升,导致数据的查询匹配效率极低,但是mysql数据库的好处是便于对数据的添加、删除和修改。

在广告投放初期时,由于业务量还比较小,其广告数据的查询和匹配所用的时间处于可接受的范围,并且处于初期阶段时,需要时常对广告数据进行更新,因而在业务量number_job<p时,可采用mysql广告数据表进行顺序遍历模式。

当业务量逐渐变大时,mysql数据库的弊端会凸显出来,对于广告数据的查询和匹配速度非常慢,推送一个广告所需要的时间非常久,达不到广告及时投放的效果,而hbase数据库能够通过o(1)的时间复杂程度进行广告数据的查询和匹配,效率非常高。因此当业务量number_job>p时,可采用hbase广告数据表进行广告数据的查询和匹配。

本实施例结合了hbase数据库和mysql数据库的各自优势,在广告投放过程中,根据业务量的不同,选择不同的广告数据表类查找和匹配广告数据,能够兼顾广告投放的效率以及广告数据表的更新,具有非常强的实用性。

如图3所示,本发明提供了一种基于业务量的广告投放方法的一个实施例,包括:

爬取模块4,用于根据爬虫技术,爬取与广告业务相关的网络数据;

规则制定模块5,与所述爬取模块4电连接,用于根据从所述广告业务相关的网络数据中提取出的投放关键词制定投放匹配规则;

检测模块6,与所述规则制定模块5电连接,从历史网络数据中检测出与所述投放匹配规则相匹配的日志信息、所述日志信息对应的设备id以及所述日志信息对应的网络行为时间;

构表模块7,与所述检测模块6电连接,用于根据所述日志信息对应的设备id,所述日志信息对应的网络行为时间,以及广告业务对应的广告投放内容,构建所述hbase广告数据表和mysql广告数据表。

数据更新模块8,与所述构表模块7电连接,用于对所述mysql广告数据表中,广告投放截止日期超过当前日期的广告数据进行删除。

统计模块1,与所述构表模块7电连接用于统计广告业务量,并判断所述广告业务量是否达到预设业务量;

查找模块2,与所述统计模块1和所述构表模块7电连接电连接,用于若所述广告业务量达到预设业务量,则根据目标设备的id,通过精准查找模式,在hbase广告数据表中查找出目标广告业务对应的广告信息;

查找模块2,还用于若所述广告业务量未达到预设业务量,则根据目标设备的id,通过顺序查找模式,在mysql广告数据表中查找出目标广告业务对应的广告信息;

广告投放模块3,与所述查找模块2电连接,用于将所述目标广告业务对应的广告信息投放至目标设备。

优选的,所述构表模块,还用于构建hbase广告数据表结构,所述hbase广告数据表结构包括存放设备id的主键、存放网络行为时间的时间列族和存放广告信息的广告列族;

判断所述日志信息对应的设备id是否存在于所述hbase广告数据表的主键中;

若所述日志信息对应的设备id在所述hbase广告数据表的主键中,则直接将所述广告业务对应的广告信息插入所述设备id对应的广告列族中,并将所述日志信息对应的网络行为时间插入所述设备id对应的时间列族中;

若所述设备id不存在于所述广告业务初始匹配表的主键中,则将所述设备id插入所述广告hbase表的主键中,将所述广告业务对应的广告信息插入所述设备id对应的广告列族中,并将所述日志信息对应的网络行为时间插入所述设备id对应的时间列族中。

优选的,所述构表模块,还用于创建mysql广告数据表结构,包括:由广告需求日期和设备id构成的主键,以及主键对应的广告分类、广告投放内容、广告投放截止日期;

判断所述日志信息对应的设备id是否在mysql广告数据表的主键中;

若不在,则将所述广告业务的广告需求日期以及所述日志信息对应的id插入到所述mysql广告数据表的主键中,将所述广告业务对应的广告信息插入到所述设备id对应的广告投放内容中,并根据所述广告业务的广告投放需求,填写广告投放截止日期;

若在,则继续判断所述广告业务对应的广告信息是否在所述设备id对应的广告投放内容中;

若所述广告业务对应的广告信息不在所述设备id对应的广告投放内容中,则将所述广告业务对应的广告信息插入到所述设备id对应的广告投放内容中,并根据所述广告业务的广告投放需求,填写广告投放截止日期。

具体的,本发明的广告投放机制主要围绕hbase广告数据表和mysql广告数据表来完成,因此首先需要根据广告业务需求建立hbase广告数据表和mysql广告数据表。本实施例当前的广告业务以华为p20手机、小米小爱音箱、斐讯体脂秤为例进行说明。

在构建广告hbase表时,需要先构架其基础结构框架,包括一个rowkey主键,以及时间列族和广告列族。

主键用来存储投放设备的设备id,每个设备id都有对应有广告列族和时间列族。广告列族包括至少一个一级广告分类(例如华为、小米、斐讯等总分类),每个一级广告标签包括至少一个二级广告分类(如手机、音箱、体脂秤等细分类),每个二级广告分类包括至少一个广告内容集合,每个广告内容集合包括至少一个广告投放内容,每个广告投放内容之间用“;”隔开;时间列簇用来储存每个设备在浏览广告业务相关网页时的时间。

在构建mysql广告数据表时,需要设计设计mysql广告数据表的match_info信息字段结构,包括:广告需求日期和硬件设备id构成的主键,以及广告分类(包括一级广告分类、二级广告分类),广告内容,广告投放截至日期。

其次,需要将广告信息以及需要投放的设备信息添加至广告hbase广告数据表以及mysql广告数据表中,本实施例以添加华为p20手机的相关广告投放信息为例:

a、根据爬虫技术,爬取华为p20手机相关的网络数据(包括华为官网、微博、论坛等),提取出与目标广告业务相关的关键词,例如在华为官网上可以爬取到的关键词“huawei”、“p20”“手机”等投放关键词,然后可以通过这些关键词制定投放匹配规则,例如满足上述两个投放关键词即可满足投放匹配规则。

b、由于每个终端设备在上网浏览时都会有相应的日志记录,这些日志记录会记载到大数据平台中,通过大数据平台hadoop架构的hive库可提取出每个终端的历史网络数据。由此,可以从历史网络数据中提取出与所述投放匹配规则相匹配的日志信息、所述日志信息对应的设备id以及所述日志信息对应的网络行为时间。

例如,某用户通过id1设备在华为官网上浏览华为p20手机时,会产生华为p20手机的相关的日志记录,通过若日志记录满足投放匹配规则(例如日志信息中包含了“华为”、“p20”等关键词),则将此设备列为潜在投放设备一类,并通过日志信息获取此设备的id,以及日志信息的网络行为时间。若设备没有浏览与华为p20手机相关的网页,则日志记录不会满足投放匹配规则。

c、在向hbase广告投放框架中添加数据时,首先需要判断设备id是否存在于所述hbase广告数据表的主键中;

在hbase还没有数据的情况下,即id1还不在hbase表中时,可以直接将id1添加至主键,然后将华为p20的广告添加至id1对应的广告列族中,将id1设备在华为官网上浏览华为p20手机时产生的日志信息的网络行为时间添加至华为p20手机广告对应的时间列族中。

若id1已经在hbase表中,则会在主键处查找到id1,直接将华为p20手机的广告信息插入id1敌营的广告列族中,并将id1设备在华为官网上浏览华为p20手机时产生的日志信息的网络行为时间添加至华为p20手机广告对应的时间列族中即可。

同样的,也可以通过上述a、b、c三个步骤,添加小米小爱音箱的相关广告投放信息以及斐讯体脂称的相关广告投放信息。

在向hbase广告数据表中添加数据时,需要判断所述日志信息对应的设备id是否在mysql广告数据表的主键中;

若不在,则将所述广告业务的广告需求日期以及所述日志信息对应的id插入到所述mysql广告数据表的主键中,将所述广告业务对应的广告信息插入到所述设备id对应的广告投放内容中,并根据所述广告业务的广告投放需求,填写广告投放截止日期;

若在,则继续判断所述广告业务对应的广告信息是否在所述设备id对应的广告投放内容中;若所述广告业务对应的广告信息不在所述设备id对应的广告投放内容中,则将所述广告业务对应的广告信息插入到所述设备id对应的广告投放内容中,并根据所述广告业务的广告投放需求,填写广告投放截止日期;若所述广告业务对应的广告信息在所述设备id对应的广告投放内容中,则不进行添加。

建立好的hbase广告数据表以及mysql广告数据表会根据广告业务的需求而不断更新,其数据处于不断变化的过程中。在进行目标广告的投放时,首先会考虑当前的广告业务量,(例如华为p20手机的广告业务需要投放的设备id为2000个,小米小爱音箱的广告业务需要投放的设备id为1500个,斐讯体脂称的广告业务需要投放的设备id为1800个,因此可以统计出广告业务量为5300个)。

若广告业务量达到预设业务量,即通过hbase广告数据表中查找出目标广告业务对应的广告信息。其投放过程为:

首先,获取目标设备的id,获取所述目标设备的当前网页的浏览记录,并判断所述当前网页是否加密;若所述当前网页加密,则放弃投放;若所述当前网页未加密,则判断id是否在hbase广告数据表中。

若id在hbase广告数据表中,则在所述广告业务匹配表中查看目标设备在当前时间段内是否有网络行为记录;若设备id在当前时间段内有网络行为记录,则根据目标设备的id,通过精准查找模式,在hbase广告数据表中以o(1)的时间复杂程度查找出目标广告业务(华为p20手机)对应的广告信息;若设备id在当前时间段内没有网络行为记录,则放弃投放。

通过上述投放方式,能够有效提高广告投放的有效性,使设备能够及时地接收到投放的广告。

若广告业务量未达到预设业务量,即通过mysql广告数据表中查找出目标广告业务对应的广告信息。其投放过程为:

首先,获取目标设备的id,获取所述目标设备的当前网页的浏览记录,并判断所述当前网页是否加密;若所述当前网页加密,则放弃投放;若所述当前网页未加密,则判断id是否在mysql广告数据表中。

若id在mysql广告数据表中,则在所述广告业务匹配表中查看目标设备在当前时间段内是否有网络行为记录;若设备id在当前时间段内有网络行为记录,则根据目标设备的id,通过精准查找模式,在mysql广告数据表中以便利查找的方式查找出目标广告业务(华为p20手机)对应的广告信息;若设备id在当前时间段内没有网络行为记录,则放弃投放。

同时,在广告投放平台设定有一个时钟定时器,定时执行一个脚本,将表mysql广告数据表中所有广告投放截至日期到期的广告业务进行删除操作。

例如:当前机器时间是2018年6月27日03:00:00,逐行获取mysql广告数据表中的广告投放截至日期,假设某行广告投放截至日期是2018年6月25日,在2018年6月27日03:00:00之前,该广告业务是历史广告业务,应删除,执行删除操作。

应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1