【FAQ】接入HMS Core广告服务中的常见问题总结和解决方法

2024-01-26 03:50

本文主要是介绍【FAQ】接入HMS Core广告服务中的常见问题总结和解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

HMS Core广告服务(Ads Kit)为开发者提供流量变现服务和广告标识服务,依托华为终端能力,整合资源,帮助开发者获取高质量的广告内容。同时提供转化跟踪参数服务,支持三方监测平台、广告主进行转化归因分析。下面我们分享一些开发者在接入广告服务中经常会碰到的问题,希望给遇到类似问题的开发者提供参考。

1. 手机由竖屏转换成横屏时Banner广告尺寸变大怎么办?

解决方案:

固定BannerView的宽度或高度。例如下方的代码中固定了Banner广告的高度:

<com.huawei.hms.ads.banner.BannerViewandroid:id="@+id/hw_banner_view"android:layout_width="match_parent"android:layout_height="45dp"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true" />

Banner广告正常显示效果如下:

2. 使用示例代码测试时,原生广告不显示“为什么显示此广告”图标“i”和“不再显示此广告”图标“x”(即广告关闭按钮)怎么办?

原因分析:

为了符合本地合规的高要求,SDK增加了“不再显示此广告”的能力,且默认显示“不再显示此广告”的图标“x”。此图标只有在非中国大陆区域发行的设备上才会显示,因此在中国大陆发行的设备上测试时,是看不到的。

参考建议:

如果App只在非中国大陆区域上线,是不影响使用的,可以使用非中国大陆区域发行的设备查看展示效果。

如果App只在中国大陆区域上线,需要用到关闭按钮时,建议在原生广告布局中自己实现。

如果App是全球上线,那么在自己实现关闭按钮的同时还需要注意,App在非中国大陆区域上线后,与默认展示的关闭按钮是否会冲突。

补充:

“不再显示该广告”的功能是在原生广告设置选项NativeAdConfiguration.Builder中设置的,其提供的setRequestCustomDislikeThisAd()方法可以设置是否要自定义“不再显示该广告”的功能,默认为false。表现的形式如下:

如果设置为true,则会显示“为什么看到此广告”图标“i”,也就是下图所示:

当自己实现关闭按钮时,为了避免在非中国大陆区域上线的应用中出现两个关闭按钮,建议将其设置为true。

其次,可以通过调用NativeAdConfiguration.Builder().setChoicesPosition(int choicesPosition)方法设置图标显示的位置。

广告选项的展示位置:

3. 如何一次请求多个原生广告?

原生广告提供了一次同时请求多个原生广告的方法loadAds()。

loadAds()请求有两个参数,除AdParam外,maxAdsNum是请求加载的最大广告数量,最大值为5。SDK返回的广告数量将会小于等于所请求的广告数量,并且返回的广告皆不相同。示例代码如下所示:

nativeAdLoader.loadAds(new AdParam.Builder().build(), 5);

当加载广告成功后,SDK会多次调用NativeAd.NativeAdLoadedListener监听器的onNativeAdLoaded()方法分别返回一个NativeAd对象,在广告都返回后再调用AdListener监听器的onAdLoaded方法回调通知此次请求成功;当加载广告失败后,SDK会调用AdListener监听器的onAdFailed()方法。

示例代码如下所示,其中testy63txaom86"为测试专用的广告位ID,App正式发布时需要改为正式的广告位ID。

NativeAdLoader.Builder builder = new NativeAdLoader.Builder(this, "testy63txaom86");
NativeAdLoader nativeAdLoader = builder.setNativeAdLoadedListener(new NativeAd.NativeAdLoadedListener() {@Overridepublic void onNativeAdLoaded(NativeAd nativeAd) {// 广告加载成功回调,多个广告对应多个回调...}
}).setAdListener(new AdListener() {@Overridepublic void onAdLoaded() {// 广告全部返回后回调,说明所有广告返回成功...}@Overridepublic void onAdFailed(int errorCode) {// 广告加载失败回调...}
}).build();
nativeAdLoader.loadAds(new AdParam.Builder().build(), 5);

说明:再次使用NativeAdLoader加载广告前,请确保先前的请求已经完成。

4. 在应用内滚动播放贴片广告时,报错提示onMediaError : -1

在第一次播放贴片广告完成后,再次播放时返回了错误码-1.

原因分析:

  1. 当前网络不可用。

  2. 贴片广告在播放完成后,没有释放,导致下次播放时返回了-1。

解决方案:

  1. 检查网络。在targetSdkVersion 28及以上的手机上允许HTTP(S)网络请求,在“AndroidManifest.xml”做以下配置。
<application...android:usesCleartextTraffic="true">...
</application>
  1. 在InstreamMediaStateListener中的onMediaCompletion()回调方法中释放贴片广告, 每次播放完成后,都需要释放掉。
public void onMediaCompletion(int playTime) {updateCountDown(playTime);removeInstream();playVideo();
}
private void removeInstream() {if (null != instreamView) {instreamView.onClose();instreamView.destroy();instreamContainer.removeView(instreamView);instreamContainer.setVisibility(View.GONE);instreamAds.clear();}
}

5. 如何在国内测试非中国大陆区域的广告投放?

随着国内开发者在非中国大陆区域进行广告变现的需求越来越多,而开发者缺乏海外测试环境,导致在国内使用正式广告位ID测试时,出现请求不到广告的情况。

解决方法(应用上架需要超过12小时):

方法一:使用海外版本的华为手机,连接非中国大陆区域的VPN网络(非美国),将手机中的国家区域设置为非中国大陆且确保应用已在该区域上架,进行测试。

方法二:注册成为海外开发者,使用HMS ToolKit提供的Cloud Debugging功能,即远程真机进行测试。

方法三:借助“媒体服务平台”中的“广告测试服务”进行测试。详情请查看:变现测试

注意:华为广告在全球有四个投放站点:中国,亚非拉,欧洲,俄罗斯。不同的站点广告不支持跨区域请求获取广告【如需跨站点请求广告需使用对应国家的网络(可使用vpn代理),和对应国家的手机设备】。各个站点对应的国家详情可参考文档

了解更多详情>>

访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

这篇关于【FAQ】接入HMS Core广告服务中的常见问题总结和解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/645564

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

如何解决线上平台抽佣高 线下门店客流少的痛点!

目前,许多传统零售店铺正遭遇客源下降的难题。尽管广告推广能带来一定的客流,但其费用昂贵。鉴于此,众多零售商纷纷选择加入像美团、饿了么和抖音这样的大型在线平台,但这些平台的高佣金率导致了利润的大幅缩水。在这样的市场环境下,商家之间的合作网络逐渐成为一种有效的解决方案,通过资源和客户基础的共享,实现共同的利益增长。 以最近在上海兴起的一个跨行业合作平台为例,该平台融合了环保消费积分系统,在短

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti