ردیابی شبکه به شما امکان میدهد فعالیتهای شبکه مربوط به SDK تبلیغات موبایلی گوگل را مشاهده کنید. این میتواند در اشکالزدایی پیادهسازی تبلیغات موبایلی گوگل شما مفید باشد.
یک دلیل کلیدی برای استفاده از ردیابی شبکه به جای ابزارهایی مانند Charles Proxy این است که با تمام نسخههای اندروید و دستگاههایی که نسخه پشتیبانیشدهای از سرویسهای Google Play را اجرا میکنند، کار میکند. این مورد در مورد ابزارهای پروکسی به دلیل تغییرات در CAها و گواهینامههای معتبر از اندروید ۷.۰ صدق نمیکند.
این راهنما نحوه فعال کردن ردیابی شبکه برای اهداف اشکالزدایی را توضیح میدهد.
فعال کردن ردیابی
برای فعال کردن ردیابی شبکه، گزینههای توسعهدهنده را برای دستگاه خود فعال کنید . سپس، برنامه تنظیمات گوگل را اجرا کنید و گزینه تبلیغات (Ads) را انتخاب کنید:

با فرض اینکه گزینههای توسعهدهنده را فعال کردهاید و این ویژگی در دسترس است، صفحه شما به این شکل خواهد بود:

گزینه فعال کردن ثبت اشکالزدایی برای تبلیغات را انتخاب کنید تا کادر محاورهای زیر نمایش داده شود:

روی تأیید ضربه بزنید و سپس یک شناسه تبلیغاتی که با 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
در اینجا چند نمونه خروجی JSON از logcat آورده شده است:
درخواست روی شبکه
{
"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;..."
}
]
}
}
پاسخ شبکه
{
"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
}
}