简介

华为广告服务(HUAWEI Ads)是一个开放、合规的广告生态。用户可以通过流量变现服务在应用内广告中获得更多收益;通过广告标识服务,可以全方位保护用户隐私,也可以帮助广告平台和三方监测平台合规地开展个性化广告和转化归因。华为广告服务具有高额的变现收益、丰富的广告形式、独有的一键安装、完善的服务体系等特点。

广告形式

为满足App不同场景下的内容体验需要,华为广告服务提供Banner广告、原生广告、激励广告、插屏广告、开屏广告,极速开屏广告六种广告形式,其中极速开屏广告无需集成SDK,本文中不做说明。相信后续华为会持续推出更多、更丰富的广告形式。广告服务集成方式本文中不做介绍,若有需求,请查看HMS或官方文档。下图则展示了几种广告形式:

Banner广告

Banner广告是在应用程序顶部、中部或底部占据一个位置的矩形图片,广告内容每隔一段时间会自动刷新,点击内容时通常会链接到广告主的页面。

  1. 添加BannerView
    添加Banner广告方式可在XML中添加
          <com.huawei.hms.ads.banner.BannerViewandroid:id="@+id/hw_banner_view_144"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"hwads:adId="testw6vs28auh3"hwads:bannerSize="BANNER_SIZE_360_144" />

通过findViewById或@BindView(butterknife.BindView)获取BannerView。布局中可设置广告位ID和尺寸。

或在代码中添加

BannerView bannerView = new BannerView(this);
// "testw6vs28auh3"为专用的测试广告位ID
bannerView.setAdId("testw6vs28auh3");
// 设置广告位尺寸
bannerView.setBannerAdSize(BannerAdSize.BANNER_SIZE_360_144);
FrameLayout adFrameLayout = findViewById(R.id.banner_ad_container);
adFrameLayout.addView(bannerView);

通过new方法创建BannerView,同时可设置广告位ID和尺寸。

  1. 获取广告
    BannerView创建好之后,通过BannerView类的loadAd()方法来获取广告。
   // 创建广告请求,获取广告AdParam adParam = new AdParam.Builder().build();bannerView.loadAd(adParam);

其中AdParam是用户发起获取广告请求对广告筛选的一些参数:

    ...@GlobalApipublic final AdParam.Builder setBelongCountryCode(String var1) {...}@GlobalApipublic final AdParam.Builder setTagForChildProtection(Integer var1) {...}@GlobalApipublic final AdParam.Builder setNonPersonalizedAd(Integer var1) {...}@GlobalApipublic final AdParam.Builder setTagForUnderAgeOfPromise(Integer var1) {...}@GlobalApipublic final AdParam.Builder setAdContentClassification(String var1) {...}...
方法 描述
setTagForChildProtection 为了满足《儿童在线隐私保护法》(COPPA)的要求,HUAWEI Ads SDK提供了“面向儿童内容的标记”的设置
setTagForUnderAgeOfPromise 为了满足《一般数据保护条例》(GDPR)的要求,HUAWEI Ads SDK提供了“未达到法定承诺年龄的用户”的设置。一旦启用此设置,包含标记的广告请求均无法获取到个性化广告
setAdContentClassification HUAWEI Ads SDK提供了广告内容过滤能力,在请求广告时可以设置广告内容分级的上限。使用此方法获取的广告内容会小于等于设置的分级
setNonPersonalizedAd HUAWEI Ads SDK支持投放的广告分为个性化广告与非个性化广告两种。通过此方法可以设置请求的广告类型

因为广告发放并不仅仅是一下发放给所有用户,还可以根据国家、地区、经纬度、用户类型及搜索关键字等进行区分,这样可以提高广告效率,实现更好的广告收益。具体参数说明请查看华为广告高级设置。
同时AdParam对广告错误进行了细分:

    @GlobalApipublic interface ErrorCode {int INNER = 0; int INVALID_REQUEST = 1;int NETWORK_ERROR = 2;int NO_AD = 3;int AD_LOADING = 4;int LOW_API = 5;int BANNER_AD_EXPIRE = 6;int BANNER_AD_CANCEL = 7;int HMS_NOT_SUPPORT_SET_APP = 8;}
