Śledzenie sieci

Śledzenie sieci pozwala zobaczyć aktywności w sieci związane z pakietem SDK do reklam mobilnych Google. Może to być przydatne podczas debugowania implementacji reklam mobilnych Google.

Główną zaletą funkcji śledzenia sieci w porównaniu z narzędziami takimi jak Charles Proxy jest to, że działa ona we wszystkich wersjach Androida i na urządzeniach z obsługiwaną wersją Usług Google Play. W przypadku narzędzi proxy jest to niemożliwe ze względu na zmiany w zaufanych urzędach certyfikacji i certyfikatach wprowadzone w Androidzie 7.0.

Z tego przewodnika dowiesz się, jak włączyć śledzenie sieci na potrzeby debugowania.

Enable tracing

Aby włączyć śledzenie sieci, włącz opcje dla programistów na urządzeniu. Następnie otwórz aplikację Ustawienia Google i wybierz opcję Reklamy:

Zakładając, że masz włączone opcje programisty i że funkcja jest dostępna, Twój ekran będzie wyglądać tak:

Wybierz opcję Włącz rejestrowanie debugowania reklam, aby wyświetlić to okno:

Kliknij OK. Zostanie wyświetlony identyfikator wyświetlania reklam, który kończy się na 10ca1ad1abe1:

Teraz możesz zobaczyć wszystkie dane wyjściowe z logowania sieci w logcat. Aby filtrować dane wyjściowe reklam na poziomie informacji tylko na ekranie i w pliku, wykonaj to polecenie:

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

Wyniki

Do wyprowadzania logów sieciowych używane są standardowe logi konsoli odpowiednie dla danej platformy.

Wiadomości w dzienniku konsoli zawsze zaczynają się od ciągu GMA Debug BEGIN, GMA Debug CONTENT lub GMA Debug FINISH, więc możesz je wyszukiwać lub filtrować. W przypadku każdego dziennika sieciowego pierwsza wiadomość to GMA Debug BEGIN, ostatnia wiadomość to GMA Debug FINISH, a treść dziennika sieciowego zaczyna się od GMA Debug CONTENT. Jeśli treść jest zbyt długa, aby zmieścić się na jednym wierszu, jest dzielona na kilka wierszy, z których każdy zaczyna się od GMA Debug CONTENT.

Przykład danych wyjściowych konsoli

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

Przykład danych wyjściowych w formacie JSON

Oto kilka przykładów danych wyjściowych JSON z 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
  }
}