CN117950787A - 广告展示方法、装置、电子设备及存储介质 - Google Patents

广告展示方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117950787A
CN117950787A CN202410331734.1A CN202410331734A CN117950787A CN 117950787 A CN117950787 A CN 117950787A CN 202410331734 A CN202410331734 A CN 202410331734A CN 117950787 A CN117950787 A CN 117950787A
Authority
CN
China
Prior art keywords
picture
source
advertisement
data
display
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410331734.1A
Other languages
English (en)
Inventor
唐如意
陈裕聪
修怀忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Seres Technology Co Ltd
Original Assignee
Chengdu Seres Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Seres Technology Co Ltd filed Critical Chengdu Seres Technology Co Ltd
Priority to CN202410331734.1A priority Critical patent/CN117950787A/zh
Publication of CN117950787A publication Critical patent/CN117950787A/zh
Pending legal-status Critical Current

Links

Abstract

本申请涉及客户端技术领域,提供了一种广告展示方法、装置、电子设备及存储介质。该方法通过创建可滑动视图,随后自服务器获取待展示广告的数据源,该数据源为对广告源数组进行扩容处理后的数据,可有效缓解滑动至边缘的问题,随后基于接收到的滑动消息确定滑动后的待展示图片的索引,获取当前待展示图片的源图片,并对源图片进行适配处理得到优化后的源图片,最后将优化后的源图片应用至可滑动视图,方便快捷地实现了广告图片在广告位展示器中的显示,且对源图片的优化可以根据源图片信息、广告位展示器以及用户习惯、客户端的设备情况等采用不同的优化策略,因而能够以更优方式实现广告展示,提高了展示效率并提升了用户体验。

Description

