​1.获取日志

方式一:通过手机中【文件管理】App,找到日志,拷贝出来。拷贝路径:

手机【文件管理】App > 内部存储 > Android > data > com.huawei.hwid > files > Log > HiAdKitLog.log

方式二:​手机连上电脑,通过adb命令把手机中的日志拉出来, “./”表示存放在当前路径。

adb pull /sdcard/Android/data/com.huawei.hwid/files/Log/HiAdKitLog.log ./

如果没有找HiAdKitLog.log,那么需要确认一下HMS Core中是否允许写入日志,路径如下:

设置 > 应用 > 应用管理 >  HMS Core > 权限 > 存储,设置为开启


2.日志解读

很多时候由于种种原因无法展示广告,通过抓取的客户端日志,可以分析到一些信息,从而快速定位到问题,下面我们通过日志例子详细讲解。分析广告请求的消息体和响应信息将关键字HiAd的日志过滤出来,尤其关注request data和response data的日志内容,如下所示:

手把手教你如何分析华为Ads Kit 日志_错误码

    request data和response data的内容都是JSON 格式,为了方便观看,可自行用工具格式化一下。

2.1广告请求信息request data解读

{
"adRestrict":0, // 儿童保护,0表示不限制广告推送,1表示限制广告推送,-1表示未设置
"rtenv":0,
"appsdkversion":"13.4.39.300",
"app":{
"mediaGpsOn":0,
"name":"赛几探险记",
"pkgname":"com.igame.njmy.sjtxjrpk.huawei",
"version":"1.0.0"
},
"clientAdRequestId":"118302ea-b7e8-4157-8870-ad498c9ff676",
"device":{
"aaid":"******",
"adsLoc":0,
"agCountryCode":"CN",
"androidid":"******",
"brand":"HUAWEI",
"buildVersion":"WAS-AL00 8.0.0.358(C00)",
"clientTime":"2021-06-02 16:27:21.314+0800",
"dpi":480,
"emuiVer":"EmotionUI_8.0.0",
"freeDiskSize":41043329024,
"freeSdcardSize":41022357504,
"gpsOn":1,
"height":1920,
"hmsGpsOn":1,
"isTrackingEnabled":"******",
"language":"zh",
"localeCountry":"CN",
"maker":"HUAWEI",
"model":"WAS-AL00",
"oaid":"******",
"os":"android",
"pxratio":"3.0",
"roLocale":"ZH-HANS-CN",
"roLocaleCountry":"CN",
"routerCountry":"CN",
"script":"Hans",
"totalDiskSize":56478384128,
"totalSdcardSize":56457412608,
"type":4,
"udid":"******",
"useragent":"******",
"uuid":"******",
"vendor":"ALL",
"vendorCountry":"CN",
"verCodeOfAG":"110202302",
"verCodeOfHms":"50300312",
"verCodeOfHsf":"110002200",
"version":"8.0.0",
"width":1080
},
"multislot":[
{
"h":483, // 请求广告素材的高(像素)
"w":3240, // 请求广告素材的宽(像素)
"adtype":8, // 请求广告类型,8--Banner, 7--激励视频,3--原生,1--开屏,12--插屏
"bsrSet":1,
"height":1920, // 手机的屏幕高(像素)
"isSmart":0,
"slotid":"testw6vs28auh3", // 广告位ID
"test":0,
"width":1080 // 手机的屏幕宽(像素)
}
],
"network":{
"cellInfo":"******",
"type":2
},
"parentCtrlUser":-1,
"pdToOther":0,
"ppsStore":"******",
"reqPurpose":1,
"scrnReadStat":0,
"sdkversion":"3.4.41.303",
"version":"3.4"
}


2.2广告请求响应信息response data解读

1)请求失败日志

{
"adPreloadInterval":0,
"cost":"6,4,0,4,0,0,1,4,1",
"dsp1cost":0,
"dspcost":0,
"multiad":[
{
"brsetting":"N",
"retcode30":204, // 响应码, 204表示请求成功,但没有广告返回。
"slotid":"testw6vs28auh3" // 广告位ID
}
],
"retcode":204,
"totalCacheSize":800
}


2)请求成功日志

{
"adPreloadInterval":0,
"cost":"93,83,0,49,4,0,0,49,1",
"dsp1cost":0,
"dspcost":0,
"multiad":[
{
"brsetting":"N",
"content":[
{
"clickActionList":[
3,
4,
1
],
"contentid":"34.100237265421",
"taskinfo":"TASKINFO_UNIQUE_2||mnO56RBXzu+EYW0CanS7vFlQgo+zK+R/Dzxz5q9ovCjPQqzEZunrF0QIvR1QvpUq6qVWZ3h6xsgibYNQ4NnUpAlDJBN9jjpHSMLW0ib9a4hEmm23dvplQSKAlZ/9DcXWmA1FMPSBBWG/kLX3tVLdfV4In2IiLLqu1NbL4iVZDA5r6NYxzBkFMKZ+9meU7NEWftxZ31b1VZMJgcx7pWF/kPpMA7Mi",
"creativetype":2,
"ctrlSwitchs":"100011101002100101",
"dispTime":0,
"endtime":1622622297764,
"filterList":[
3
],
"interactiontype":5,
"landPageWhiteList":"contentcenter-drcn.dbankcdn.com,lp.pinduoduo.com,h5hosting-drcn.dbankcdn.cn",
"landingTitle":0,
"logo2Pos":"ll",
"metaData":"******",
"monitor":"******",
"paramfromserver":"******", "sequence":0,
"showAppLogoFlag":1,
"skipTextPos":"tr",
"spare":0,
"starttime":1622532297764,
"taskid":"34.100237265421",
"useGaussianBlur":1,
"webConfig":"******"
}
],
"retcode30":200, // 响应码, 请求成功
"slotid":"f3tnev5vy6" // 广告位ID
}
],
"retcode":200,
"totalCacheSize":300
}

​3.日志分析​

1)  在请求数据中,可以通过multislot查询请求广告素材的宽高,广告类型,广告id来判断是否符合请求标准。

2)  在返回数据中,可以通过retcode30查询返回结果。下列是常见返回错误码:                                                                                                                                                                                                                                                                                             


错误码取值



含义



1001



api版本不在广告支持范围内



-1



http请求失败,非业务失败



200



请求成功



201



广告请求,先返回配置



204



请求报文正确,没有广告返回



403



广告请求的接口版本号错误



407



广告请求的SDK版本号缺失



408



广告请求的SDK版本号错误



421



广告位ID缺失



424



广告位ID与应用不匹配



425



该广告位ID不能请求正式广告



498



无效广告位,广告位与应用包名不匹配。



499



其他错误



500



系统内部错误



602



返回 已经失效的素材id列表



700



原生广告未请求到,请查看日志



701



原生广告未请求到,请查看日志



702



原生广告正在请求中,不能重复发起请求



703



快应用的广告位id非法



704



横幅广告过期



705



横幅广告任务下架



800



贴片广告未请求到,请查看日志



801



贴片广告正在请求中,不能重复发起请求



802



贴片广告的广告位ID列表为空



804



传入的参数格式非法



900



激励广告未请求到,请查看日志



901



激励广告正在请求中,不能重复发起请求



902



激励广告的广告位ID列表为空



1000



插屏广告未请求到,请查看日志



4.总结

上述日志中,国内快应用Banner广告只支持1080*170广告尺寸。该示例传的是483*3240尺寸,不符合广告要求,所以retcode30返回204,请求成功,无返回。要修改Banner为 1080*170的Banner尺寸进行测试。所以我们拿到日志后在request data里主要分析multislot中广告素材相关的请求参数和response dataretcode30错误码来配合修改广告代码即可。