Отслеживание сети

Отслеживание сети позволяет видеть сетевую активность, связанную с Google Mobile Ads SDK. Это может быть полезно при отладке реализации Google Mobile Ads.

В отличие от других инструментов, например Charles Proxy, отслеживание сети работает на всех устройствах Android с поддерживаемой версией сервисов Google Play. Это не относится к инструментам проксирования из-за изменений в доверенных центрах сертификации и сертификатах, действующих с Android 7.0.

В этом руководстве рассказывается, как включить отслеживание сети для отладки.

Enable tracing

Чтобы включить отслеживание сети, включите режим разработчика на устройстве. Затем запустите приложение Настройки Google и выберите Реклама.

Если у вас включен режим «Для разработчиков» и функция доступна, экран будет выглядеть следующим образом:

Выберите Включить журнал отладки для объявлений. Появится следующее диалоговое окно:

Нажмите ОК. Появится рекламный идентификатор, который заканчивается на 10ca1ad1abe1:

Теперь вы можете посмотреть все выходные данные сетевого журнала в logcat. Чтобы отфильтровать только выходные данные Ads уровня Information и вывести их на экран и в файл, выполните следующую команду:

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. Если контент слишком длинный, чтобы поместиться в одной строке, он разбивается на несколько строк, каждая из которых начинается с GMA Debug CONTENT.

Пример выходных данных консоли

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

Пример вывода в формате JSON

Ниже приведены примеры выходных данных JSON из logcat.

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
  }
}