网络跟踪

借助网络跟踪功能,您可以查看与 Google 移动广告 SDK 相关的网络活动。这有助于调试 Google 移动广告的实现。

使用网络跟踪功能而非 Charles Proxy 等工具的主要原因是:网络跟踪功能适用于所有 Android 版本以及运行受支持的 Google Play 服务版本的设备。由于自 Android 7.0 以来的可信 CA 和证书发生了变化,代理工具并不存在这种情况。

本指南介绍了如何出于调试目的启用网络跟踪功能。

启用跟踪功能

如需启用网络跟踪功能,请为您的设备启用开发者选项。然后,启动 Google 设置应用并选择广告选项:

假设您已启用开发者选项并且该功能可用,您的屏幕将如下所示:

选择启用广告调试日志记录功能选项,以显示以下对话框:

点按确定,系统随即会显示以 10ca1ad1abe1 结尾的广告标识符:

现在,您可以在 logcat 中查看网络日志记录的所有输出。若要仅过滤信息级广告输出并同时过滤屏幕和文件,请发出以下命令:

adb logcat '*:S' Ads:I Ads-cont:I | tee logs.txt

输出

适用于标准平台的控制台日志用于输出网络日志。

控制台日志消息始终以字符串 GMA Debug BEGINGMA Debug CONTENTGMA Debug FINISH 开头,因此您可以搜索或过滤这些字符串。对于每个网络日志,第一条日志消息为 GMA Debug BEGIN,最后一条日志消息为 GMA Debug FINISH,并且网络日志内容以 GMA Debug CONTENT 开头。如果内容过长,无法完全显示在一行中,则会分成多行,且每行都以 GMA Debug CONTENT 开头。

控制台输出示例

I/Ads     ( 4660): GMA Debug BEGIN
I/Ads     ( 4660): GMA Debug CONTENT {"timestamp":1510679993741,...}
I/Ads     ( 4660): GMA Debug FINISH

JSON 输出示例

以下是 logcat 的一些 JSON 输出示例:

onNetworkRequest

{
  "timestamp": 1510679994904,
  "event": "onNetworkRequest",
  "components": [
    "ad_request_cf5ab185-3c3f-4f01-9f56-33da2ae110f2",
    "network_request_6553bc32-1d44-4f18-9dd0-5c183abbeb90"
  ],
  "params": {
    "firstline": {
      "uri": "http://googleads.g.doubleclick.net/pagead/ads?carrier=....",
      "verb": "GET"
    },
    "headers": [
      {
        "name": "User-Agent",
        "value": "Mozilla/5.0 (Linux; Android 5.0.2;..."
      }
    ]
  }
}

onNetworkResponse

{
  "timestamp": 1510679995295,
  "event": "onNetworkResponse",
  "components": [
    "ad_request_cf5ab185-3c3f-4f01-9f56-33da2ae110f2",
    "network_request_6553bc32-1d44-4f18-9dd0-5c183abbeb90"
  ],
  "params": {
    "firstline": {
      "code": 200
    },
    "headers": [
      {
        "name": null,
        "value": "HTTP/1.1 200 OK"
      },
      {
        "name": "X-Google-DOS-Service-Trace",
        "value": "main:pagead"
      },
      {
        "name": "Content-Type",
        "value": "text/html; charset=UTF-8"
      },
      ...
    ]
  }
}

onNetworkResponseBody

{
  "timestamp": 1510679995375,
  "event": "onNetworkResponseBody",
  "components": [
    "ad_request_cf5ab185-3c3f-4f01-9f56-33da2ae110f2",
    "network_request_6553bc32-1d44-4f18-9dd0-5c183abbeb90"
  ],
  "params": {
    "bodydigest": "B2520049D02F3C70A12AD1BC0D1B58A4",
    "bodylength": 122395
  }
}