Śledzenie sieci

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

Najważniejszym powodem, dla którego warto korzystać z śledzenia sieci zamiast narzędzi takich jak Charles Proxy, jest to, że działa ono ze wszystkimi wersjami Androida i urządzeniami z obsługiwaną wersją usług Google Play. W przypadku narzędzi proxy nie dzieje się tak ze względu na zmiany w zaufanych urzędach certyfikacji i certyfikatach, które zostały wprowadzone od Androida w wersji 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 programisty na swoim urządzeniu. Następnie uruchom aplikację Ustawienia Google i wybierz opcję Reklamy:

Zakładając, że opcje programisty są włączone, a funkcja jest dostępna, ekran będzie wyglądał tak:

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

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

W logcat masz teraz widoczne wszystkie dane wyjściowe z logowania sieciowego. Aby filtrować na ekranie i do pliku tylko dane wyjściowe reklam na poziomie informacji, uruchom to polecenie:

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

Dane wyjściowe

Do wygenerowania dzienników sieciowych używane są standardowe dzienniki konsoli odpowiednie dla platformy.

Komunikaty dziennika konsoli zawsze zaczynają się od ciągu znaków GMA Debug BEGIN, GMA Debug CONTENT lub GMA Debug FINISH, więc możesz je wyszukiwać i filtrować. Dla każdego logu sieciowego pierwszy komunikat logu to GMA Debug BEGIN, ostatni to GMA Debug FINISH, a treść logu sieciowego zaczyna się od GMA Debug CONTENT. Jeśli treść nie mieści się w wierszu, jest dzielona między kilka wierszy, a każdy z nich 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 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
  }
}