네트워크 추적을 사용하면 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
}
}