網路追蹤

透過網路追蹤功能,您可以查看 Google Mobile Ads SDK 的相關網路活動,這項功能可用於偵錯 Google 行動廣告導入作業。

使用網路追蹤功能 (而非 Charles Proxy 等工具) 的主要原因是,這項功能適用於所有 Android 版本,以及執行支援版本的 Google Play 服務的裝置。代理工具則不會發生這種情況,因為 自 Android 7.0 起,信任的 CA 和憑證已就位

本指南說明如何啟用網路追蹤功能,以利偵錯。

Enable tracing

如要啟用網路追蹤功能,請為裝置啟用開發人員選項。接著,請啟動 Google 設定應用程式,然後選取「廣告」選項:

假設您已啟用開發人員選項且功能可用,畫面會如下所示:

選取「Enable debug logging for ads」選項,即可顯示下列對話方塊:

輕觸「確定」後,系統會顯示結尾為 10ca1ad1abe1 的廣告 ID:

您現在可以在 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
  }
}