네트워크 추적

네트워크 추적을 사용하면 Google 모바일 광고 SDK와 관련된 네트워크 활동을 확인할 수 있습니다. 이렇게 하면 Google 모바일 광고 구현을 디버깅할 때 유용합니다.

Charles 프록시와 같은 도구 대신 네트워크 추적을 사용하는 주된 이유는 지원되는 버전의 Google Play 서비스를 실행하는 모든 버전의 Android 및 기기에서 작동하기 때문입니다. 프록싱 도구의 경우 Android 7.0 이후 신뢰할 수 있는 CA 및 인증서의 변경으로 인해 이와 같이 작동하지 않습니다.

이 가이드에서는 디버깅 목적으로 네트워크 추적을 사용하는 방법을 설명합니다.

추적 사용 설정

네트워크 추적을 사용하려면 기기에서 개발자 옵션을 사용 설정하세요. 그런 다음 Google 설정 앱을 실행하고 광고 옵션을 선택하세요.

개발자 옵션이 사용 설정되어 있고 이 기능을 사용할 수 있으면 화면이 다음과 같이 표시됩니다.

광고 디버그 로깅 사용 옵션을 선택하여 다음 대화상자를 표시합니다.

확인을 탭하면 10ca1ad1abe1로 끝나는 광고 식별자가 표시됩니다.

이제 logcat에서 네트워크 로깅의 모든 출력을 볼 수 있습니다. 정보 수준 광고 출력만 화면과 파일 모두에 필터링하려면 다음 명령어를 실행합니다.

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 출력 예시

다음은 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
  }
}