基于线索收集的广告投放引擎系统的制作方法

文档序号:14837016发布日期:2018-06-30 12:51阅读:233来源:国知局
本发明涉及数据处理领域,尤其涉及一种基于线索收集的广告投放引擎系统。
背景技术
::现有广告平台投放引擎系统包含三大块,依次为广告检索单元、广告售卖单元和数据处理单元。其中与品牌广告最相关也是最核心的部分:广告检索单元的在线投放模块,广告售卖单元中的库存分配模块和流量预估模块。其中流量预估模块是基础,在线投放模块和库存分配模块依赖于流量预估模块。尽管广告平台投放引擎系统实现了在线投放和流量预估,但是,还存在以下不足:1、只做广告位数据的露出,功能单一,效果监控功能和订单收集功能独立于投放引擎系统增加部署上的难度和运维的成本。2、因为广告结算方式是基于CPC、CPM或是根据广告的点击量和浏览量进行计费,易被媒体方作弊。3、因为请求与曝光系统独立于现有广告平台投放引擎系统工作,因此投放引擎系统在读取请求数据与曝光数据前需先去请求与曝光系统读取数据。然后将数据发送至实时计算平台进行计费,由于实时计算平台流量十分巨大,对于以CPC和CPM来结算的客户来说不能及时实现流量结算,存在延时,造成该广告位流量达到要求却不能及时下线。技术实现要素:本发明的目的在于提供一种基于线索收集的广告投放引擎系统,解决现有广告投放引擎系统功能不能进行在线监控、不能实现订单收集、计费过程繁琐且不及时的问题。为了实现上述目的,本发明所述基于线索收集的广告投放引擎系统,所述系统包括:AdFront模块:接收广告位发出的请求,并获取该广告位的广告展示类型,将广告展示类型与所述请求发送给AdServer模块;同时,还负责将从AdServer模块返回的广告创意结果进行渲染,然后再返回给发出请求的广告位;AdServer模块:从所述AdFront模块接收所述请求并获取要检索广告的数据信息,在线检索得到符合所述数据信息的广告创意结果,并将检索到的广告创意结果返回给所述AdFront模块;LeadsServer模块:首先,接收广告位产生的线索数据;然后,将线索数据依次进行排重处理、防作弊处理、控量处理、计费处理后,将处理后的线索数据存储在对应的redis数据库中;接着,将存储后的线索数据推送到kafka中保存到Mysql数据库中。优选地,广告位发出的请求中携带广告位ID、appkey和所述广告位ID的定向参数条件。优选地,所述广告展示类型包括json、html、javascript文件、直接引用sdk中的一种。优选地,AdFront模块接收广告位发出的请求,并获取该广告位的广告展示类型,将广告展示类型与所述请求发送给AdServer模块,具体为:A1,AdFront模块分析接收到的请求,获取所述请求中包含的数据,滤除非法广告位的请求;A2,基于从redis数据库中检索查询得到与所述广告位ID相关的广告位特征数据,验证所述请求中携带的appkey广告位和appkey是否有效;如果是,则进入A3;如果否,则返回A1,提示该请求不合法,分析下一条请求;所述广告位特征数据包括广告位展示类型、广告位对接形式、广告位标识、广告位appkey、广告位appkey对应的md5key;A3,从http头或url链接参数中获取客户端IP地址,调用内存IP库信息查询得到该客户端IP地址对应的省份和城市,接入用户画像数据,使用所述请求中包括的设备标识或用户Id查询得到当前查看该广告位用户的偏好,根据所述广告位的类型在redis数据库中匹配出该广告位的广告展示类型,所述广告展示类型包括图、文字、图片和文字的组合;A4,将广告展示类型+城市+省份+所述广告位特征数据组包作为经过处理的请求数据发送给AdServer模块。优选地,所述AdFront模块还负责将从AdServer模块返回的广告创意结果进行渲染,然后再返回给发出请求的广告位;具体为:B1,接收AdServer模块反馈的广告创意结果,所述广告创意结果包括:创意ID、创意类型、创意物料列表、创意落地页和任务ID;B2,首先,生成全球唯一的字符串作为曝光Id,以此曝光Id作为key,将所述请求的结果保存在redis数据库中,所述请求的结果包括广告创意结果和广告位特征数据;所述广告位特征数据包括广告位展示类型、广告位对接形式、广告位标识、广告位appkey、广告位appkey对应的md5key;然后,将曝光Id作为参数添加到从配置文件读取的点击链接、曝光链接、关闭链接中,生成广告位的有效链接,所述有效链接包括点击链接、曝光链和关闭链接;接着,将广告位的有效链接与曝光Id、广告位ID、任务ID、创意ID、城市ID进行加密;最后,生成集成了与曝光Id有关的有效链接和发出所述请求的广告位需展示的广告创意结果的结果集,完成对广告创意结果的渲染,将该结果集返回给发出所述请求的广告位。优选地,所述AdServer模块包括:requestHandle单元,初始化AdServer模块,构造职责链,将从AdFront模块接收的请求解析、构造成适用于AdServer模块的AdServer数据结构;adTarget单元,从requestHandle单元接收处理后的请求数据,依据所述处理后请求中的用户Id或设备标识数据、页面属性数据与DMPserver单元通信,获取当前处理后请求定向在redis数据库中的用户特征信息,为后续的广告检索逻辑提供基础服务数据;adSearch单元:与elasticsearch库进行交互,通过elasticsearch库检索到目的创意结果,并将检索到的创意结果存储到创意结果候选集合,同时将创意结果候选集合填充到requestHandle单元;adFilter单元:根据从redis数据库中读取广告候选黑名单集合,删除创意结果候选集合中不能在本次请求中展示的创意数据;adRank单元:依据职责链将排序算法封装为多个职责顺序运行;按素材个数均等随机轮播,将轮播得到的每个素材的展示量进行优先级排序;根据ECPM规则+权重按比例排序得到最终要展示的创意数据结果集;根据得到的创意数据结果集,填充任务信息;adFill单元:依据创意数据结果集中要展示的创意Id向redis数据库发送请求获取该创意Id的基本信息,完成创意填充,对填充过程中使用到的素材计数,同时,将使用到的素材ID和素材曝光量存入到redis数据库中。更优选地,所述adRank单元的处理过程为:C1,根据广告位的特征和传递的参数,从elasticsearch库中查询匹配的任务元数据;C2,将查询到的任务元数据进行分类,分为客户广告和打底广告,所述打底广告的数量至少为1;将客户广告和打底广告统称为任务广告;C3,对任务广告,进行排序,排序规则为:按设置在任务广告中的任务的优先级,选出优先级最高的任务所对应的多个任务广告;C4,获取C3中得到的多个任务广告的露出数量,获取露出数量最少一个任务广告β,重新计算该任务广告β的露出数,并将该任务广告β及其露出数保存在服务器内存。优选地,所述LeadsServer模块接收广告位带来的线索数据,将线索数据依次进行排重处理、防作弊处理、控量处理、计费处理后,将处理后的线索数据存储在对应的redis数据库中,具体为:S31,所述LeadsServer模块接收广告位携带的用户下单数据,判断用户下单数据是否合法,如果是,则进入S32;如果否,则将用户下单数据作为线索数据记载在本地文本记录日志中;S32,判断所述线索收集数据是否作弊,如果是,则将该线索收集数据记载在本地文本记录日志中;如果否,则进入S33;S33,判断所述线索收集数据是否重复,如果是,则将该线索收集数据的is_repeatable字段值标记为2,进入S34;如果否,则直接进入S34;S34,判断该线索收集数据对应的任务是否下线,如果是,则将该线索收集数据的states字段值标记为2;进入S35;如果否,则直接进入S35;S35,从redis数据库中读取该线索收集数据对应的组合数据,所述组合数据包括成本比例、价格、任务总数、分成比例和媒体名称;S36,判断该线索收集数据对应的任务是否完成,如果是,则将该线索收集数据对应任务完成的消息推送给广告主;如果否,则将该线索收集数据的组合数据推送给广告主。优选地,所述AdFront模块还具有数据保存和反作弊功能,具体为:待广告位发出的请求完成后,AdFront模块会生一个名为showId的key,所述key保存当前请求所包含的结果信息,所述key是一个uuid,保存在redis数据库中,所述key存储的内容为当前请求所露出任务的详细信息及当前广告所处的具体操作步骤;采用Key进行作弊判断,具体为:如果从广告请求发出到广告曝光的时间间隔大于1min,则存在作弊;如果从广告曝光到广告被点击的时间间隔大于24h,则存在作弊;如果从广告被点击到下单页面曝光的时间间隔大于1min,则存在作弊;如果从下单页面曝光到下单的时间间隔大于24h,则存在作弊。本发明的有益效果是:1、本发明所述基于线索开放的广告投放引擎系统具有广告数据检索、广告数据过虑和广告数据排序的功能。2、本发明所述基于线索开放的广告投放引擎系统具有广告行为监控的功能,例如广告流转到哪一步骤和/或用户查看广告到了哪一步,是请求数据步骤还是广告已经曝光步骤或是完成点击该广告位的步骤,并可据此判断用户行为是否异常。3、本发明所述基于线索开放的广告投放引擎系统记录用户浏览广告的产生的行为数据、收集用户产生的订单、对广告任务的流量进行控量并及时将到达流量的广告进行任务下线处理。附图说明图1是基于线索收集的广告投放引擎系统的架构示意图;图2是AdFront模块将数据存储到redis数据库的流程示意图;图3是AdServer模块的结构示意图;图4是LeadsServer模块的数据处理流程示意图;图5是AdFront模块的数据保存及反作弊逻辑的流程示意图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。关于本申请中的几个技术词语的解释说明:媒体方:提供广告位的第三方媒体,例如驾考宝典、新浪博客、网易新闻。广告主:需要投放广告的人,例如:4s店,各汽车厂商客户任务:广告主为了要达到一种目的(例如希望有多少人看到他们的广告,多少人点击他们的广告),而将自己产品宣传图或介绍文字上传投放系统中,包括投放的量,投放时间,投放的地域等信息。打底任务:运营人为了防止广告位上出现空白,而且建立的一个默认任务,通常是比较通用的图片或文字。es:elasticSearch的简称是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。Kafka:Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。线索:用户订单信息。AdFront:广告前端处理模块,负责接收广告位请求,并返回结果。AdServer:广告数据核心检索模块,查询广告数据。LeadsServer:线索收集保存模块。appkey:广告位所在的网站域名或其它指定的字符串,进行加密处理后的结果。画像数据:用来描述用户的行为特征数据,例如用户年龄,性别,消费水平等用户Id:根据广告位的请求信息,从中获取能唯一标识该用户的一串字符创意:用于描述广告的展现形式及广告中所包含的内容元素。任务:广告主为了达到自己推广目的而添加的一类创意集合。requestHandle单元:处理请求理单元,例如参数校验。adTarget单元:广告检索定向条件单元,例如,负责检索广告位类型、请求该广告位的用户所在地域。DMPserver:查询用户画像单元。adSearch单元:广告查询单元。adFilter单元:广告结果数据过虑单元,剔除一些不适合的创意数据。adFill单元:广告数据渲染单元,例如:根据创意Id在redis数据库中查出创意的详细数据。adRank单元:创意结果集排序单元,对一组创意按照创意的类型和优先级进行排序。ECPM:创意被露出的次数。服务端:linux服务器。实施例本实施例所述基于线索收集的广告投放引擎系统,所述系统包括:AdFront模块:接收广告位发出的请求,并获取该广告位的广告展示类型,将广告展示类型与所述请求发送给AdServer模块;同时,还负责将从AdServer模块返回的广告创意结果进行渲染,然后再返回给发出请求的广告位;AdServer模块:从所述AdFront模块接收所述请求并获取要检索广告的数据信息,在线检索得到符合所述数据信息的广告创意结果,并将检索到的广告创意结果返回给所述AdFront模块;LeadsServer模块:首先,接收广告位产生的线索数据;然后,将线索数据依次进行排重处理、防作弊处理、控量处理、计费处理后,将处理后的线索数据存储在对应的redis数据库中;接着,将存储后的线索数据推送到kafka中供持久化层保存到最终的Mysql数据库中。更详细的解释说明为:(一)广告位发出的请求中携带广告位ID、appkey和所述广告位ID的定向参数条件。所述广告展示类型包括json、html、javascript文件、直接引用sdk中的一种。(二)关于AdFront模块2.1AdFront模块接收广告位发出的请求,并获取该广告位的广告展示类型,将广告展示类型与所述请求发送给AdServer模块,具体为:A2,基于从redis数据库中检索查询与所述广告位ID相关的广告位特征数据,验证所述请求中携带的appkey广告位和appkey是否有效;如果是,则进入A3;如果否,则返回A1,提示该请求不合法,分析下一条请求;所述广告位特征数据包括广告位展示类型、广告位对接形式、广告位标识、广告位appkey、广告位appkey对应的md5key;A3,从http头或url链接参数中获取客户端IP地址,调用内存IP库信息查询得到该客户端IP地址对应的省份和城市,接入用户画像数据,使用所述请求中包括的设备标识或用户Id查询得到当前查看该广告位用户的偏好,根据所述广告位的类型在redis数据库中匹配出该广告位的广告展示类型,所述广告展示类型包括图、文字、图片和文字的组合;A4,将广告展示类型+城市+省份+所述广告位特征数据组包作为经过处理的请求数据发送给AdServer模块。2.2所述AdFront模块还负责将从AdServer模块返回的广告创意结果进行渲染,然后再返回给发出请求的广告位;具体为:B1,接收AdServer模块反馈的广告创意结果,所述广告创意结果包括:创意ID、创意类型、创意物料列表、创意落地页和任务ID;B2,首先,生成全球唯一的字符串作为曝光Id,以此曝光Id作为key,将所述请求的结果保存在redis数据库中,所述请求的结果包括B1中的广告创意结果和广告位特征数据;所述广告位特征数据包括广告位展示类型、广告位对接形式、广告位标识、广告位appkey、广告位appkey对应的md5key;然后,将曝光Id作为参数添加到从配置文件中读取出的点击链接、曝光链接、关闭链接中,生成有效的广告位的点击链接、曝光链和关闭链接;接着,将广告位的有效链接与曝光Id、广告位ID、任务ID、创意ID、城市ID进行加密;最后,生成集成了与曝光Id有关的有效链接和发出所述请求的广告位需展示的广告创意结果的结果集,完成对广告创意结果的渲染,将该结果集返回给发出所述请求的广告位。2.3所述AdFront模块还具有数据保存和反作弊功能,具体为:待广告位发出的请求完成后,AdFront模块会生一个名为showId的key,所述key保存当前请求所包含的结果信息,所述key是一个uuid,保存在redis数据库中,所述key存储的内容为当前请求所露出任务的详细信息及当前广告所处的具体操作步骤;采用Key进行作弊判断,具体为:如果从广告请求发出到广告曝光的时间间隔大于1min,则存在作弊;如果从广告曝光到广告被点击的时间间隔大于24h,则存在作弊;如果从广告被点击到下单页面曝光的时间间隔大于1min,则存在作弊;如果从下单页面曝光到下单的时间间隔大于24h,则存在作弊。(三)关于AdServer模块包括:AdServer模块包括:requestHandle单元,初始化AdServer模块,构造职责链,将从AdFront模块接收的请求解析、构造成适用于AdServer模块的AdServer数据结构;adTarget单元,从requestHandle单元接收处理后的请求数据,依据所述处理后请求中的用户Id或设备标识数据、页面属性数据与DMPserver单元通信,获取当前处理后请求定向在redis数据库中的用户特征信息,为后续的广告检索逻辑提供基础服务数据;adSearch单元:与elasticsearch库进行交互,通过elasticsearch库检索到目的创意结果,并将检索到的创意结果存储到创意结果候选集合,同时将创意结果候选集合填充到requestHandle单元;adFilter单元:根据从redis数据库中读取广告候选黑名单集合,删除创意结果候选集合中不能在本次请求中展示的创意数据;adRank单元:依据职责链将排序算法封装为多个职责顺序运行;按素材个数均等随机轮播,将轮播得到的每个素材的展示量进行优先级排序;根据ECPM规则+权重按比例排序得到最终要展示的创意数据结果集;根据得到的创意数据结果集,填充任务信息;更具体的为:依据职责链将排序算法封装为多个职责顺序运行,过此排序模块的算法处理后,将得到一个排序后的结果集合,越排在前面的创意数据,就是越适合此次请求展示的创意数据,可取前N(具体数字在广告位上读取)位的创意数据做为最终要展示的创意数据结果集;adFill单元:依据创意数据结果集中要展示的创意Id向redis数据库发送请求获取该创意Id的基本信息,完成创意填充,对填充过程中使用到的素材计数,同时,将使用到的素材ID和素材曝光量存入到redis数据库中。其中,所述adRank单元的处理过程为:C1,根据广告位的特征和传递的参数,从elasticsearch库中查询匹配的任务元数据;C2,将查询到的任务元数据进行分类,分为客户广告和打底广告,所述打底广告的数量至少为1;将客户广告和打底广告统称为任务广告;如果有客户广告则直接返回客户广告,如果没有客户广告,随机返回打底广告,运营人员会保证在系统中至少会有一个通用的打底广告。C3,对任务广告,进行排序,排序规则为:按设置在任务广告中的任务的优先级,选出优先级最高的任务所对应的多个任务广告;例如:按设置在客户广告中的任务的优先级,选出优先级最高的任务所对应的客户广告;按设置在打底广告中的任务的优先级,选出优先级最高的任务所对应的打底广告;C4,获取C3中得到的多个任务广告的露出数量,获取露出数量最少一个任务广告β,重新计算该任务广告β的露出数,并将该任务广告β及其露出数保存在服务器内存。(四)关于LeadsServer模块所述LeadsServer模块接收广告位带来的线索数据,将线索数据依次进行排重处理、防作弊处理、控量处理、计费处理后,将处理后的线索数据存储在对应的redis数据库中,具体为:S31,所述LeadsServer模块接收广告位携带的用户下单数据,判断用户下单数据是否合法,如果是,则进入S32;如果否,则将用户下单数据作为线索数据记载在本地文本记录日志中;S32,判断所述线索收集数据是否作弊,如果是,则将该线索收集数据记载在本地文本记录日志中;如果否,则进入S33;S33,判断所述线索收集数据是否重复,如果是,则将该线索收集数据的is_repeatable字段值标记为2,进入S34;如果否,则直接进入S34;S34,判断线索收集数据对应的任务是否下线,如果是,则将该线索收集数据的states字段值标记为2;进入S35;如果否,则直接进入S35;S35,从redis数据库中读取该线索收集数据对应的组合数据,所述组合数据包括成本比例、价格、任务总数、分成比例和媒体名称;S36,判断该线索收集数据对应的任务是否完成,如果是,则将该线索收集数据对应任务完成的消息推送给广告主;如果否,则将该线索收集数据的组合数据推送给广告主。本实施例所述引擎系统的三个模块:adFront模块、adServer模块和leadsServer模块,实现了广告检索,反作弊,线索收集,日志数据收集等功能。所有的功能都紧密结合集中在一起,在同一台服务器上,省去了发布的麻烦,节省硬件资源。通过采用本发明公开的上述技术方案,得到了如下有益的效果:一、adFront模块:此模块中所获取的数据全来自redis或本地缓存中,响应速度非常快。每一个广告位请求都有带一个加密的key,用来验证广告位的身份保证了广告位数据请求的安全性。此模块能全程实时监测并记录广告位的行为,例如广告请求,广告曝光,广告点击。并可依此来判断作弊,分析用户行为等,将部分反作弊(另一部分在线索收集中)集成在此步骤中,提高了反作弊的准确性和实时性。此模块,提供多种请求方式,满足多种广告位的请求,例如:可直接用于APP请求SDK请求方式,服务端请求json的方式,客户端直接请求json的方式,浏览js请求html的方式。媒体端十分方便的定制个人需求。二、adServer模块:此模块读取es中实时投放的数据,利用es的倒排序的特性,能精准的检索到合适的广告原数据,同时es集群采用多台服务器,运行速度非常快。将es中检索出来的数据,临时存入内存中并根据广告元数据的优先级、曝光量等一系列特性采用高效的排序算法,筛选出最合适露出的广告原数据。三、leadsServer模块:此模块的主要功能是实时收集线索数据,并对广告主的任务进行实时控量并对任务下线,对线索进行过虑:反作弊,排重等。由于此模块是与投放引擎在同一个项目同一个服务器中,因此所有的操作都具有实时性。同时此模块也对外提供线索收集的http接口,供定制线索下单的其它业务方向该投放平台提交线索数据。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1