網路追蹤

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

使用網路追蹤功能 (而非 Charles Proxy 等工具) 的主要原因是,這項功能適用於所有 Android 版本,以及執行支援版本 Google Play 服務的裝置。由於 Android 7.0 以上版本信任的 CA 和憑證有所變更,因此代理工具無法使用。

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

Enable tracing

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

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

選取「啟用廣告偵錯記錄功能」選項,開啟下列對話方塊:

輕觸「確定」,系統隨即顯示廣告 ID,結尾為 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
  }
}