網路追蹤

透過網路追蹤,您可以查看 Google Mobile Ads SDK 相關的網路活動。針對導入 Google 行動廣告進行偵錯時,這項做法非常實用。

使用網路追蹤功能 (而非 Charles Proxy) 的主要好處,就是能與所有版本的 Android 和搭載支援 Google Play 服務版本的裝置搭配使用。由於信任的 CA 和憑證自 Android 7.0 版起有所異動,因此使用 Proxy 工具時就不適用。

本指南說明如何啟用網路追蹤以便進行偵錯。

Enable tracing

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

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

選取「Enable debug log for ads」(啟用廣告偵錯記錄功能) 選項,開啟下列對話方塊:

輕觸「OK」,接著畫面就會顯示結尾為 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
  }
}