ردیابی شبکه به شما امکان میدهد فعالیتهای شبکه مربوط به Google Mobile Ads SDK را مشاهده کنید. این می تواند در اشکال زدایی پیاده سازی تبلیغات تلفن همراه گوگل شما مفید باشد.
یک دلیل کلیدی برای استفاده از ردیابی شبکه به جای ابزارهایی مانند Charles Proxy این است که با تمام نسخههای اندروید و دستگاههایی که از نسخه پشتیبانیشده سرویسهای Google Play استفاده میکنند، کار میکند. این مورد در مورد ابزارهای پروکسی صدق نمی کند، زیرا به دلیل تغییراتی که در CA و گواهینامه های قابل اعتماد از Android نسخه 7.0 به وجود آمده است .
این راهنما نحوه فعال کردن ردیابی شبکه را برای اهداف اشکال زدایی توضیح می دهد.
ردیابی را فعال کنید
برای فعال کردن ردیابی شبکه، گزینه های توسعه دهنده را برای دستگاه خود فعال کنید . سپس، برنامه تنظیمات گوگل را اجرا کنید و گزینه تبلیغات را انتخاب کنید:
با فرض اینکه گزینه های توسعه دهنده را فعال کرده اید و این ویژگی در دسترس است، صفحه نمایش شما به این شکل خواهد بود:
گزینه Enable debug logging for ads را انتخاب کنید تا گفتگوی زیر ظاهر شود:
روی OK ضربه بزنید و سپس با یک شناسه تبلیغاتی روبرو می شوید که با 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 آورده شده است:
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
}
}