تتيح لك ميزة "تتبّع الشبكة" إمكانية الاطّلاع على أنشطة الشبكة المرتبطة بحزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة. ويمكن أن يكون ذلك مفيدًا في تصحيح أخطاء عملية تنفيذ "إعلانات Google على الأجهزة الجوّالة".
من الأسباب الرئيسية لاستخدام ميزة "تتبّع الشبكة" بدلاً من أدوات مثل Charles Proxy هو أنّها متوافقة مع جميع إصدارات Android والأجهزة التي تعمل بإصدار متوافق من "خدمات Google Play". لا ينطبق ذلك على أدوات الربط الوكيل بسبب التغييرات التي تم إدخالها على شهادات المرجع المصدّق الموثوق بها والشهادات منذ إصدار Android 7.0.
يوضّح هذا الدليل كيفية تفعيل ميزة "تتبّع الشبكة" لأغراض تصحيح الأخطاء.
تمكين التتبع
لتفعيل ميزة "تتبّع الشبكة"، فعِّل خيارات المطوّر على جهازك. بعد ذلك، شغِّل تطبيق إعدادات 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
في ما يلي بعض الأمثلة على الناتج بتنسيق 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
}
}