广告展示方法、装置、电子设备及存储介质
技术领域
本申请涉及客户端技术领域,尤其涉及一种广告展示方法、装置、电子设备及存储介质。
背景技术
广告位展示器位于客户端,通常用于进行广告展示。现有广告位展示器的实现方案中,在进行广告图展示时存在以下缺陷:
1)内存飙升:广告图通常在需要进行展示时由客户端批量自服务器下载,这会造成客户端的内存占用量飙升,且下载后的广告图片常驻内存,占用了客户端的内存资源;
2)广告图在广告位展示器中的位置通常采用简单设计,例如拉伸展示,或最长边适配,最短边适配等,这些方式实现过于简单,不利于用户体验;
3)广告位展示器中的广告图通常可以滑动显示,其无限滑动通常用较为复杂的方式进行,例如一直保持左中右三个位图,在滑动时予以计算。这种计算方式复杂度较高,导致显示效率较低。
发明内容
有鉴于此,本申请实施例提供了一种广告展示方法、装置、电子设备及存储介质,以解决现有技术中在广告位展示器中展示广告占用客户端内存较多、展示方式不够灵活导致用户体验较差且滑动显示的计算方法复杂度较高的问题。
本申请实施例的第一方面,提供了一种广告展示方法,该方法由客户端执行,用于在客户端的广告位展示器中进行广告展示,该方法包括:
创建可滑动视图,可滑动视图用于实现广告位展示器;
自服务器获取待展示广告的数据源,数据源为对广告源数组进行扩容处理后的数据,待展示广告包括多张待展示图片;
响应于接收到用户手动滑动消息,或者接收到自动滑动消息,确定滑动后待展示图片的索引,基于索引自数据源获取当前待展示图片的源图片;
对源图片进行适配处理,得到优化后的源图片;
将优化后的源图片应用至可滑动视图,以在客户端的广告位展示器中展示广告。
本申请实施例的第二方面,提供了一种广告展示装置,该装置用于在客户端的广告位展示器中进行广告展示,包括:
创建模块,被配置为创建可滑动视图,可滑动视图用于实现广告位展示器;
获取模块,被配置为自服务器获取待展示广告的数据源,数据源为对广告源数组进行扩容处理后的数据,待展示广告包括多张待展示图片;
确定模块,被配置为响应于接收到用户手动滑动消息,或者接收到自动滑动消息,确定滑动后待展示图片的索引,基于索引自数据源获取当前待展示图片的源图片;
优化模块,被配置为对源图片进行适配处理,得到优化后的源图片;
展示模块,被配置为将优化后的源图片应用至可滑动视图,以在客户端的广告位展示器中展示广告。
本申请实施例的第三方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并且可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
本申请实施例的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本申请实施例与现有技术相比存在的有益效果是:本申请实施例通过创建可滑动视图,随后自服务器获取待展示广告的数据源,该数据源为对广告源数组进行扩容处理后的数据,可有效缓解滑动至边缘的问题,随后基于接收到的滑动消息确定滑动后的待展示图片的索引,获取当前待展示图片的源图片,并对源图片进行适配处理得到优化后的源图片,最后将优化后的源图片应用至可滑动视图,方便快捷地实现了广告图片在广告位展示器中的显示,且对源图片的优化可以根据源图片信息、广告位展示器以及用户习惯、客户端的设备情况等采用不同的优化策略,因而能够以更优方式实现广告展示,提高了展示效率并提升了用户体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请实施例提供的一种广告展示方法的流程示意图。
图2是本申请实施例提供的对广告源数组进行扩容处理的方法的流程示意图。
图3是本申请实施例提供的一种n值确定方法的流程示意图。
图4是本申请实施例提供的另一种n值确定方法的流程示意图。
图5是本申请实施例提供的另一种广告展示方法的流程示意图。
图6是本申请实施例提供的确定滑动后待展示图片的索引的方法的流程示意图。
图7是本申请实施例提供的一种对源图片进行适配处理得到优化后的源图片的方法的流程示意图。
图8是本申请实施例提供的另一种对源图片进行适配处理得到优化后的源图片的方法的流程示意图。
图9是本申请实施例提供的判断留白算法的实现方法的流程示意图。
图10是本申请实施例提供的求缩放图片基准算法的实现方法的流程示意图。
图11是本申请实施例提供的计算图片缩放后的尺寸算法的实现方法的流程示意图。
图12是本申请实施例提供的确定留白色的方法的流程示意图。
图13是本申请实施例提供的又一种广告展示方法的流程示意图。
图14是本申请实施例提供的再一种广告展示方法的流程示意图。
图15是本申请实施例提供的客户端将广告源数组上传至服务器的方法的流程示意图。
图16是本申请实施例提供的一种广告展示装置的示意图
图17是本申请实施例提供的电子设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
下面将结合附图详细说明根据本申请实施例的一种广告展示方法和装置。
上文提及,现有广告位展示器的实现方案中,在进行广告图展示时存在如下缺陷:广告图下载时客户端内存飙升,且下载后的广告图片常驻内存,占用了客户端的内存资源;广告图在广告位展示器中的位置通常采用简单设计,不利于用户体验;广告位展示器中的广告图通常可以滑动显示,其无限滑动通常用较为复杂的方式进行,计算方式复杂度较高将导致显示效率较低。
鉴于此,本申请实施例提供了一种广告展示方法,通过创建可滑动视图,随后自服务器获取待展示广告的数据源,该数据源为对广告源数组进行扩容处理后的数据,可有效缓解滑动至边缘的问题,随后基于接收到的滑动消息确定滑动后的待展示图片的索引,获取当前待展示图片的源图片,并对源图片进行适配处理得到优化后的源图片,最后将优化后的源图片应用至可滑动视图,方便快捷地实现了广告图片在广告位展示器中的显示,且对源图片的优化可以根据源图片信息、广告位展示器以及用户习惯、客户端的设备情况等采用不同的优化策略,因而能够以更优方式实现广告展示,提高了展示效率并提升了用户体验。
图1是本申请实施例提供的一种广告展示方法的流程示意图。如图1所示,该广告展示方法包括如下步骤:
在步骤S101中,创建可滑动视图。
其中,可滑动视图用于实现广告位展示器。
在步骤S102中,自服务器获取待展示广告的数据源。
其中,数据源为对广告源数组进行扩容处理后的数据,待展示广告包括多张待展示图片。
在步骤S103中,响应于接收到用户手动滑动消息,或者接收到自动滑动消息,确定滑动后待展示图片的索引,基于索引自数据源获取当前待展示图片的源图片。
在步骤S104中,对源图片进行适配处理,得到优化后的源图片。
在步骤S105中,将优化后的源图片应用至可滑动视图,以在客户端的广告位展示器中展示广告。
本申请实施例中,该广告展示方法可以由客户端执行,用于在客户端的广告位展示器中进行广告展示。其中,客户端可以是手机、车载终端、平板电脑等,也可以是其他终端,此处不做限制。
本申请实施例中,由于广告位展示器通常可以支持用户手动循环滚动和定时自动循环滚动,因此可以在客户端中首先创建一个可滑动视图来实现广告位展示器。以在iOS系统中实现为例,可滑动视图在iOS中是一个继承于UIScrollView的子类。进一步的,根据广告位展示器需要滚动的方向,还可以选择iOS系统提供的UITableView或UICollectionView作为广告位展示器所要继承的父类。也就是说,可以将UITableView或UICollectionView设置为可滑动视图UIScrollView的子类。其中,UITableView仅支持上下滑动,UICollectionView可以支持左右滑动和上下滑动。在某些情况下,UITableView也可以支持左右滑动,例如首先将UITableView旋转90度,然后将其单元即每一行反向旋转90度即可实现。
本申请实施例中,客户端可以自服务器获取待展示广告的数据源,其中,数据源为对广告源数组进行扩容处理后的数据,待展示广告包括多张待展示图片。广告源数组即广告位展示器所携带的数据,其通常是一个数组,数组中的每个数据对应一张广告图,以使用户可以依次查看每一幅广告图。进一步的,数组中的每个数据都具有对应的索引。
在iOS系统中,数据源通常由class构成,所以在数组中的每一个数据都是一份引用,该引用的内存占用很小,因此可以将其扩大n倍,从而解决无限滑动中滑动至数组边缘时如何确定下一幅展示的图片的问题。
需要说明的是,上述服务器可以是真正意义上的服务器,也可以是客户端中的一个数据中心,或者一个云计算中心等。数据中心可以自主实现保存数据、动态确定扩容倍数等功能,还可以将客户端选择的策略以及最终确定的扩容倍数上传至服务器,以使服务器进行全用户统计,并制定运营策略。
本申请实施例中,用户可以手动滑动来滚动播放广告,或者由系统自动定时滚动播放广告。当客户端接收到用户手动滑动消息,或者接收到自动滑动消息时,可以确定滑动后待展示图片的索引,基于索引自数据源获取当前待展示图片的源图片。一示例中,可以基于当前展示图片的索引以及滑动方向确定滑动后待展示图片的索引,使用该索引即可自数据源中获取当前待展示图片的源图片。
本申请实施例中,可以对该源图片进行适配处理,得到优化后的源图片。由于源图片具有自身的长、宽以及最优展示区域等,其与广告位展示器的展示框的长、宽以及最优展示区域在广告位展示器的展示框中的期望位置可能并不能完全匹配,因此需要对源图片进行缩放、截取等处理,然后才能进行展示。进一步的,缩放后的源图片放入广告位展示器的展示框中后,可能还会有留白区域,即源图片的短边与展示框的短边长度相同,但源图片的长边短于展示框的长边,导致展示框长边方向上两侧存在部分区域未被源图片填充。因此,还需要对留白部分的留白色进行设置,并在需要时对留白部分与源图片的交界处进行过渡美化处理。采用这种方式,能够获取展示效果好、且符合用户使用习惯的优化后的源图片,后续将该优化后的源图片进行展示,能够提高展示效率,提升用户体验。
本申请实施例中,在得到优化后的源图片后,可以将该优化后的源图片应用至可滑动视图,从而实现在客户端的广告位展示器中展示上述待展示广告。
根据本申请实施例提供的技术方案,通过创建可滑动视图,随后自服务器获取待展示广告的数据源,该数据源为对广告源数组进行扩容处理后的数据,可有效缓解滑动至边缘的问题,随后基于接收到的滑动消息确定滑动后的待展示图片的索引,获取当前待展示图片的源图片,并对源图片进行适配处理得到优化后的源图片,最后将优化后的源图片应用至可滑动视图,方便快捷地实现了广告图片在广告位展示器中的显示,且对源图片的优化可以根据源图片信息、广告位展示器以及用户习惯、客户端的设备情况等采用不同的优化策略,因而能够以更优方式实现广告展示,提高了展示效率并提升了用户体验。
图2是本申请实施例提供的对广告源数组进行扩容处理的方法的流程示意图。如图2所示,该方法包括如下步骤:
在步骤S201中,将广告源数组中的源数据复制n-1份。
在步骤S202中,将复制得到的n-1份数据顺序添加至源数据之后,得到n组重复排列的源数据。
其中,n为大于1的正整数,且源数据中的数据个数与n的乘积小于或者等于客户端系统允许的源数据最大值。
本申请实施例中,对广告源数组进行扩容处理时,可以将广告源数组扩大n倍。具体的,可以将广告源数组中的源数据复制n-1份,然后将复制得到的n-1份数据顺序添加至源数据之后,得到n组重复排列的源数据。一示例中,若广告源数组中包括5个数据,分别为广告源数据1、广告源数据2、广告源数据3、广告源数据4和广告源数据5,将其扩大50倍,即可得到50组顺序排列的广告源数据1、广告源数据2、广告源数据3、广告源数据4和广告源数据5,即广告源数据1、广告源数据2、广告源数据3、广告源数据4、广告源数据5、广告源数据1……广告源数据5、广告源数据1、广告源数据2、广告源数据3、广告源数据4、广告源数据5。
其中,n为大于1的正整数,且源数据中的数据个数与n的乘积小于或者等于客户端系统允许的源数据最大值,当广告源数组中的数据个数较少时,n可以是一个较大的值,例如广告源数组中的数据个数为6个或者8个时,n可以是50、70或者100,甚至1000或者5000。当广告源数组中的数据个数较多时,n可以是一个较小的值,例如广告源数组中的数据个数为50个时,n可以是100或者200。
图3是本申请实施例提供的一种n值确定方法的流程示意图。如图3所示,该方法包括如下步骤:
在步骤S301中,响应于用户首次进入广告位展示器所在应用,自服务器获取初始n值。
在步骤S302中,在客户端设置埋点,上报反馈信息。
其中,反馈信息包括以下中的至少一项:当前n值、边缘问题触发次数、本次边缘问题触发方式、用户标识、客户端标识、本次上报的生命周期特征值、广告位展示器的内存开销、本条反馈信息来自单个或者多个广告位展示器。
在步骤S303中,响应于边缘问题触发次数满足预设条件,自服务器获取更新后的n值。
其中,更新后的n值由服务器基于反馈信息确定。边缘问题为待展示图片需要自第一幅图片滑动至最后一幅图片,或者待展示图片需要自最后幅图片滑动至第一幅图片时,出现的展示不连续问题。
本申请实施例中,n值可以由服务器通过学习与反馈结合进行动态确认和下发,即客户端可以定期或者根据需要实时自服务器获取当前n值。n值的确定因素众多。为尽可能减少遇到边缘问题的几率,n值应当尽量大、另一方面,针对不同的广告位展示器,由于其展示框具有不同的尺寸,因此也会有不同的最优n值。再一方面,不同的用户具有不同的使用习惯,不同的设备也有不同的参数,这些因素都影响n值的确定。因此,可以在允许的最大范围内尽可能缩小n值,以进一步精细化节约客户端的内存消耗。缩小的过程可以通过对n值进行试错及统计完成。
一种实施方式中,在用户首次进入广告位展示器所在应用时,客户端可以自服务器获取初始n值,该初始n值可以是基于历史业务需求指定的,也可以是随机的,此处不做限制。
另一方面,还可以在客户端设置埋点,上报反馈信息。反馈信息包括以下中的至少一项:当前n值、边缘问题触发次数、本次边缘问题触发方式、用户标识、客户端标识、本次上报的生命周期特征值、广告位展示器的内存开销、本条反馈信息来自单个或者多个广告位展示器。
其中,本次边缘问题触发方式是指,本次边缘问题是用户手动滑动触发的还是自动循环滑动触发的。通常而言,如果广告位展示器有自动循环播放的功能,而且用户停留在页面的时间较为长久,则自动循环滑动触发边缘问题是无可避免的,其考虑的优先级可以降低,因此主要关注点在于用户手动滑动触发边缘问题。
本次上报的生命周期特征值是指,本次上报的时间跨度是以什么作为特征值区分的。例如,特征值可以取某广告位展示器的一次生命周期内(也就是从其创建,到其运行,最后被销毁的过程,叫做它的一次生命周期);或者,特征值也可以取App运行的一次生命周期内,App运行期间可以有多个展示器被创建,所以统计的是多个展示器(展示器之间可以是不同的,例如可以有:不自动循环播放的展示器;有自动循环播放的展示器;不和用户产生交互的展示器,等等)的综合使用情况;再或者,特征值也可以取用户登录到用户退出的一次生命周期内,所以统计的是这个用户使用所有展示器的情况。
进一步的,反馈信息还可以包括其他信息。这是因为上报需要的信息量很多,具体的业务需求和统计要求所需数据也不一样,因此反馈信息中还可以包括根据业务需求和统计要求的需要,反馈的其他信息。
本申请实施例中,反馈信息上报的频次可以是1次或者多次。通常在广告位展示器的一次生命周期内统计一次反馈信息,这些反馈信息若立即上报即为1次上报,若合成多条后再批量上报,则为多次上报。批量上报时,可以在反馈信息累积数量达到预设数量阈值后进行,也可以每隔预设时间周期进行,还可以在反馈信息累积容量超过预设容量阈值后进行。以上上报策略可以单独使用,也可以联合使用,具体根据业务需求配置,此处不做限制。
需要说明的是,步骤S301与步骤S302的执行顺序可以根据实际需要设置,此处不做限制。
本申请实施例中,当服务器自客户端接收的反馈信息中的边缘问题触发次数满足预设条件时,客户端可以自服务器获取更新后的n值,其中,该更新后的n值由服务器基于反馈信息确定。
进一步的,当服务器自客户端接收的反馈信息中的边缘问题触发次数满足预设条件时,客户端自服务器获取更新后的n值可以采用如下方式实现:当边缘问题触发次数大于预设期望最大次数时,自服务器获取更新后的n值,此时更新后的n值为当前n值与预设第一增量之和;当边缘问题触发次数小于预设期望最小次数时,自服务器获取更新后的n值,此时更新后的n值为当前n值与预设第二增量之差。
也就是说,当边缘问题触发次数大于预设期望最大次数时,服务器可以将当前n值增加第一增量,得到更新后的n值,并将该更新后的n值下发至客户端。另一方面,当边缘问题触发次数小于预设期望最小次数时,服务器可以将当前n值减少第二增量,得到更新后的n值,并将该更新后的n值下发至客户端。其中,第一增量和第二增量的值根据实际需要设置,此处不做限制,但第一增量和第二增量均需要大于或者等于1。
其中,预设期望最大次数和预设期望最小次数可以根据实际需要确定,且可以进行动态调整。其初始值可以是最理想的状态,即预设期望最大次数为0,预设期望最小次数为客户端系统允许的源数据最大值范围内的随机数。也就是说,通常情况下,希望边缘问题(主要是用户手动触发边缘)越少越好,所以预设的期望最大次数可以设置为0,当客户端上报的反馈信息中的边缘问题触发次数>0时,若第一增量为3,则更新后的n= n + 3。将这个更新后的n值下发至客户端,继续运行观察一段时间,并根据运行效果继续调整或者确定出最优值。
另一方面,如果根据历史统计和市场调查,发现预设的期望最小次数为5时,客户的满意度已很高,则可以保持n不动。但是,若根据历史统计和市场调查,发现预设的期望最小次数为5时,客户的满意度虽然很高,但广告位展示器的内存开销少打,此时若客户端上报的反馈信息显示边缘问题触发次数小于5,且第二增量为1,则更新后的n=n-1。将这个更新后的n值下发至客户端,继续运行观察一段时间,并根据运行效果继续调整或者确定出最优n值。
图4是本申请实施例提供的另一种n值确定方法的流程示意图。如图4所示,该方法包括如下步骤:
在步骤S401中,响应于用户首次进入广告位展示器所在应用,自服务器获取初始n值。
在步骤S402中,周期性自服务器获取更新后的n值,每次更新后的n值均为当前n值的k分之一。
其中,k为正整数,且每次更新后的n值均大于1。
在步骤S403中,在客户端设置埋点,上报反馈信息。
其中,反馈信息包括以下中的至少一项:当前n值、边缘问题触发次数、本次边缘问题触发方式、用户标识、客户端标识、本次上报的生命周期特征值、广告位展示器的内存开销、本条反馈信息来自单个或者多个广告位展示器。
在步骤S404中,自服务器获取最优n值,该最优n值为服务器根据反馈信息对各更新后的n值对应的时间周期内,广告展示性能统计评估后得出的。
本申请实施例中,还可以采用另一种策略来确定n。该策略中,同样可以在用户首次进入广告位展示器所在应用时,客户端可以自服务器获取初始n值,该初始n值为一个较大的值,例如为客户端系统允许的源数据最大值。随后,客户端可以周期性自服务器获取更新后的n值,每次更新后的n值均为当前n值的k分之一,其中,k为正整数,且每次更新后的n值均大于1。
也就是说,服务器可以首先确定n值的初始值为一个较大的数,然后周期性地以除以k的方式(n = n/k)进行缩小,将这个缩小后的n下发至客户端,继续运行观察一段时间,并根据运行效果继续调整或者确定出最优n值。
另一方面,同样可以在客户端设置埋点,上报反馈信息,反馈信息的具体内容参见上文详细描述,此处不再赘述。服务器可以根据反馈信息对每次更新后的n值对应的时间周期内,广告展示的性能进行统计评估,得出最优n值,并将该最优n值下发至客户端。
其中,服务器在确定最优n值时,可以考虑针对单个或多个用户信息、单个或多个设备信息、单个或多个广告位展示信息以及广告位展示器所在的应用的信息等多个不同维度的信息综合计算。
例如,服务器可以单个用户为维度,对同一用户下的广告位展示器的多条上报信息进行统计,并经过多次调整反馈,得到针对该用户习惯最合适的n值。一示例中,若用户A喜欢手动滑动翻看广告,该广告位展示器只支持用户手动滑动,n最开始为1,该用户A很快触发了边缘问题。服务器经过统计分析后对n进行了更新,若第一增量为1,则更新后的n =n+1=2,将该更新后的n=2下发至客户端,客户端使用该n值在广告位展示器中进行广告展示,很快该用户A又触发了边缘问题,服务器再次更新n,且再次更新n时还可以更新第一增量。如此迭代执行,经过一段时间策略调整,服务器将第一增量更新为5,当前更新后的n值为21,客户端使用该n值在广告位展示器中进行广告展示,确定用户A已不会触发边缘问题,因为该用户的使用习惯不会滑动至太多的页,因此此时边缘问题触发率为0,则可以将该n=21作为最优n值。
另一示例中,某广告位展示器是一个只支持自动循环播放的广告位展示器,在多台设备一段时间内的统计数据中,其边缘问题触发次数除了可以统计出总数,也可以统计出一个百分比。具体的,假设每3秒切换一次广告图片,一共k张广告图片,则3*k*n时间内必然有一次边缘触发问题,但是很多用户在页面停留时间并不能达到3*k*n时间,所以一条上报数据中的边缘问题触发次数为0,另一条上报数据中的边缘问题触发次数为3,另一条上报数据中的边缘问题触发次数为1……即上报的边缘问题触发次数是一个百分比,通过动态调节n值,可以让边缘触发问题次数(包括其百分比)显著减少。而且,由于广告的数量和内容随时在变化,因此k也是一个变化的值,所以n也可以跟着k动态调整。
本申请实施例中,服务器下发n值至客户端的方式可以是,用HTTP等方式,单独开接口供客户端使用,客户端可以根据业务需求,在合适的时机请求这个接口(例如App启动时),或者用轮询的方式,定时请求这个接口。下发方式也可以是用socket长连接的方式,服务器一直保持和客户端的通信,随时更新下发。下发方式还可以是用HTTP等方式,但是在每一个服务器接口上保持一个独立网关,独立网关负责下发最新的n值,所以n值可以随着客户端的任意接口的请求,随时更新下发。
进一步的,下发的数据可以包括n值、n对应的广告位展示器、用户标识、客户端标识和其他信息。其中,由于不同的广告位展示器可能具有不同的n值,因此下发的数据中需要包括n对应的广告位展示器。同样的,由于不同的用户可能具有不同的n值,不同的客户端也可能具有不同的n值,因此下发的数据中需要包括用户标识和客户端标识。其他信息可能是标识其他维度的信息,或者其他业务需求的信息。
更进一步的,客户端在获取到服务器下发的n值后,可以将其立即存储并应用。具体的,客户端可以立即更新现有的、且n对应的广告位展示器的数据源个数,并刷新可滑动视图。客户端还可以在新的广告位展示器创建时,查询其对应的n,构造数据源,刷新可滑动视图。客户端还可以在用户登入时,查询其对应的n,预备使用,并在用户登出时,删除内存中的n。客户端还可以在程序启动时,服务器请求最新的所有n并更新自身的存储。
图5是本申请实施例提供的另一种广告展示方法的流程示意图。其中,图5所示实施例中的步骤S501至步骤S505与图1所示实施例中的步骤S101至步骤S105基本相同,此处不再赘述。如图5所示,该方法还包括如下步骤:
在步骤S506中,响应于用户首次进入广告位展示器所在应用,确定广告的数据源中,目标数据对应的索引为待展示图片的索引,基于待展示图片的索引自数据源获取当前待展示图片的源图片。
其中,目标数据为广告的数据源中,与最小索引值对应的数据的距离大于第一距离阈值,且与最大索引值对应的数据的距离大于第二距离阈值的数据中的任意一项数据。
本申请实施例提供的技术方案旨在通过扩大数据源,构造一个伪无限滚动的控件,以使用户可以随意滑动而基本不会达到边缘。然而,n的取值有限,且不同用户的滑动习惯不同,因此仍然可能存在滑动至边缘的情况。因而需要对该情况进行处理。
首先可以设置数据源的初始位置,即用户初次进入广告位展示器所在应用时,展示的第一张图片。如果不对该初始位置进行设置,若初始位置为第一张图片时,若用户向前滑动,则索引会由1变为-1,从而触发边缘问题。同样的,若初始位置为第t张图片时,若用户向后滑动,则索引会由t变为t+1,若t为索引最大值,则t+1超出了索引范围,同样也会触发边缘问题。因此,为尽量避免边缘问题,可以将可滑动视图的初始位置设置为中点或靠近中点的位置。即,在展示数据源之前,可以无动画方式设置可滑动视图的滑动位置为中点或靠近中点的位置。其中,向前滑动可以是向左或者向上滑动,向后滑动可以是向右或者向下滑动,根据可滑动视图的配置确定。
也就是说,当用户首次进入广告位展示器所在应用时,可以确定广告的数据源中,目标数据对应的索引为待展示图片的索引,基于索引自数据源获取当前待展示图片的源图片。其中,目标数据可以是广告的数据源中,与最小索引值对应的数据的距离大于第一距离阈值,且与最大索引值对应的数据的距离大于第二距离阈值的数据中的任意一项数据。第一阈值与第二阈值的取值可以根据实际需要确定,且第一阈值与第二阈值可以相等,也可以不相等。
本申请实施例中,可滑动视图的系统回调函数可以返回每次滑动后待展示图片的索引。然而,如前所述,回调函数返回的索引可能会触发边缘问题,此时,可以在滑动至最后一张图片时,将向后滑动的下一个索引直接设置为一个靠近中间的索引值,以及在滑动至第一张图片时,将向前滑动的下一个索引同样直接设置为一个靠近中间的索引值,以避免后续滑动时很容易再次遇到滑动边缘问题。
图6是本申请实施例提供的确定滑动后待展示图片的索引的方法的流程示意图。如图6所示,该方法包括如下步骤:
在步骤S601中,响应于接收到用户手动滑动消息,或者接收到自动滑动消息,自可滑动视图的系统回调函数获取当前展示图片的索引。
在步骤S602中,响应于确定当前展示图片的索引大于数据源中的索引最大值,确定数据源中的第一中间索引值为滑动后待展示图片的索引。
其中,第一中间索引值对应的数据为与最小索引值对应的数据的距离大于第三距离阈值,且与最大索引值对应的数据的距离大于第四距离阈值的数据中,与广告源数组中的第一个数据相同的数据。
在步骤S603中,响应于确定当前展示图片的索引小于数据源中的索引最小值,确定数据源中的第二中间索引值为滑动后待展示图片的索引。
其中,第二中间索引值对应的数据为与最小索引值对应的数据的距离大于第五距离阈值,且与最大索引值对应的数据的距离大于第六距离阈值的数据中,与广告源数组中的最后一个数据相同的数据。
本申请实施例中,当接收到用户手动滑动消息,或者接收到自动滑动消息时,客户端可以自可滑动视图的系统回调函数获取当前展示图片的索引。进一步的,若自回调函数获取的索引大于数据源中的索引最大值时,可以确定数据源中的第一中间索引值为滑动后待展示图片的索引,该第一中间索引值对应的数据为与最小索引值对应的数据的距离大于第三距离阈值,且与最大索引值对应的数据的距离大于第四距离阈值的数据中,与广告源数组中的第一个数据相同的数据。其中,第三距离阈值和第四距离阈值的取值可以根据实际需要确定,能够保证确定的滑动后待展示图片的索引为一个靠近中间的值,以避免后续滑动时很容易再次遇到滑动边缘问题即可。
一示例中,若广告源数据包括A、B、C和D四个数据,扩容后的数据源包括n组数据,每组数据包括顺序排列的A、B、C和D四个数据。当自回调函数获取的当前展示图片的索引为t+1时,可以确定第m个数据A对应的索引为滑动后待展示图片的索引,其中,m为小于n的正整数,且m的取值最好接近n的中位数。
另一方面,若自回调函数获取的索引小于数据源中的索引最小值时,可以确定数据源中的第二中间索引值为滑动后待展示图片的索引,该第二中间索引值对应的数据为与最小索引值对应的数据的距离大于第五距离阈值,且与最大索引值对应的数据的距离大于第六距离阈值的数据中,与广告源数组中的最后一个数据相同的数据。其中,第五距离阈值和第六距离阈值的取值同样可以根据实际需要确定,能够保证确定的滑动后待展示图片的索引为一个靠近中间的值,以避免后续滑动时很容易再次遇到滑动边缘问题即可。
以在iOS系统中实现为例,可以在可滑动视图的iOS系统回调函数中进行如下设置:在可滑动视图的回调函数中获取当前所滑动图片的索引,如果已经为最后一个或者第一个,则直接设置可滑动视图滑动到靠近中间的一张广告源数据中的第一个图片上或者靠近中间的一张广告源数据中的最后一个图片上即可。
本申请实施例中,源图片可以包括以下数据:源图片的统一资源定位符;源图片的唯一标识;源图片的最优展示区域;最优展示区域在广告位展示器的展示框中的期望位置;留白色;源图缩放阈值,源图缩放阈值为源图填充时允许的最大缩放比例;是否过渡美化和其他数据。其中,源图片的统一资源定位符和源图片的唯一标识为必须数据;源图片的最优展示区域、最优展示区域在广告位展示器的展示框中的期望位置、留白色、源图缩放阈值、是否过渡美化和其他数据为可选数据。
其中, 源图片的最优展示区域是根据业务需求制定的广告图片的最优展示区域,其可以是整张广告图,也可以是广告图的某一个部分。当某源图片的最优展示区域是整张广告图时,该源图片的最优展示区域等于源图片;当某源图片的最优展示区域是广告图的某一个部分时,该源图片的最优展示区域小于源图片。
最优展示区域在广告位展示器的展示框中的期望位置可以是服务器指定的,也可以是客户端自行指定的。由于最优展示区域可能与展示框无法完全重合,因此需要规定最优展示区域放置于展示框中的什么位置以实现最佳展示效果。
留白是指,由于广告图的长宽以及长宽比例与展示框的长宽以及长宽比例往往不能保证完全一致,在不一致时,展示框中的图片通常会进行居中展示,其余部分展示展示器设置的背景色,这部分展示背景色的区域称为留白。留白部分的颜色即留白色,可以根据业务需求制定并由服务器下发,也可以由客户端自行计算,或者使用广告位展示器所在应用的主色调。
源图缩放阈值是指源图填充时允许的最大缩放比例,其通常根据业务需求制定,以保证对源图片的缩放不会大幅影响展示效果。
是否过渡美化可以是一个布尔值,在有留白时进行该参数的判断,若其值为真表示需要美化,否则不进行美化。
图7是本申请实施例提供的一种对源图片进行适配处理得到优化后的源图片的方法的流程示意图。如图7所示,该方法包括如下步骤:
在步骤S701中,绘制上下文。
其中,上下文的宽高与广告位展示器的展示框的宽高一致,且上下文的缩放比例与待显示广告的应用的缩放比例一致。
在步骤S702中,调用缩放图片算法基于最长边适配方法对源图片进行缩放,得到缩放后的源图片以及第一缩放基准。
在步骤S703中,响应于确定第一缩放基准小于或者等于源图缩放阈值,或者第一缩放基准大于源图缩放阈值且源图片的最优展示区域等于源图片,调用判断留白算法判断源图片是否有留白。
在步骤S704中,若否则确定缩放后的源图片为优化后的源图片。
在步骤S705中,若是则基于最优展示区域在广告位展示器的展示框中的期望位置,对缩放后的源图片进行位置调整,基于留白色确定留白部分颜色,并在是否过渡美化数据为是时对留白部分进行过渡美化,得到优化后的源图片。
客户端设备是众多的,客户端中的广告位展示器的尺寸也是多变的。广告图由于是在服务器后端运营团队生成的,其无法适配所有客户端,因此需要进行适配处理。客户端常规的广告图在广告位展示器中的适配处理通常采用简单设计,例如选取“拉伸展示”,或最长边适配,最短边适配等方法,这种统一决定展示方式的办法太过简单,无法针对不同的广告图适配得到最优的展示效果,不利于提升用户体验。
鉴于此,本申请实施例提供了一种对源图片进行适配处理,得到优化后的源图片的方法。该方法能够针对不同客户端、不同广告位展示器以及不同广告图进行不同的适配处理,以使得到的优化后的源图片能够以最佳展示效果在广告位展示器中进行展示。
本申请实施例中,在对源图片进行适配处理时,可以首先在客户端中绘制上下文,该上下文的宽高与广告位展示器的展示框的宽高一致,且上下文的缩放比例与待显示广告的应用的缩放比例一致。在一些实施方式中,若无法设置上下文的宽高与广告位展示器的展示框的宽高一致,也可以设置上下文的宽高比与广告位展示器的展示框的宽高比一致。
接下来可以调用缩放图片算法基于最长边适配方法对源图片进行缩放,得到缩放后的源图片以及第一缩放基准。具体的,可以首先计算得到源图片的宽高比。然后计算得到源图片的宽与广告位展示位的展示框的宽的比例,称为宽比例,计算得到源图片的宽与广告位展示位的展示框的高的比例,称为高比例。接着取宽比例和高比例中的最大值作为第一缩放基准,最大值对应的边作为不变的边。也就是说,若最大值为宽比例,则将广告位展示位的展示框的宽作为不变的边,即将源图片的宽缩放至与广告位展示位的展示框的宽相等。或者,若最大值为高比例,则将广告位展示位的展示框的高作为不变的边,即将源图片的高缩放至与广告位展示位的展示框的高相等。最后,根据计算得到的源图片的宽高比以及上述不变的边计算得到源图片缩放后的另一边的长度值,即可得到缩放后的源图片。
需要说明的是,在具体计算时宽比例也可以是广告位展示位的展示框的宽与源图片的宽的比例,高比例也可以是广告位展示位的展示框的高与源图片的高的比例,此时应当取宽比例和高比例中的最小值作为第一缩放基准。
本申请实施例中,可以将计算得到的第一缩放基准与源图片中携带的源图缩放阈值进行比较,若第一缩放基准小于或者等于源图缩放阈值,或者第一缩放基准虽然大于源图缩放阈值,但该源图片的最优展示区域等于源图片,则可以直接对该源图片进行下一步处理。
本申请实施例中,对源图片进行下一步处理时,首先调用判断留白算法判断源图片是否有留白。若否则确定缩放后的源图片为优化后的源图片。反之,若是则基于最优展示区域在广告位展示器的展示框中的期望位置,对缩放后的源图片进行位置调整,基于留白色确定留白部分颜色,并在是否过渡美化数据为是时对留白部分进行过渡美化,得到优化后的源图片。
其中,最优展示区域在广告位展示器的展示框中的期望位置可以是默认居中,或者其他期望位置,例如向上对齐、向下对齐、向左对齐或者向右对齐等。
广告位展示器可以在初始化时默认采用最长边适配,该最长边适配以图片的最长边和适配框相等为依据,保持和源图片等比缩放的形式,把图片缩放在广告位展示器的固定大小框中,确保图片完全展示在展示器的框架中,如果有多出来的部分,则多出来的部分例如可以设置为展示器的底色。以在iOS系统中实现为例,可以将广告位展示器的模式固定为iOS系统的ContentMode枚举定义中的scaleAspectFit模式。在该模式下,若是期望位置为默认居中则可以不进行位置调整,直接进行后续确定留白色以及判断是否需要过渡美化的步骤。否则,需要根据优化后的源图片生成一张与广告位展示器的展示框一样大小的图片,将该图片按照期望位置填充进展示框,并根据需要对生成的图片中的留白部分进行留白色设置和过渡美化。
另外,缩放图片算法、判断留白算法、留白色的确定方法和过渡美化方法的具体实现方法参见后文详细描述,此处不再赘述。
图8是本申请实施例提供的另一种对源图片进行适配处理得到优化后的源图片的方法的流程示意图。如图8所示,该方法包括如下步骤:
在步骤S801中,绘制上下文。
其中,上下文的宽高与广告位展示器的展示框的宽高一致,且上下文的缩放比例与待显示广告的应用的缩放比例一致。
在步骤S802中,调用缩放图片算法基于最长边适配方法对源图片进行缩放,得到第一缩放基准。
在步骤S803中,响应于确定第一缩放基准大于源图缩放阈值且源图片的最优展示区域小于源图片,将最优展示区域确定为待展示图片,调用判断留白算法判断待展示图片是否有留白。
在步骤S804中,若否,确定待展示图片为优化后的源图片。
在步骤S805中,若是,调用缩放图片算法中的求缩放图片基准算法,基于待展示图片和广告位展示器信息计算得到第二缩放基准。
在步骤S806中,调用缩放图片算法中的计算图片缩放后的尺寸算法,基于第二缩放基准、源图片以及广告位展示器信息对源图片进行缩放,得到缩放后的源图片。
在步骤S807中,基于最优展示区域在广告位展示器的展示框中的期望位置,对缩放后的源图片进行位置调整,基于留白色确定留白部分颜色,并在是否过渡美化数据为是时对留白部分进行过渡美化,得到优化后的源图片。
本申请实施例中,当第一缩放基准大于源图缩放阈值且源图片的最优展示区域小于源图片,此时需要将最优展示区域而非缩放后的源图片作为适配处理的对象,进行优化,此时可以将最优展示区域作为待展示图片。优化时,首先调用判断留白算法判断待展示图片是否有留白,若否,确定待展示图片为优化后的源图片。反之,若是则需要对待展示图片进一步进行处理。
本申请实施例中,可以调用缩放图片算法中的求缩放图片基准算法,基于待展示图片和广告位展示器信息计算得到第二缩放基准。然后调用缩放图片算法中的计算图片缩放后的尺寸算法,基于第二缩放基准、源图片以及广告位展示器信息对源图片进行缩放,得到缩放后的源图片。最后基于最优展示区域在广告位展示器的展示框中的期望位置,对缩放后的源图片进行位置调整,基于留白色确定留白部分颜色,并在是否过渡美化数据为是时对留白部分进行过渡美化,得到优化后的源图片。采用这种方式,通过直接计算最优展示区域对应的第二缩放基准,使用该第二缩放基准对源图片进行缩放,从而得到优化后的源图片,无需计算最优展示区域在源图片中的位置,并提取源图片中除最优展示区域外的剩余部分,大幅降低了计算复杂度,提高了优化效率。
其中,求缩放图片基准算法和计算图片缩放后的尺寸算法的具体实现方法参见后文详细描述,此处不再赘述。
进一步的,如果所述源图片的期望位置数据项的值为“默认居中”,且是否过渡美化数据项的值为真,则可以采用一种更简洁的方式进行处理。具体的,可以首先将输入图片赋值至广告位展示器,通过广告位展示器自身的设置让图片缩放后适配长边进行居中;然后对广告位展示器进行截图操作,得到一张图片;最后对得到的该图片调用判断留白算法进行处理,并对留白部分进行过渡美化处理,从而得到优化后的源图片。
图9是本申请实施例提供的判断留白算法的实现方法的流程示意图。如图9所示,该方法包括如下步骤:
在步骤S901中,获取输入图片的长宽值以及长宽比例。
在步骤S902中,获取广告位展示器的展示框的长宽值和长宽比例。
在步骤S903中,响应于确定输入图片的长宽值与广告位展示器的展示框的长宽值完全匹配,或者输入图片的长宽比例与广告位展示器的展示框的长宽比例相等,确定输入图片没有留白。
在步骤S904中,否则确定输入图片有留白。
本申请实施例中,判断留白算法的入参可以是一幅图片,或者图片的长和宽,算法的返回值是一个布尔值,真代表没有留白,假代表有留白。其中,入参的图片可以是可以在留白区域中需要过渡的边缘上选取的一个较小区域得到的图片。也就是说,可以选择缩放后的图中需过渡边缘上一个较小区域(区域的长度要和边缘一致,其高度可以自选,但是要小一些,这样才可以准确得到边缘的主色),作为提取主色的区域,并将该区域构成的图像作为留白算法的入参。
本申请实施例中,可以首先获取输入图片的长宽值以及长宽比例,并获取广告位展示器的展示框的长宽值和长宽比例。若确定输入图片的长宽值与广告位展示器的展示框的长宽值完全匹配,或者输入图片的长宽比例与广告位展示器的展示框的长宽比例相等,确定输入图片没有留白。否则确定输入图片有留白。
一示例中,若输入图长为1200,宽为600,其长和宽的比例为1200/600=2;同时第一广告位展示器的展示框长为1200,宽为600。则该输入图片与第一广告位展示器的展示框完全匹配,因为两者的长宽均相等。此时,将输入图片输入至第一广告位展示器没有留白。
另一示例中,若输入图长为1200,宽为600,其长和宽的比例为1200/600=2;同时第二广告位展示器的展示框长为1000,宽为500,其长和宽的比例为1000/500=2。则该输入图片与第二广告位展示器的展示框也完全匹配,因为两者的长宽比例相等,输入图片经过缩放后,可以完全匹配到第二广告位展示器的展示框中。此时,将输入图片输入至第二广告位展示器没有留白。
又一示例中,若输入图长为1200,宽为600,其长和宽的比例为1200/600=2;同时第三广告位展示器的展示框长为1000,宽为400,其长和宽的比例为1000/400=2.5。则第三广告位展示器不能充分展示输入图片,二者不匹配。此时,将输入图片输入至第三广告位展示器有留白。
本申请实施例中,缩放图片算法由求缩放图片基准算法和计算图片缩放后的尺寸算法组成,以下分别介绍求缩放图片基准算法和计算图片缩放后的尺寸算法的具体实现方式。
图10是本申请实施例提供的求缩放图片基准算法的实现方法的流程示意图。如图10所示,该方法包括如下步骤:
在步骤S1001中,获取输入图片与广告位展示器的展示框的长比例,以及输入图片与广告位展示器的展示框的宽比例。
在步骤S1002中,确定该长比例和宽比例中的最大值为缩放基准。
本申请实施例中,求缩放图片基准算法的入参可以是一幅图片,或者图片的长和宽,以及广告位展示器的展示框的长和宽,算法的返回值是一个浮点数值,也就是计算得到的缩放基准。
本申请实施例中,求缩放图片基准时,可以首先根据输入图片的长和广告位展示器的展示框的长计算得到长比例,即长比例=输入图片的长/广告位展示器的展示框的长,同时根据首先根据输入图片的宽和广告位展示器的展示框的宽计算得到宽比例,即宽比例=输入图片的宽/广告位展示器的展示框的宽。然后确定上述长比例和宽比例中的最大值为缩放基准。
需要说明的是,这里的长也可以是高,根据实际情况调整。另一方面,在实际使用时也可以分别计算广告位展示器的展示框与输入图片的长比例或者高比例(即广告位展示器的展示框的长/输入图片的长,或者广告位展示器的展示框的高/输入图片的高),以及广告位展示器的展示框与输入图片的宽比例(广告位展示器的展示框的宽/输入图片的宽),并将其中的最小值确定为缩放基准。
图11是本申请实施例提供的计算图片缩放后的尺寸算法的实现方法的流程示意图。如图11所示,该方法包括如下步骤:
在步骤S1101中,将确定缩放基准的长比例或者宽比例对应的展示框的长或者宽确定为展示框的参考边。
在步骤S1102中,将输入图片中与展示框的参考边对应的边缩放至与该展示框的参考边相等。
在步骤S1103中,获取输入图片的长宽比例,基于输入图片缩放后的边的尺寸以及该长宽比例计算得到另一条边的尺寸,进而得到缩放后的图片尺寸。
本申请实施例中,计算图片缩放后的尺寸算法的入参可以是一幅图片,或者图片的长和宽,广告位展示器的展示框的长和宽,以及计算得到的缩放基准,算法的返回值是一幅缩放后的图片。
本申请实施例中,计算图片缩放后的尺寸时,可以首先基于缩放基准确定广告位展示器的展示框的不变边。如前所述,当宽比例=输入图片的宽/广告位展示器的展示框的宽,且缩放基准对应宽比例的最大值时,或者当宽比例=广告位展示器的展示框的宽/输入图片的宽,且缩放基准对应宽比例的最小值时,可以确定展示框的不变边为宽。当高比例=输入图片的高/广告位展示器的展示框的高,且缩放基准对应高比例的最大值时,或者高比例=广告位展示器的展示框的高/输入图片的高,且缩放基准对应高比例的最小值时,展示框的不变边为高。当长比例=输入图片的长/广告位展示器的展示框的长,且缩放基准对应长比例的最大值时,或者长比例=广告位展示器的展示框的长/输入图片的长,且缩放基准对应长比例的最小值时,展示框的不变边为长。
在确定了展示框的不变边后,可以将输入图片中展示框的不变边对应的边缩放至与该展示框的不变边相等。例如,若展示框的不变边为宽,则可以将输入图片的宽缩放至与展示框的宽相等,若展示框的不变边为长,则可以将输入图片的长缩放至与展示框的长相等。
最后,可以根据输入图片的长和宽计算得到输入图片的长宽比例,然后根据输入图片缩放后的边的尺寸以及该长宽比例计算得到另一条边的尺寸,进而得到缩放后的图片尺寸。
一示例中,若输入图片的长为1200,宽为600,其长宽比例为1200/600=2;广告位展示器的展示框的长为350,宽为150。可以计算得到宽比例为600/150=4,长比例为1200/350=3.429。由于4大于3.429,因此取4作为缩放基准,且由于4对应的是宽比例,因此将展示框的宽作为不变边。最后计算得到缩放后的图片的宽等于展示框的宽,为150;缩放后的图片的长等于缩放后的图片的宽乘以输入图片的长宽比例,即150*2=300。此时,展示框的长中多出来的50即为留白。
本申请实施例中,留白色可以根据业务需求指定,再由服务器通过数据下发,也可以由客户端自行计算得出,还可以采用广告位展示器所在应用的主色调。具体的,如果图片数据中有留白色,则可以直接采用,这是最快捷的方式。如果图片数据中没有留白色,但业务需求有指定的颜色,例如采用广告位展示器所在应用的主色调,也不用计算。但如果上述都没有,较好的实践体验是从广告图中计算得到一个主要的颜色即主色,作为留白色。
图12是本申请实施例提供的确定留白色的方法的流程示意图。如图12所示,该方法包括如下步骤:
在步骤S1201中,在留白区域中确定留白色提取区域。
在步骤S1202中,获取留白色提取区域中的像素数组。
在步骤S1203中,遍历像素数组中的每个像素,统计每种颜色出现的次数。
在步骤S1204中,将出现次数最多的颜色确定为留白色。
本申请实施例中,在客户端自行确定留白色时,可以首先在留白区域中确定留白色提取区域,然后获取留白色提取区域中的像素数组。接下来遍历像素数组中的每个像素,统计每种颜色出现的次数。最后将出现次数最多的颜色确定为留白色。
也就是说,可以在留白区域中需要过渡的边缘上选取一个较小的区域,作为提取主色的区域,得到其像素数组。其中,该提取主色的区域的长度需要与展示框的边缘一致,高度可以任选,最好是小一些。同时,图片最好是缩放后的图片而非源图片,因为未经缩放的源图片像素较多,计算量太大。
接下来遍历数组中的每个像素,统计每种颜色出现的次数。其中,统计的数据结构可以是一个字典,其键(key)是出现过的颜色,值(value)是统计的颜色出现次数。当遇到一个像素时,就检查其颜色是否出现在字典中,如果出现,就让对应的的value加1,否则就在字典中新增一个key-value映射。
最后,在一次循环数组后,可以将出现次数最多的颜色确定为主色。如果统计出来出现次数最多的颜色有多个,任选一个作为主色即可。进一步的,作为一个优化方案,该一次循环数组可以不执行完全,当统计确定字典中某个颜色对应的次数已经超过数组个数的一半时,即可停止循环,并将这个颜色确定为主色,即留白色。
本申请实施例中,当源图片中的是否过渡美化数据值为真时,表明需要对图片进行过渡美化。其中,对留白部分进行过渡美化可以是首先对留白部分与优化后的源图片的交界部分添加渐变层;然后对留白部分与优化后的源图片的交界部分的预设范围延伸区域以及留白部分覆盖模糊层,实现对留白部分的过渡美化;其中,模糊层包括高斯模糊层、线性模糊层、径向模糊层或者其他模糊方法。
也就是说,过渡美化可以包括渐变和模糊,具体步骤为:将主色绘制在上下文中的留白处;根据业务需求,可选地在图片边缘加上渐变层,让过渡更自然。尤其是当留白色并非从图片占比最多色中选取,而是指定的某种颜色时,渐变层变得更有必要。选择图片边缘延伸一定的区域+留白区域,在其上覆盖模糊层。
模糊层可以在上下文的图片导出后进行覆盖。例如使用iOS系统提供的毛玻璃View。或在上下文中绘制模糊层后,再导出图片。
图13是本申请实施例提供的又一种广告展示方法的流程示意图。其中,图13所示实施例中的步骤S1301至步骤S1305与图1所示实施例中的步骤S101至步骤S105基本相同,此处不再赘述。如图13所示,该方法还包括如下步骤:
在步骤S1306中,在得到优化后的源图片后,再次获取当前待展示图片的索引。
在步骤S1307中,响应于确定当前待展示图片的索引与源图片的索引相同,将优化后的源图片应用至可滑动视图,以在客户端的广告位展示器中展示广告。
在步骤S1308中,响应于确定当前待展示图片的索引与源图片的索引不同,获取当前待展示图片的源图片,并重复执行对源图片进行适配处理得到优化后的源图片、再次获取当前待展示图片的索引、确定当前待展示图片的索引与源图片的索引是否相同的步骤,直至确定当前待展示图片的索引与源图片的索引相同,将优化后的源图片应用至可滑动视图,以在客户端的广告位展示器中展示广告。
本申请实施例中,源图片中保存的是图片的统一资源定位符,当某一图片需要被真实使用时,根据该图片的统一资源定位符去下载该图片的二进制数据流。相关技术中通常根据配置数据一次性下载完成所有广告图片然后展示到广告位展示器中,该方法会造成一些性能浪费:用户不一定会浏览到所有的广告,尤其是对于那些没有自动循环播放的广告位展示器来说,所以全量下载有些浪费流量和内存。
因此,在本申请实施例中,可以当广告位展示器滑动到某个图片前、这个图片即将被展示时,才去请求该图片的真实的图片二进制数据,并做好本地缓存,并且,在配置数据未变化的情况下,使用本地缓存,而不是再次去下载图片,从而提高流量和内存使用效率。进一步的,在图片被展示而其真实图片尚未下载完成时候,可以显示加载动画。
此时,可能存在根据用户手动或者自动滑动得到的下一个索引下载并优化好图片前,用户可能再次进行了手动滑动,即当前得到的优化后的图片与当前索引并不相符的情况,这将导致广告图片的展示错误。为避免这种情况的发生,可以在得到优化后的源图片后,再次获取当前待展示图片的索引。若确定当前待展示图片的索引与源图片的索引相同,将优化后的源图片应用至可滑动视图,以在客户端的广告位展示器中展示广告。否则,获取当前待展示图片的源图片,并重复执行对源图片进行适配处理得到优化后的源图片、再次获取当前待展示图片的索引、确定当前待展示图片的索引与源图片的索引是否相同的步骤,直至确定当前待展示图片的索引与源图片的索引相同,将优化后的源图片应用至可滑动视图,以在客户端的广告位展示器中展示广告。
也就是说,由于可滑动视图由单元组成,当滑动到下一个单元时,会进入滑动视图的系统回调函数,在回调函数中可以读取处理好的数据源,并根据当前即将进入的索引,得到图片对应的数据。此时,如果图片数据有对应的缓存结果图片,可以直接采用缓存结果图片,如果图片数据没有对应的缓存结果图片,则需异步下载图片。由于获取图片的过程可能是异步执行的,即包括源图片下载和图片优化处理两个过程,这两个过程都需要处理时间,且通常会由子线程处理,此时若主线程上用户或者自动循环播放仍然在继续滑动广告位展示器,则该异步处理时对应的索引可能已经失效,此时直接将异步处理得到的图片对可滑动视图进行赋值会出现错误。因此,此时需要重新获取图片数据对应的索引,并判断索引对应的单元是否还在屏幕上。若是则继续赋值,否则则不进行处理。
图14是本申请实施例提供的再一种广告展示方法的流程示意图。其中,图14所示实施例中的步骤S1401至步骤S1405与图1所示实施例中的步骤S101至步骤S105基本相同,此处不再赘述。如图14所示,该方法还包括如下步骤:
在步骤S1406中,使用优化后的源图片更新待展示广告的数据源,得到待展示广告的图片数据数组。
在步骤S1407中,将图片数据数组保存在客户端,作为第一数据源。
在步骤S1408中,响应于客户端再次自服务器获取待展示广告的数据源,确定再次获取的数据源为第二数据源。
在步骤S1409中,比较第一数据源和第二数据源,将第一数据源中不存在且第二数据源中存在的数据进行标记,将第一数据源和第二数据源中都存在且在第二数据源中进行了更新的数据进行标记,将第二数据源中不存在且第一数据源中存在的数据删除。
本申请实施例中,优化后的源图片可以在客户端进行缓存,以供客户端重复使用。缓存时,可以将由优化后的源图片组成的广告的图片数据数组进行保存。
本申请实施例中,可以首先使用优化后的源图片更新待展示广告的数据源,得到待展示广告的图片数据数组,并将图片数据数组保存在客户端,作为第一数据源。然后在客户端再次自服务器获取待展示广告的数据源时,确定再次获取的数据源为第二数据源。比较第一数据源和第二数据源,将第一数据源中不存在且第二数据源中存在的数据进行标记,将第一数据源和第二数据源中都存在且在第二数据源中进行了更新的数据进行标记,将第二数据源中不存在且第一数据源中存在的数据删除。
也就是说,服务器可随时更新广告的数据源,数据源就是一个数组,每次拉取到服务器的最新数组后,对其进行一次循环,和本地缓存逐个对比,将服务器不一样的数据进行重新生成图片标记:对服务器数组比本地数组多出来的新数据,或者更新过的老数据,进行标记;对本地数组比服务器数字多出来的老数据,直接删除;对其余数据不进行标记。
本申请实施例中,广告源数组由客户端上传至服务器。其中,广告源数组即广告的图片可以在网页端系统制作,也可以在移动端应用上制作后,上传到服务器的图片存储上。无论客户端是具体哪种,都要经历一个图片数据上传的过程。这个过程中涉及流量的消耗,链路越短越好。
通常为了客户端和服务器通信的简单,一般的上传方案设计为:客户端通过一个上传接口,把单个或者多个图片二进制数据带在超文本传输协议(Hypertext TransferProtocol,HTTP)请求的正文上,发送到服务器,服务器接到数据后,进行处理,例如给每个图片加上水印、唯一标识等,再和实际的存储图片的服务器进行通信,把图片数据真正落库。
这样实现方式存在如下缺陷:
1)流量消耗翻倍:由于图片经过了至少两次传输,第一次是客户端到服务器,第二次是服务器到存储服务器,这会造成流量的浪费。
2)内存消耗:服务器可能存储了图片,再传给存储服务器,这样存了至少两份,造成存储空间的冗余。即使图片没有存储到硬盘,服务器也必须在缓存或者内存中存储图片,再传给存储服务器,这对服务器内存和性能也是不必要的损耗。
3)断点继传:由于一次批量上传多个图片,且网络存在不确定因素,很容易断掉,这就需要额外的逻辑来处理断点继传或者容错或者重试处理机制,这会增加设计复杂度。
鉴于此,本申请实施例提供了一种由客户端将广告源数组上传至服务器的方法。
图15是本申请实施例提供的客户端将广告源数组上传至服务器的方法的流程示意图。如图15所示,该方法包括如下步骤:
在步骤S1501中,客户端整理待上传的广告源数组信息。
其中,广告源数组信息包括资源唯一标识、资源名称、资源大小和资源类型,资源为广告资源。
在步骤S1502中,客户端将广告源数组信息上传至存储资源的存储服务器,并自存储服务器接收返回信息数组以及统一资源定位系统标识。
其中,返回信息数组包括上传时的资源的唯一标识、存储服务器分配的资源唯一标识符和上传资源的地址。
在步骤S1503中,客户端将资源上传至统一资源定位系统,并获取资源的资源下载链接和统一资源定位符。
本申请实施例中,客户端可以首先整理待上传的广告源数组信息,其中,广告源数组信息包括资源唯一标识、资源名称、资源大小和资源类型,资源为广告资源。接下来,客户端可以将广告源数组信息上传至存储资源的存储服务器,并自存储服务器接收返回信息数组以及统一资源定位系统标识,其中,返回信息数组包括上传时的资源的唯一标识、存储服务器分配的资源唯一标识符和上传资源的地址。最后,客户端将资源上传至统一资源定位系统,并获取资源的资源下载链接和统一资源定位符。
也就是说,客户端可以首先整理待上传的资源数组的信息,资源包括:图片,文件,视频,资源数组信息包括资源唯一标识、资源名称、资源大小和资源类型。其中,资源唯一标识例如可以是对资源生成的信息摘要算法MD5,资源名称可以由客户端生成,资源大小可以由客户端计算得出,资源类型包括文件FILE、图片IMAGE和视频VIDEO。
然后,客户端向存储服务器提供的接口A发起一个HTTP请求,把上述资源数组上传,这个接口返回给客户端一个数组,返回的数组与上传的信息的资源数组个数相同,一一对应,返回的数组的包括如下信息:上传时的资源的唯一标识、存储服务器分配的资源唯一标识符和上传资源的地址,其中,上传时的资源的唯一标识是资源数组信息中的资源唯一标识,通过查找这个字段,客户端就能把自己的信息和服务器返回的信息一一对应上。存储服务器分配的资源唯一标识符是存储服务器为资源分配的唯一标识符。上传资源的地址是客户端接下来,要真正上传资源时的上传地址。
接下来,客户端开启多线程或者多队列服务进行资源上传,每个服务仅负责上传一个资源,从而让多个资源并行上传到存储服务器。如果某一个服务的资源上传失败,重试即可。
最后,当所有资源都上传完毕后,存储服务器需要为客户端分配需要下载的统一资源定位符。具体的,客户端可以向存储服务器提供的接口B发起一个HTTP请求,需要获取一些数据。接口B的入参为一个数组,表示请求多个资源的下载连接,数组中的入参包括:具体类型要求的细节参数和存储服务器分配的资源唯一标识符。
其中,具体类型要求的细节参数是可选的。例如资源是图片时,细节参数可以包括图片的宽,高,格式等;资源是视频时,细节参数可以包括视频的宽,高,时长,封面格式等;资源是文件时,细节参数可以包括文件的大小,后缀等。
存储服务器分配的资源唯一标识符为存储服务器向客户端返回的数组中的存储服务器分配的资源唯一标识符。通过该标识符,存储服务器可以获取客户端请求的资源,返回其下载统一资源定位符。
存储服务器收到客户端的请求后,通过查询,将下载链接封装为一个数组,返回的数组上传的信息数组个数相同,一一对应,返回的数组包括如下参数:资源下载链接和存储服务器分配的资源唯一标识符。
采用本申请实施例的技术方案,通过简洁的框架设计实现了广告位展示器中的广告展示,降低开发人员的维护难度。设计了广告图片在广告位展示器中的优化填充方式,提升用户体验。对优化后的图片利用缓存减少计算次数,降低设备内存负荷。在不影响展示逻辑的情况下尽可能延迟加载,降低用户流量消耗。同时还设计了上传时的省流设计方案,进一步降低了展示成本。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图16是本申请实施例提供的一种广告展示装置的示意图。如图16所示,该广告展示装置包括:
创建模块1601,被配置为创建可滑动视图,可滑动视图用于实现广告位展示器。
获取模块1602,被配置为自服务器获取待展示广告的数据源,数据源为对广告源数组进行扩容处理后的数据,待展示广告包括多张待展示图片。
确定模块1603,被配置为响应于接收到用户手动滑动消息,或者接收到自动滑动消息,确定滑动后待展示图片的索引,基于索引自数据源获取当前待展示图片的源图片。
优化模块1604,被配置为对源图片进行适配处理,得到优化后的源图片。
展示模块1605,被配置为将优化后的源图片应用至可滑动视图,以在客户端的广告位展示器中展示广告。
根据本申请实施例提供的技术方案,通过创建可滑动视图,随后自服务器获取待展示广告的数据源,该数据源为对广告源数组进行扩容处理后的数据,可有效缓解滑动至边缘的问题,随后基于接收到的滑动消息确定滑动后的待展示图片的索引,获取当前待展示图片的源图片,并对源图片进行适配处理得到优化后的源图片,最后将优化后的源图片应用至可滑动视图,方便快捷地实现了广告图片在广告位展示器中的显示,且对源图片的优化可以根据源图片信息、广告位展示器以及用户习惯、客户端的设备情况等采用不同的优化策略,因而能够以更优方式实现广告展示,提高了展示效率并提升了用户体验。
本申请实施例中,对广告源数组进行扩容处理,包括:将广告源数组中的源数据复制n-1份;将复制得到的n-1份数据顺序添加至源数据之后,得到n组重复排列的源数据,其中,n为大于1的正整数,且源数据中的数据个数与n的乘积小于或者等于客户端系统允许的源数据最大值。
本申请实施例中,n采用如下方式确定:响应于用户首次进入广告位展示器所在应用,自服务器获取初始n值;在客户端设置埋点,上报反馈信息,反馈信息包括以下中的至少一项:当前n值、边缘问题触发次数、本次边缘问题触发方式、用户标识、客户端标识、本次上报的生命周期特征值、广告位展示器的内存开销、本条反馈信息来自单个或者多个广告位展示器;响应于边缘问题触发次数满足预设条件,自服务器获取更新后的n值,其中,更新后的n值由服务器基于反馈信息确定;其中,边缘问题为待展示图片需要自第一幅图片滑动至最后一幅图片,或者待展示图片需要自最后幅图片滑动至第一幅图片时,出现的展示不连续问题。
本申请实施例中,响应于边缘问题满足预设条件,自服务器获取更新后的n值,包括:响应于边缘问题触发次数大于预设期望最大次数,自服务器获取更新后的n值,更新后的n值为当前n值与预设第一增量之和;响应于边缘问题触发次数小于预设期望最小次数,自服务器获取更新后的n值,更新后的n值为当前n值与预设第二增量之差。
本申请实施例中,n采用如下方式确定:响应于用户首次进入广告位展示器所在应用,自服务器获取初始n值;周期性自服务器获取更新后的n值,每次更新后的n值均为当前n值的k分之一,k为正整数,且每次更新后的n值均大于1;在客户端设置埋点,上报反馈信息,反馈信息包括以下中的至少一项:当前n值、边缘问题触发次数、本次边缘问题触发方式、用户标识、客户端标识、本次上报的生命周期特征值、广告位展示器的内存开销、本条反馈信息来自单个或者多个广告位展示器;自服务器获取最优n值,该最优n值为服务器根据反馈信息对各更新后的n值对应的时间周期内,广告展示性能统计评估后得出的。
本申请实施例中,还包括:响应于用户首次进入广告位展示器所在应用,确定广告的数据源中最中间的数据对应的索引为待展示图片的索引,基于待展示图片的索引自数据源获取当前待展示图片的源图片。
本申请实施例中,确定滑动后待展示图片的索引,包括:响应于接收到用户手动滑动消息,或者接收到自动滑动消息,自可滑动视图的系统回调函数获取当前展示图片的索引;响应于确定当前展示图片的索引大于数据源中的索引最大值,确定数据源中的第一中间索引值为滑动后待展示图片的索引,其中,第一中间索引值对应的数据为与最小索引值对应的数据的距离大于第三距离阈值,且与最大索引值对应的数据的距离大于第四距离阈值的数据中,与广告源数组中的第一个数据相同的数据;响应于确定当前展示图片的索引小于数据源中的索引最小值,确定数据源中的第二中间索引值为滑动后待展示图片的索引,其中,第二中间索引值对应的数据为与最小索引值对应的数据的距离大于第五距离阈值,且与最大索引值对应的数据的距离大于第六距离阈值的数据中,与广告源数组中的最后一个数据相同的数据。
本申请实施例中,源图片包括以下数据:源图片的统一资源定位符;源图片的唯一标识;源图片的最优展示区域;最优展示区域在广告位展示器的展示框中的期望位置;留白色;源图缩放阈值,源图缩放阈值为源图填充时允许的最大缩放比例;是否过渡美化;其他数据;其中,源图片的统一资源定位符和源图片的唯一标识为必须数据;源图片的最优展示区域、最优展示区域在广告位展示器的展示框中的期望位置、留白色、源图缩放阈值、是否过渡美化和其他数据为可选数据。
本申请实施例中,对源图片进行适配处理,得到优化后的源图片,包括:绘制上下文,上下文的宽高与广告位展示器的展示框的宽高一致,且上下文的缩放比例与待显示广告的应用的缩放比例一致;调用缩放图片算法基于最长边适配方法对源图片进行缩放,得到缩放后的源图片以及第一缩放基准;响应于确定第一缩放基准小于或者等于源图缩放阈值,或者第一缩放基准大于源图缩放阈值且源图片的最优展示区域等于源图片,调用判断留白算法判断源图片是否有留白;若否则确定缩放后的源图片为优化后的源图片;若是则基于最优展示区域在广告位展示器的展示框中的期望位置,对缩放后的源图片进行位置调整,基于留白色确定留白部分颜色,并在是否过渡美化数据为是时对留白部分进行过渡美化,得到优化后的源图片。
本申请实施例中,对源图片进行适配处理,得到优化后的源图片,包括:绘制上下文,上下文的宽高与广告位展示器的展示框的宽高一致,且上下文的缩放比例与待显示广告的应用的缩放比例一致;调用缩放图片算法基于最长边适配方法对源图片进行缩放,得到第一缩放基准;响应于确定第一缩放基准大于源图缩放阈值且源图片的最优展示区域小于源图片,将最优展示区域确定为待展示图片,调用判断留白算法判断待展示图片是否有留白;若否,确定待展示图片为优化后的源图片;若是,调用缩放图片算法中的求缩放图片基准算法,基于待展示图片和广告位展示器信息计算得到第二缩放基准;调用缩放图片算法中的计算图片缩放后的尺寸算法,基于第二缩放基准、源图片以及广告位展示器信息对源图片进行缩放,得到缩放后的源图片;基于最优展示区域在广告位展示器的展示框中的期望位置,对缩放后的源图片进行位置调整,基于留白色确定留白部分颜色,并在是否过渡美化数据为是时对留白部分进行过渡美化,得到优化后的源图片。
本申请实施例中,判断留白算法包括:获取输入图片的长宽值以及长宽比例;获取广告位展示器的展示框的长宽值和长宽比例;响应于确定输入图片的长宽值与广告位展示器的展示框的长宽值完全匹配,或者输入图片的长宽比例与广告位展示器的展示框的长宽比例相等,确定输入图片没有留白;否则确定输入图片有留白。
本申请实施例中,缩放图片算法由求缩放图片基准算法和计算图片缩放后的尺寸算法组成;求缩放图片基准算法包括:获取输入图片的长宽比例;获取广告位展示器的展示框的长宽比例;确定输入图片的长宽比例与广告位展示器的展示框的长宽比例中的最大值为缩放基准;计算图片缩放后的尺寸算法包括:基于缩放基准确定广告位展示器的展示框的不变边;将输入图片中展示框的不变边对应的边缩放至与展示框的不变边相等;获取输入图片的长宽比例,基于输入图片缩放后的边的尺寸以及长宽比例计算得到另一条边的尺寸,进而得到缩放后的图片尺寸。
本申请实施例中,留白色采用如下方式确定:在留白区域中确定留白色提取区域;获取留白色提取区域中的像素数组;遍历像素数组中的每个像素,统计每种颜色出现的次数;将出现次数最多的颜色确定为留白色。
本申请实施例中,对留白部分进行过渡美化,包括:对留白部分与优化后的源图片的交界部分添加渐变层; 对留白部分与优化后的源图片的交界部分的预设范围延伸区域以及留白部分覆盖模糊层,实现对留白部分的过渡美化;其中,模糊层包括高斯模糊层、线性模糊层或者径向模糊层。
本申请实施例中,还包括:在得到优化后的源图片后,再次获取当前待展示图片的索引;响应于确定当前待展示图片的索引与源图片的索引相同,将优化后的源图片应用至可滑动视图,以在客户端的广告位展示器中展示广告;响应于确定当前待展示图片的索引与源图片的索引不同,获取当前待展示图片的源图片,并重复执行对源图片进行适配处理得到优化后的源图片、再次获取当前待展示图片的索引、确定当前待展示图片的索引与源图片的索引是否相同的步骤,直至确定当前待展示图片的索引与源图片的索引相同,将优化后的源图片应用至可滑动视图,以在客户端的广告位展示器中展示广告。
本申请实施例中,还包括:使用优化后的源图片更新待展示广告的数据源,得到待展示广告的图片数据数组;将图片数据数组保存在客户端,作为第一数据源;响应于客户端再次自服务器获取待展示广告的数据源,确定再次获取的数据源为第二数据源;比较第一数据源和第二数据源,将第一数据源中不存在且第二数据源中存在的数据进行标记,将第一数据源和第二数据源中都存在且在第二数据源中进行了更新的数据进行标记,将第二数据源中不存在且第一数据源中存在的数据删除。
本申请实施例中,广告源数组由客户端上传至服务器;客户端采用如下方式上传广告源数组至服务器:客户端整理待上传的广告源数组信息,广告源数组信息包括资源唯一标识、资源名称、资源大小和资源类型,资源为广告资源;客户端将广告源数组信息上传至存储资源的存储服务器,并自存储服务器接收返回信息数组以及统一资源定位系统标识,返回信息数组包括上传时的资源的唯一标识、存储服务器分配的资源唯一标识符和上传资源的地址;客户端将资源上传至统一资源定位系统,并获取资源的资源下载链接和统一资源定位符。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
图17是本申请实施例提供的电子设备的示意图。如图17所示,该实施例的电子设备17包括:处理器1701、存储器1702以及存储在该存储器1702中并且可在处理器1701上运行的计算机程序1703。处理器1701执行计算机程序1703时实现上述各个方法实施例中的步骤。或者,处理器1701执行计算机程序1703时实现上述各装置实施例中各模块/单元的功能。
电子设备17可以是桌上型计算机、笔记本、掌上电脑及云端服务器等电子设备。电子设备17可以包括但不仅限于处理器1701和存储器1702。本领域技术人员可以理解,图17仅仅是电子设备17的示例,并不构成对电子设备17的限定,可以包括比图示更多或更少的部件,或者不同的部件。
处理器1701可以是中央处理单元(Central Processing Unit,CPU),也可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
存储器1702可以是电子设备17的内部存储单元,例如,电子设备17的硬盘或内存。存储器1702也可以是电子设备17的外部存储设备,例如,电子设备17上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。存储器1702还可以既包括电子设备17的内部存储单元也包括外部存储设备。存储器1702用于存储计算机程序以及电子设备所需的其它程序和数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可以存储在计算机可读存储介质中,该计算机程序在被处理器执行时,可以实现上述各个方法实施例的步骤。计算机程序可以包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质等。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (20)

