一种基于网络视频的虚拟微轮播广告投放方法及其装置
技术领域
本发明涉及一种基于网络视频的虚拟微轮播广告投放方法及装置,尤其涉及一种在互联网领域内的网络视频进行广告投放的方法及其装置。
背景技术
目前的互联网广告投放,在广告位上大致分两种投放方式:一种是某广告独占某广告位。换言之,即某广告位一直展示同一个广告,如在中国专利200910091349.X中公开的广告推送方法、装置和系统,能够实现在设定时间内只向客户端推送一个广告,避免了同时向客户端推送多个不同的问题。而另一种则是某广告位随机展示不同的广告。而前述两种方式往往未能满足当前基于信息网络的视频广告投放需求,特别是在类似于电视剧、电影等对信息传输流量较大的视频内容时,则广告商往往需要更优质的广告位,如前贴片、后贴片、暂停等进行拆分售卖,从而便于虚拟出更多广告位,使广告投放方式更加灵活。这样更有助于网络广告的销售业绩提升,又不影响普通广告的投放。此外,前述的两种方法采用了HTTP协议下的cookie方法,该cookie方法使服务器或脚本能够在客户工作站上维护状态信息或用户信息。但使用该方法浏览器就需要为cookie建立空间,这就占用了有限的浏览器cookie资源。
为满足用户需求并节约有限的浏览器cookie资源,本发明提供了一种新的基于网络视频的虚拟微轮播广告投放方法及其装置,该方法是将特定广告位的流量等比分成N份,虚位以待地进行销售,如果广告主购买了其中一个虚拟位置的流量(即:一个虚拟广告位),则对应广告按1/N的量进行展示,对于没有卖出去的虚拟广告位继续投放普通销售方式的广告。
根据本发明的广告投放方法及其装置,将会虚拟出更多广告位,使广告投放方式更加灵活,有助于资源的充分利用,广告销售业绩的提升,同时又不影响普通广告的投放和用户体验。另一方面,也为基于网络视频的广告销售增加一种直观的销售方式,增强了广告展示效果。微轮播广告交替出现,大大地提高了用户体验和保证了广告商利益;
根据本发明的广告投放方法及其装置,将用户信息进行结构化存储,并提供数据对象的序列化和序列化结果进行反序列化的方法,完成了用户信息的封装,这样既节约了有限的浏览器cookie资源,又简化了服务器端处理用户信息的逻辑。微轮播投放不仅可以对节目、视频组进行定定向投,也可以定向到地区、频道等分类。
发明内容
鉴于现有技术中存在的问题,本发明的目的在于提供一种基于网络视频的虚拟微轮播广告投放方法及其装置。
为了达到上述目的,本发明提供了一种基于网络视频的虚拟微轮播广告投放方法,该方法包括如下步骤:步骤(1)用户点击打开浏览器页面中的视频播放器,视频播放器发送广告请求,浏览器端的cookie会随着请求参数一起被发送到服务器端的广告系统;步骤(2)广告系统根据广告请求参数信息从广告缓存中取得要投放的微轮播缓存,与用户浏览器端传来的微轮播广告信息投放相关的cookies信息进行比较;步骤(3)根据比较选中某一微轮播广告信息;步骤(4)广告系统将TheaterLunboCookie对象序列化为一个字符串,然后通过向用户浏览器写cookie的方式将这个字符串存入用户浏览器端。
进一步,本发明所述方法中的步骤(2)中的微轮播缓存是特定广告位下,一个投放轮次与该投放轮次下微轮播广告信息对应的哈希表HashMap<lun,TheaterLunboInfo>其中lun表示第lun投放轮次,TheaterLunboInfo表示第lun投放轮次下的微轮播广告信息。
进一步,本发明方法的步骤(3)中的根据比较选中广告信息的方法具体包括:
对从cookie中取得的字符串反序列化为TheaterLunboCookie对象,根据下面所述的轮次选择方法取得TheaterLunboCookie对象当前应该投放的轮次lun,然后根据lun从微轮播缓存HashMap<lun,TheaterLunInfo>hmLun中得到该投放轮次下的TheaterlunboInfo微轮播广告信息;
轮次lun选择方法包括:
lun表示当前展示轮次,N表示该广告位微轮播投放总轮次;
如果TheaterLunboCookie有效,则lun=lun+1,如果lun>N,则lun=1;
如果TheaterLunboCookie为null,则根据节目标识playId和广告位标识seq创建TheaterLunboCookie对象,则lun为1-N范围内随机取一整数。
进一步,本发明所述方法中的TheaterLunboInfo微轮播广告信息包括以下内容:
id:TheaterLunboInfo数据结构的唯一标识,为整型;
playId:表示视频节目id,为整型;
seq:表示节目上的广告位,为整型表示;
lun:表示视频节目playId的广告位seq上,第lun轮微轮播投放,为整型;
ideaId:表示第lun轮微轮播虚拟广告位上的广告素材id,ideaId=0表示该微轮播广告位还没有投放广告;
endDate:微轮播虚拟广告位的截止日期,为日期类型。
进一步,本发明所述方法中的TheaterLunboCookie包括以下内容:
playId:表示视频节目id,为整型;
seq:表示节目上的广告位,为整型;
lunCount:表示视频节目playID的广告位seq上,总共有lunCount轮微轮播投放,为整型;
lun:表示视频节目playId的广告位seq上,第lun轮微轮播投放,为整型;
ideaId:表示第lun轮微轮播虚拟广告位上的广告素材id,是在微轮播投投放时候,从TheaterlunboInfo微轮播广告信息写到用户cookie的广告素材id。
此外,本发明还提供了一种虚拟微轮播信息投放装置,该装置包括:视频播放器,当用户点击打开浏览器页面中的视频播放器时,视频播放器发送广告请求,浏览器端的cookie会随着请求参数一起被发送到服务器端的广告系统;广告系统,根据广告请求参数信息从广告缓存中取得要投放的微轮播缓存,与用户浏览器端传来的微轮播广告信息投放相关的cookies信息进行比较;根据比较选中某一微轮播广告信息;广告系统将TheaterLunboCookie对象序列化为一个字符串,然后通过向用户浏览器写cookie的方式将这个字符串存入用户浏览器端。
本发明所述的方法及其装置具有以下优点:将用户信息进行结构化存储,并提供数据对象的序列化和序列化结果进行反序列化的方法,完成了用户信息的封装,这样既节约了有限的浏览器cookie资源,又简化了服务器端处理用户信息的逻辑。微轮播投放不仅可以对节目、视频组进行定定向投,也可以定向到地区、频道等分类。
附图说明
图1是本发明所述的一种广告虚拟微轮播信息投放方法的流程图。
图2是描述根据本发明的TheaterLunboInfo数据结构的具体组成的结构图。
图3是描述根据本发明的TheaterLunboCookie数据结构的具体组成的结构图。
图4是描述根据本发明将TheaterLunboCookie数据结构序列化为字符串的示意图。
图5是描述根据本发明将字符串还原为TheaterLunboCookie数据结构的示意图。
图6是表示TheaterLunboInfo数据结构的一个实例的示意图。
图7是表示TheaterLunboCookie数据结构的一个实例的示意图。
图8是表示TheaterLunboInfo数据结构的另一个实例的示意图。
图9是表示TheaterLunboCookie数据结构的另一个实例的示意图。
具体实施方式
为使本发明的上述目的、特征和优点更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明:
图1是本发明所述的一种虚拟微轮播信息投放方法的流程图。根据该流程图,用户浏览器请求广告时(如果是视频广告,则实际是由浏览器中嵌入的视频播放器来发送广告请求),浏览器端的cookie会随着请求参数一起被发送到服务器端的广告系统。
广告系统定时从广告库中加载满足定向投放条件的广告到缓存中(特指微轮播广告缓存),根据广告请求参数,取得特定广告位对应的微轮播缓存,该缓存是特定广告位下,一个投放轮次与该投放轮次下广告信息对应的哈希表HashMap<lun,TheaterLunboInfo>(其中lun表示第lun投放轮次,TheaterLunboInfo表示第lun投放轮次下的微轮播广告信息),从微轮播缓存中选择一个广告进行投放,具体选择步骤如下:
根据广告请求参数:节目id和广告位,即palyId和seq,从广告缓存中取得广告位对应的微轮播缓存HashMap<lun,TheaterLunInfo>hmLun;
当hmLun为空时,则退出微轮播投放,否则定义一个整型变量N,N表示广告位下微轮播缓存的总轮次,其值为hmLun.size();
根据广告请求参数节目id和广告位,即palyId和seq,通过反序列化从用户cookie中取得微轮播历史TheaterlunboCookie,如果TheaterlunboCookie为null,表示当前用户没有投放过该节目playId和广告位seq上的微轮播广告,则重新创建新的TheaterlunboCookie对象;
根据轮次选择方法,取得TheaterLunboCookie对象当前应该投放的轮次lun,然后根据lun从微轮播缓存HashMap<lun,TheaterLunInfo>hmLun中得到该投放轮次下的TheaterlunboInfo微轮播广告信息;
轮次lun选择方法如下:
lun表示当前展示轮次,N表示该广告位微轮播投放总轮次;
如果TheaterLunboCookie有效,则lun=lun+1,如果lun>N,则lun=1;
如果TheaterLunboCookie为null,则根据节目playId和广告位seq创建TheaterLunboCookie对象,则lun为1-N范围内随机取一整数;
上述返回的TheaterlunboInfo微轮播广告信息有效,则将当前展示轮次lun和TheaterlunboInfo中的广告素材lunboInfo.getIdeaId()写入lunboCookie对象然后将TheaterLunboCookie对象序列化为字符串后写入用户浏览器cookie;如果TheaterlunboInfo微轮播广告信息为null,表示没有要投放的微轮播广告,则不对该次请求进行微轮播广告投放。
图2是描述根据本发明的TheaterLunboInfo数据结构的具体组成的结构图。广告系统中每一个要求作微轮播投放虚拟广告位,都会用一个唯一的TheaterLunboInfo数据结构来描述其具体的微轮播控制要求。其中各个组成元素的含义分别如下:
●id:TheaterLunboInfo数据结构的唯一标识,为整型(Integer);
●playId:表示视频节目id,为整型(Integer);
●seq:表示节目上的广告位,如前贴、后贴、暂停等广告位,为整型(Integer)表示;
●lun:表示视频节目playId的广告位seq上,第lun轮微轮播投放,为整型(Integer);
●ideaId:表示第lun轮微轮播虚拟广告位上的广告素材id,ideaId=0表示该微轮播广告位还没有投放广告;
●endDate:微轮播虚拟广告位的截止日期,超过该日期后,该投放数据不再被加载到投放系统中,为日期类型(Date)。
图3是描述根据本发明的TheaterLunboCookie数据结构的具体组成的结构图。用户观看每个微轮播的历史信息都可以用TheaterLunboCookie数据结构来描述。其中各个组成元素的含义分别如下:
●playId:表示视频节目id,为整型(Integer);
●seq:表示节目上的广告位,如前贴、后贴、暂停等广告位,为整型(Integer)表示;
●lunCount:表示视频节目playID的广告位seq上,总共有lunCount轮微轮播投放,为整型(Integer);
●lun:表示视频节目playId的广告位seq上,第lun轮微轮播投放,为整型(Integer);
ideaId:表示第lun轮微轮播虚拟广告位上的广告素材id,是在微轮播投放时候,从TheaterlunboInfo微轮播广告信息写到用户cookie的广告素材id。
图4是描述根据本发明将TheaterLunboCookie数据结构序列化为字符串的示意图。每个用户在观看一个微轮播广告时,广告系统都会更新该用户观看该广告的全部历史信息,这些信息是以TheaterLunboCookie数据结构存放在服务器端的,当TheaterLunboCookie被更新后,广告系统将TheaterLunboCookie数据结构序列化为一个字符串,然后通过向用户浏览器写cookie的方式将这个字符串存入用户浏览器端。
图5是描述根据本发明将字符串还原为TheaterLunboCookie数据结构的示意图。该图描述了TheaterLunboCookie的还原,是服务器对从cookie中取得的上述格式的字符串进行拆分和解析,然后重新构造TheaterLunboCookie实例的过程。
图6是表示根据本发明实施例1的TheaterLunboInfo数据结构的一个实例的示意图。
图7是表示根据本发明实施例1的TheaterLunboCookie数据结构的一个实例的示意图。
实施例一:针对于电视剧“北京爱情故事”做微轮播投放,广告A投在第2轮。
当前视频节目id=100013,前贴广告位seq=1,做5轮微轮播投放lunCount=5;
广告A的素材id=50660,投放在第2轮lun=2,投放周期是:2012-03-01~2012-03-25。
下面是具体实施步骤:
(1)首先在广告系统的相关表中创建节目100013的微轮播投放记录,比如投放到前贴广告位,设置共进行5轮微轮播投放;
(2)然后在第2轮微轮播下投放下,添加要投放的广告素材id:50660;
(3)实际投放时,所有当前待投的微轮播广告信息都会被从数据库中提取出来,并分别为它们创建一个TheaterLunboInfo实例,1234是表记录自增id。广告A对应的TheaterLunboInfo信息结构如图6所示。
(4)根据广告请求参数:playId、seq等信息从广告缓存中取得要投放的微轮播缓存,与用户浏览器端传来的微轮播广告投放相关的cookies信息进行比较,比较之前,将相关的cookie信息其还原为一个TheaterLunboCookie对象,如果未找到,则根据playId和seq为A创建一个TheaterlunboCookie对象。广告比较逻辑见图1;
例如,广告系统接收到某次广告请求时所得到的浏览器cookie中的值为“5:2:50660”,将其还原为某个TheaterLunboCookie对象后,其结构如图7所示,它表示:广告素材50660在投放到节目100013的前贴广告位上,进行5轮的微轮播投放,即是5次中出现1次,上一次投放在第2轮次。
下一次,该用户看同一个节目100013时,向广告系统请求前贴广告,则请求第3轮上的广告,更新客户端cookie,如果ideaId相对应的素材idea有效,则展示该微轮播广告,否则展示非微轮播投放的广告;
依次重复上一次的判断逻辑,直到4次广告请求后,再选中广告A进行展示。在广告A的投放的有效时间段,调用微轮播轮次的顺序依是:
1)第1次投放到用户,随机选中1-lunCount中轮次lun进行投放;
2)以后,顺序选中轮次lun=lun+1,如果选中轮次lun大于总轮次lunCount,则选中lun=1。
图8是表示根据本发明实施例2的TheaterLunboInfo数据结构的另一个实例的示意图。
图9是表示根据本发明实施例2的TheaterLunboCookie数据结构的另一个实例的示意图。
实例二:针对于电视剧“北京爱情故事”做微轮播投放,广告B投在第4轮。
节目id=100013,前贴广告位seq=1,做5轮微轮播投放lunCount=5;
广告B的素材id=50665,投放在第4轮lun=4,投放周期是:2012-03-01~2012-03-25。
下面是具体实施步骤:
(1)首先在广告系统的相关表中创建节目100013的微轮播投放记录,比如投放到前贴广告位,设置共进行5轮微轮播投放;
(5)然后在第4轮微轮播下投放下,添加要投放的广告素材id:50665;
实际投放时,所有当前待投的微轮播广告信息都会被从数据库中提取出来,并分别为它们创建一个TheaterLunboInfo实例。如广告B对应的TheaterLunboInfo信息结构如图8所示。
(6)根据广告请求参数:playId、seq等信息从广告缓存中取得要投放的微轮播投放,与用户浏览器端传来的微轮播广告投放相关的cookies信息进行比较,比较之前,将相关的cookie信息其还原为一个TheaterLunboCookie对象,如果未找到,则为B创建一个TheaterlunboCookie对象。比较逻辑见图1;
例如,广告系统接收到某次广告请求时所得到的浏览器cookie中的值为“5:3:0”,将其还原为某个TheaterLunboCookie对象后,其结构如图9所示,它表示:上一次投放到了第3轮,但没有广告素材在投放到节目100013的前贴广告位的第3轮次上,展示非微轮播广告。
下一次,该用户看同一个节目100013时,向广告系请求前贴广告,则请求第4轮上的广告,更新客户端cookie,正好取得广告B,则展示该微轮播广告;
依次重复上一次的判断逻辑,再经过3次请求后展示广告A;
AB广告出现的次序是,B-x-x-A-x-B,其中x表示其它广告或者无广告。
以上是对本发明的优选实施例进行的详细描述,但本领域的普通技术人员应该意识到,在本发明的范围内和精神指导下,各种改进、添加和替换都是可能的。这些都在本发明的权利要求所限定的保护范围内。