错误码 描述 解决方法
INNER 0 内部错误 检查HMS Core版本是否为4.0.0及以上版本、检查当前网络是否可用
INVALID_REQUEST 1 无效的广告请求,如未设置广告位ID、Banner广告尺寸无效等 检查申请的广告位是否已生效、检查应用包名与申请广告位的使用的包名是否一致、检查广告尺寸是否设置正确。
NETWORK_ERROR 2 由于网络连接错误导致广告请求失败 检查当前网络是否可用
NO_AD 3 广告请求成功,但是服务器没有返回可用的广告素材 检查测试手机配置的国家地区是否正确
AD_LOADING 4 广告正在请求中,不能重复发起请求 检查是否重复下发广告请求
LOW_API 5 API版本不在广告服务支持范围内 检查HMS Core版本是否为4.0.0及以上版本、检查App中设置的minSdkVersion是否为19及以上
BANNER_AD_EXPIRE 6 横幅广告过期 横幅广告已过期,重新请求广告,不要缓存广告
BANNER_AD_CANCEL 7 横幅广告任务下架 横幅广告已过期,重新请求广告,不要缓存广告
HMS_NOT_SUPPORT_SET_APP 8 HMS Core版本过低,不支持设置AppInfo 将手机中的HMS Core更新至最新本

通过ErrorCode(相当重要),开发者能够更快定位错误原因,找到解决方案,实现更好的用户体验。

  1. 广告事件监听
    根据广告加载状态开发者可以自定义相关操作:
        bannerView.setAdListener(new AdListener(){@Overridepublic void onAdLoaded() {// 广告获取成功调用}@Overridepublic void onAdFailed(int errorCode) {// 广告获取失败时调用}@Overridepublic void onAdOpened() {// 广告打开时调用}@Overridepublic void onAdClicked() {// 广告点击时调用}@Overridepublic void onAdLeave() {// 广告离开应用时调用}@Overridepublic void onAdClosed() {// 广告关闭时调用}});

通常,广告获取成功才可以进行后续操作,获取成功之前可用占位图进行占位或者不进行相关展示;广告获取失败需要进行相关处理,定位错误提供相关方案;广告打开、点击、离开、关闭可以进行数据分析,分析请求量、返回量、点击率、展示率等数据,从而进行更好的市场营销。

  1. 广告尺寸
类型 尺寸(宽*高 以dp为单位) 说明 是否可用
BANNER_SIZE_320_50 320x50 普通Banner广告,适用于手机设备
BANNER_SIZE_320_100 320x100 大型Banner广告,适用于手机设备
BANNER_SIZE_300_250 300x250 中矩形Banner广告,适用于手机设备
BANNER_SIZE_360_57 360x57 普通Banner广告,适用于1080*170px的广告素材
BANNER_SIZE_360_144 360x144 大型Banner广告,适用于1080*432px的广告素材
BANNER_SIZE_SMART 宽x32/50/90 自适应Banner广告,根据设备的宽高比自动调整广告尺寸,适用于手机设备

其中BANNER_SIZE_SMART是Smart Banner广告。Smart Banner是一种在任何屏幕尺寸、任何屏幕方向的设备上展示与屏幕等宽的Banner广告。获取广告时HUAWEI Ads SDK会根据当前设备屏幕方向,创建与屏幕等宽的广告视图,而广告高度是根据当前屏幕方向的高度来决定。

广告高度 屏幕高度
32dp ≤ 400dp
50dp > 400dp 且 <= 720dp
90dp > 720dp

在手机上,通常情况下当屏幕为纵向时Smart Banner广告高度为50dp;当屏幕为横向时,广告高度为32dp。在平板电脑上,不论屏幕是纵向还是横向,广告高度通常均为90dp。当广告图片素材不足以占据所分配的整个空间时,系统会居中放置图片,然后填充两侧剩余的空间。

  1. 广告效果

  2. 优劣

  • 集成简单。普通Banner需要集成Banner轮播图框架,图片加载框架,h5加载框架(若需要跳转h5)。
  • 无需自定义点击事件。华为Banner广告无需添加点击事件,加载成功后无需开发者控制,而普通Banner需要开发者定义跳转路径。
  • 数量有限。华为Banner广告数量一般都是一张或者有限的几张,而普通Banner数量理论上不受限制。
  • 尺寸受限。华为Banner广告尺寸支持的尺寸有限,无法满足复杂需求,而普通Banner尺寸理论上不受限制。
  • 效果单一。华为Banner广告动画效果单一,而普通Banner开发者可自定义。
  • 体验比较好。华为Banner广告不管是加载图片,还是其他广告形式的视频都比较快,不仅提供了丰富的用户操作按钮和相关提示,而且适配做的相当好。普通Banner中每一项都需要开发者进行控制和适配,耗时耗力,无法达到非常满意的效果。
  • 错误说明清晰。华为Banner广告对错误进行了准确的说明,并提供解决方法,开发者可以很快找到问题所在,从而进行相关修复。普通Banner由于需要多个框架进行配合,错误类型较多,定位比较慢,修复耗时。
说明
  • HUAWEI Ads SDK依赖HMS Core(APK)4.0.0及以上版本。华为终端设备自带HMS Core,非华为终端设备需要安装HMS Core(APK)4.0.0及以上版本,否则无法使用HUAWEI Ads SDK的相关接口。
  • 以上广告效果测试手机:HONOR 9X 。
  • 相关素材来自于华为Banner广告。
  • 若有侵权或错误,请发送邮件至alphabetadata@163.com

HMS-广告服务(Banner广告)相关推荐

  1. 如何使用iAd在应用程序中展示Banner广告

    本文由 Da杯柠檬水(微博) 翻译自 AppCoda 原文:Using iAd to Display Banner Ad in Your App 虽然,你可能即将开始开发下一个超级应用程序,你的一切规 ...

  2. 电商促销海报PSD模板|临摹优秀,设计好的banner广告从试炼开始!

    每当你打开淘宝时,首页的banner广告总是会弹出你近期浏览过的或者是购买过的同类产品,这就是淘宝善于使用个人大数据,从而达到精准推广的效果. 而设计师在设计banner广告图之前,一般会参考之前投放 ...

  3. 首页banner广告图片轮换超炫效果代码

    原文:首页banner广告图片轮换超炫效果代码 源代码下载地址:http://www.zuidaima.com/share/1745329876454400.htm 兼容IE.火狐.谷歌.360.猎豹 ...

  4. 顶部BANNER广告图片放大后再自动缩小消失

    很不错的一个广告效果,现在很多网站都在使用的,网页的顶部一个超大广告图片在网页打开时慢慢的由上直下的打开,等待几秒后,然后再慢慢的收缩回去,直到消失为止,边上还自带了关闭按钮,一点不影响玩网站的美观和 ...

  5. jquery banner广告图片左右切换,模仿实现支付宝广告效果

    原文:jquery banner广告图片左右切换,模仿实现支付宝广告效果 源代码下载地址:http://www.zuidaima.com/share/1771186023091200.htm 由最代码 ...

  6. 京东首页之nav导航栏、banner广告部分、footer备案号

    项目回顾:上一篇博文主要讲了如何实现京东首页的页面顶部和Logo&搜索框部分: 里面主要知识:利用列表作划分鲜明的文字部分,相对定位和绝对定位去实现弹框效果. 今天我们这篇博文主要是简单介绍京 ...

  7. 微信小游戏Banner广告

    为什么80%的码农都做不了架构师?>>>    注意事项 Banner宽度缩放的范围是300到屏幕宽度 Banner不要直接设置style.height而是通过设置style.wid ...

  8. Laya魅族手动关闭banner广告之后打不开

    魅族小游戏的banner广告关闭后需要重新create,它会触发onClose事件,你可以选择在onClose事件中添加一个新的banner的create事件(mzsdk是你自己的文件哈,甭看我) m ...

  9. 小程序接入流量主、banner广告、激励广告

    小程序接入广告 1.什么是微信小程序广告 2.流量主开通流程 3.微信小程序流量主开通以及添加广告步骤 (1) 接入banner广告 (2) 接入激励广告 1.什么是微信小程序广告 2.流量主开通流程 ...

最新文章

  1. ZOJ-1101-Gamblers
  2. mysql 定时同步数据_MySQL数据同步之otter
  3. SAP CRM和SAP Hybris的订单修改记录
  4. 序列化框架MJExtension详解 + iOS ORM框架
  5. html不支持ie7,解决IE6/IE7/IE8不支持before,after问题
  6. 服务器主板稳定,服务器主板
  7. Linux Shell编程三
  8. JAVA 函数的重载
  9. 2019秋 哈工大《概率论与数理统计》试题A及答案
  10. 两款个人知识库管理软件下载
  11. AI大佬怼怼怼的背后,究竟暗藏哪些玄机?
  12. Unity 2D横版闯关游戏 (JUNGLE RULES)
  13. 服务器系统飞行模式怎么关闭,win10系统开启飞行模式之后无法关闭怎么解决
  14. 2011不同阶层理财大盘点
  15. 【R语言】【1】初学R语言语法使用Rstudio编辑
  16. GLTF格式学习:glTF介绍( 基于WebGL
  17. 使用EXCEL绘制三维地图(超简单的五分钟绘制地图方法,妈妈再也不用担心我不会画地图啦~)
  18. 标签类目体系(面向业务的数据资产设计方法论)-读书笔记8(完结)
  19. Indicator Stickynotes - Ubuntu 桌面便签小工具
  20. mybatis 多条件查询、in查询

热门文章

  1. Rockchip 红外遥控开发指南
  2. 重学c语言 新开导言
  3. 2022青海省农商银行(农信社)招聘每日一练及答案
  4. 2018-08-08 Mac使用中的一些实用设置
  5. 【微信小程序控制硬件③】 从软件到硬件搭建一个微信小程序控制esp8266的项目,自定义通讯协议,为面试职位和比赛项目加分!
  6. subscript on non-array or too many dimensions
  7. 两点之间的最短距离是?
  8. lgp970 安全问题,不能识别sim卡
  9. python适合做网页吗_python是否适合网页编程详解
  10. 那些你不得不了解的HTML基础