1.一种广告展示方法,其特征在于,所述方法由客户端执行,用于在客户端的广告位展示器中进行广告展示,所述方法包括:
创建可滑动视图,所述可滑动视图用于实现所述广告位展示器;
自服务器获取待展示广告的数据源,所述数据源为对广告源数组进行扩容处理后的数据,所述待展示广告包括多张待展示图片;
响应于接收到用户手动滑动消息,或者接收到自动滑动消息,确定滑动后待展示图片的索引,基于所述索引自所述数据源获取当前待展示图片的源图片;
对所述源图片进行适配处理,得到优化后的源图片;
将所述优化后的源图片应用至所述可滑动视图,以在所述客户端的广告位展示器中展示所述广告。
2.根据权利要求1所述的方法,其特征在于,所述对广告源数组进行扩容处理,包括:
将所述广告源数组中的源数据复制n-1份;
将复制得到的n-1份数据顺序添加至所述源数据之后,得到n组重复排列的源数据,其中,n为大于1的正整数,且源数据中的数据个数与n的乘积小于或者等于客户端系统允许的源数据最大值。
3.根据权利要求2所述的方法,其特征在于,所述n采用如下方式确定:
响应于用户首次进入广告位展示器所在应用,自服务器获取初始n值;
在所述客户端设置埋点,上报反馈信息,所述反馈信息包括以下中的至少一项:当前n值、边缘问题触发次数、本次边缘问题触发方式、用户标识、客户端标识、本次上报的生命周期特征值、广告位展示器的内存开销、本条反馈信息来自单个或者多个广告位展示器;
响应于所述边缘问题触发次数满足预设条件,自服务器获取更新后的n值,其中,所述更新后的n值由服务器基于所述反馈信息确定;
其中,所述边缘问题为待展示图片需要自第一幅图片滑动至最后一幅图片,或者待展示图片需要自最后幅图片滑动至第一幅图片时,出现的展示不连续问题。
4.根据权利要求3所述的方法,其特征在于,响应于所述边缘问题触发次数满足预设条件,自服务器获取更新后的n值,包括:
响应于所述边缘问题触发次数大于预设期望最大次数,自服务器获取更新后的n值,所述更新后的n值为当前n值与预设第一增量之和;
响应于所述边缘问题触发次数小于预设期望最小次数,自服务器获取更新后的n值,所述更新后的n值为当前n值与预设第二增量之差。
5.根据权利要求2所述的方法,其特征在于,所述n采用如下方式确定:
响应于用户首次进入广告位展示器所在应用,自服务器获取初始n值;
周期性自服务器获取更新后的n值,每次更新后的n值均为当前n值的k分之一,k为正整数,且每次更新后的n值均大于1;
在所述客户端设置埋点,上报反馈信息,所述反馈信息包括以下中的至少一项:当前n值、边缘问题触发次数、本次边缘问题触发方式、用户标识、客户端标识、本次上报的生命周期特征值、广告位展示器的内存开销、本条反馈信息来自单个或者多个广告位展示器;
自服务器获取最优n值,该最优n值为服务器根据所述反馈信息对各更新后的n值对应的时间周期内,广告展示性能统计评估后得出的。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于用户首次进入广告位展示器所在应用,确定所述广告的数据源中,目标数据对应的索引为待展示图片的索引,基于所述待展示图片的索引自所述数据源获取当前待展示图片的源图片;
其中,所述目标数据为所述广告的数据源中,与最小索引值对应的数据的距离大于第一距离阈值,且与最大索引值对应的数据的距离大于第二距离阈值的数据中的任意一项数据。
7.根据权利要求1所述的方法,其特征在于,所述确定滑动后待展示图片的索引,包括:
响应于接收到用户手动滑动消息,或者接收到自动滑动消息,自所述可滑动视图的客户端系统回调函数获取当前展示图片的索引;
响应于确定所述当前展示图片的索引大于所述数据源中的索引最大值,确定数据源中的第一中间索引值为滑动后待展示图片的索引,其中,所述第一中间索引值对应的数据为与最小索引值对应的数据的距离大于第三距离阈值,且与最大索引值对应的数据的距离大于第四距离阈值的数据中,与所述广告源数组中的第一个数据相同的数据;
响应于确定所述当前展示图片的索引小于所述数据源中的索引最小值,确定数据源中的第二中间索引值为滑动后待展示图片的索引,其中,所述第二中间索引值对应的数据为与最小索引值对应的数据的距离大于第五距离阈值,且与最大索引值对应的数据的距离大于第六距离阈值的数据中,与所述广告源数组中的最后一个数据相同的数据。
8.根据权利要求1所述的方法,其特征在于,所述源图片包括以下数据:
所述源图片的统一资源定位符;
所述源图片的唯一标识;
所述源图片的最优展示区域;
所述最优展示区域在所述广告位展示器的展示框中的期望位置;
留白色;
源图缩放阈值,所述源图缩放阈值为所述源图填充时允许的最大缩放比例;
是否过渡美化;
其他数据;
其中,所述源图片的统一资源定位符和所述源图片的唯一标识为必须数据;所述源图片的最优展示区域、所述最优展示区域在所述广告位展示器的展示框中的期望位置、留白色、源图缩放阈值、是否过渡美化和其他数据为可选数据。
9.根据权利要求8所述的方法,其特征在于,所述对所述源图片进行适配处理,得到优化后的源图片,包括:
绘制上下文,所述上下文的宽高与所述广告位展示器的展示框的宽高一致,且所述上下文的缩放比例与待显示广告的应用的缩放比例一致;
调用缩放图片算法基于最长边适配方法对所述源图片进行缩放,得到缩放后的源图片以及第一缩放基准;
响应于确定所述第一缩放基准小于或者等于所述源图缩放阈值,或者所述第一缩放基准大于所述源图缩放阈值且所述源图片的最优展示区域等于所述源图片,调用判断留白算法判断所述源图片是否有留白;
若否则确定所述缩放后的源图片为所述优化后的源图片;
若是则基于所述最优展示区域在所述广告位展示器的展示框中的期望位置,对所述缩放后的源图片进行位置调整,基于所述留白色确定留白部分颜色,并在是否过渡美化数据为是时对留白部分进行过渡美化,得到所述优化后的源图片。
10.根据权利要求8所述的方法,其特征在于,所述对所述源图片进行适配处理,得到优化后的源图片,包括:
绘制上下文,所述上下文的宽高与所述广告位展示器的展示框的宽高一致,且所述上下文的缩放比例与待显示广告的应用的缩放比例一致;
调用缩放图片算法基于最长边适配方法对所述源图片进行缩放,得到第一缩放基准;
响应于确定所述第一缩放基准大于所述源图缩放阈值且所述源图片的最优展示区域小于所述源图片,将所述最优展示区域确定为待展示图片,调用判断留白算法判断所述待展示图片是否有留白;
若否,确定所述待展示图片为所述优化后的源图片;
若是,调用所述缩放图片算法中的求缩放图片基准算法,基于所述待展示图片和广告位展示器信息计算得到第二缩放基准;
调用所述缩放图片算法中的计算图片缩放后的尺寸算法,基于所述第二缩放基准、源图片以及广告位展示器信息对所述源图片进行缩放,得到缩放后的源图片;
基于所述最优展示区域在所述广告位展示器的展示框中的期望位置,对所述缩放后的源图片进行位置调整,基于所述留白色确定留白部分颜色,并在是否过渡美化数据为是时对留白部分进行过渡美化,得到所述优化后的源图片。
11.根据权利要求9至10中任意一项所述的方法,其特征在于,所述判断留白算法包括:
获取所述输入图片的长宽值以及长宽比例;
获取所述广告位展示器的展示框的长宽值和长宽比例;
响应于确定所述输入图片的长宽值与所述广告位展示器的展示框的长宽值完全匹配,或者所述输入图片的长宽比例与所述广告位展示器的展示框的长宽比例相等,确定所述输入图片没有留白;
否则确定所述输入图片有留白。
12.根据权利要求9至10中任意一项所述的方法,其特征在于,所述缩放图片算法由求缩放图片基准算法和计算图片缩放后的尺寸算法组成;
所述求缩放图片基准算法包括:
获取所述输入图片与所述广告位展示器的展示框的长比例,以及所述输入图片与所述广告位展示器的展示框的宽比例;
确定所述长比例和宽比例中的最大值为缩放基准;
所述计算图片缩放后的尺寸算法包括:
将确定所述缩放基准的长比例或者宽比例对应的展示框的长或者宽确定为展示框的参考边;
将输入图片中与所述展示框的参考边对应的边缩放至与所述展示框的参考边相等;
获取输入图片的长宽比例,基于输入图片缩放后的边的尺寸以及所述长宽比例计算得到另一条边的尺寸,进而得到缩放后的图片尺寸。
13.根据权利要求9至10中任意一项所述的方法,其特征在于,所述留白色采用如下方式确定:
在留白区域中确定留白色提取区域;
获取所述留白色提取区域中的像素数组;
遍历所述像素数组中的每个像素,统计每种颜色出现的次数;
将出现次数最多的颜色确定为所述留白色。
14.根据权利要求9至10中任意一项所述的方法,其特征在于,所述对留白部分进行过渡美化,包括:
对所述留白部分与所述优化后的源图片的交界部分添加渐变层;
对所述留白部分与所述优化后的源图片的交界部分的预设范围延伸区域以及所述留白部分覆盖模糊层,实现对留白部分的过渡美化;
其中,所述模糊层包括高斯模糊层、线性模糊层或者径向模糊层。
15.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在得到优化后的源图片后,再次获取当前待展示图片的索引;
响应于确定所述当前待展示图片的索引与所述源图片的索引相同,将所述优化后的源图片应用至所述可滑动视图,以在所述客户端的广告位展示器中展示所述广告;
响应于确定所述当前待展示图片的索引与所述源图片的索引不同,获取所述当前待展示图片的源图片,并重复执行对源图片进行适配处理得到优化后的源图片、再次获取当前待展示图片的索引、确定当前待展示图片的索引与源图片的索引是否相同的步骤,直至确定当前待展示图片的索引与源图片的索引相同,将所述优化后的源图片应用至所述可滑动视图,以在所述客户端的广告位展示器中展示所述广告。
16.根据权利要求1所述的方法,其特征在于,所述方法还包括:
使用所述优化后的源图片更新所述待展示广告的数据源,得到待展示广告的图片数据数组;
将所述图片数据数组保存在客户端,作为第一数据源;
响应于所述客户端再次自服务器获取待展示广告的数据源,确定所述再次获取的数据源为第二数据源;
比较所述第一数据源和第二数据源,将第一数据源中不存在且第二数据源中存在的数据进行标记,将第一数据源和第二数据源中都存在且在第二数据源中进行了更新的数据进行标记,将第二数据源中不存在且第一数据源中存在的数据删除。
17.根据权利要求1所述的方法,其特征在于,所述广告源数组由客户端上传至服务器;
所述客户端采用如下方式上传广告源数组至服务器:
客户端整理待上传的广告源数组信息,所述广告源数组信息包括资源唯一标识、资源名称、资源大小和资源类型,所述资源为广告资源;
客户端将所述广告源数组信息上传至存储资源的存储服务器,并自所述存储服务器接收返回信息数组以及统一资源定位系统标识,所述返回信息数组包括上传时的资源的唯一标识、存储服务器分配的资源唯一标识符和上传资源的地址;
客户端将所述资源上传至统一资源定位系统,并获取资源的资源下载链接和统一资源定位符。
18.一种广告展示装置,其特征在于,所述装置用于在客户端的广告位展示器中进行广告展示,包括:
创建模块,被配置为创建可滑动视图,所述可滑动视图用于实现所述广告位展示器;
获取模块,被配置为自服务器获取待展示广告的数据源,所述数据源为对广告源数组进行扩容处理后的数据,所述待展示广告包括多张待展示图片;
确定模块,被配置为响应于接收到用户手动滑动消息,或者接收到自动滑动消息,确定滑动后待展示图片的索引,基于所述索引自所述数据源获取当前待展示图片的源图片;
优化模块,被配置为对所述源图片进行适配处理,得到优化后的源图片;
展示模块,被配置为将所述优化后的源图片应用至所述可滑动视图,以在所述客户端的广告位展示器中展示所述广告。
19.一种电子设备,包括存储器、处理器以及存储在所述存储器中并且可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至17中任一项所述方法的步骤。
20.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至17中任一项所述方法的步骤。
CN202410331734.1A 2024-03-22 2024-03-22 广告展示方法、装置、电子设备及存储介质 Pending CN117950787A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410331734.1A CN117950787A (zh) 2024-03-22 2024-03-22 广告展示方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410331734.1A CN117950787A (zh) 2024-03-22 2024-03-22 广告展示方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117950787A true CN117950787A (zh) 2024-04-30

Family

ID=90794600

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410331734.1A Pending CN117950787A (zh) 2024-03-22 2024-03-22 广告展示方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117950787A (zh)

Similar Documents

Publication Publication Date Title
US20200221185A1 (en) Method for pushing video information, apparatus, device and storage medium
WO2017215175A1 (zh) 页面处理方法、装置、终端及服务器
CN109766457B (zh) 一种媒体内容搜索方法、装置及存储介质
CN108055302B (zh) 一种图片缓存处理方法、系统和服务器
US11589110B2 (en) Digital media system
CN103812888A (zh) 信息推送、接收、传输方法、服务器、客户端及系统
CN110096660A (zh) 用于加载页面图片的方法、装置和电子设备
US11462002B2 (en) Wallpaper management method, apparatus, mobile terminal, and storage medium
CN107633013A (zh) 图片页面生成方法、装置及计算机可读存储介质
CN110647685B (zh) 一种信息推荐方法、装置及设备
US20220335977A1 (en) Method and apparatus for editing object, electronic device and storage medium
CN103646115A (zh) 一种用于客户端访问网页的方法和系统
CN104053016B (zh) 一种图像预览方法及装置
CN113347276B (zh) 一种基于gis的移动式访问系统
CN110598026B (zh) 图片列表的显示方法、装置及终端设备
CN117950787A (zh) 广告展示方法、装置、电子设备及存储介质
CN111767492A (zh) 图片加载方法、装置、计算机设备及存储介质
CN111061532A (zh) 一种壁纸展示方法及终端设备
CN113535606A (zh) 一种数据处理方法及装置
CN112463998A (zh) 相册资源的处理方法、装置、电子设备和存储介质
CN113032696A (zh) 一种页面图片的显示方法和显示装置
CN111966853A (zh) 一种遥感影像的管理方法
CN111262996A (zh) 通知栏消息处理方法、装置、电子装置及存储介质
US20230124474A1 (en) Multimedia file playing method and apparatus for rotatable device
CN112861041B (zh) 一种媒体内容的展示方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination