ネットワーク トレース

ネットワーク トレースでは、Google Mobile Ads SDK に関連するネットワーク アクティビティを確認できます。これは、Google Mobile Ads の実装をデバッグする際に役立ちます。

Charles プロキシなどのツールの代わりにネットワーク トレースを使う主なメリットは、すべてのバージョンの Android と、サポートされているバージョンの Google Play 開発者サービスを搭載したデバイスで機能することです。Android 7.0 以降に導入された信頼できる CA と証明書の変更により、プロキシツールではこのようになりません。

このガイドでは、デバッグ目的でネットワーク トレースを有効にする方法について説明します。

トレースを有効にする

ネットワーク トレースを有効にするには、デバイスの開発者向けオプションを有効にします。次に、Google 設定アプリを起動し、[広告] オプションを選択します。

開発者向けオプションが有効になっていて、この機能が利用可能な場合、画面は次のようになります。

[広告のデバッグ ロギングを有効にする] オプションを選択すると、次のダイアログが表示されます。

[OK] をタップすると、10ca1ad1abe1 で終わる広告 ID が表示されます。

これで、ネットワーク ロギングのすべての出力が logcat に表示されるようになります。情報レベルの Ads 出力のみを画面とファイルの両方にフィルタするには、次のコマンドを実行します。

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

出力

ネットワーク ログの出力には、プラットフォームに適した標準のコンソールログが使用されます。

コンソール ログ メッセージは常に文字列 GMA Debug BEGIN、GMA Debug CONTENT、GMA Debug FINISH で始まるため、これらの文字列を検索またはフィルタできます。各ネットワーク ログの最初のログ メッセージは GMA Debug BEGIN、最後のログ メッセージは GMA Debug FINISH、ネットワーク ログの内容は GMA Debug CONTENT で始まります。コンテンツが長すぎて 1 行に収まらない場合は、複数の行に分割され、各行は 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
  }
}