手把手教你如何分析华为 Ads Kit 日志


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 的日志内容,如下所示:

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 广告只支持1080170广告尺寸。该示例传的是4833240尺寸,不符合广告要求,所以 retcode30 返回204,请求成功,无返回。要修改 Banner 为 1080*170的 Banner 尺寸进行测试。所以我们拿到日志后在 request data 里主要分析 multislot 中广告素材相关的请求参数和 response data 中 retcode30 错误码来配合修改广告代码即可。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM