تتيح لك ميزة "تتبُّع الشبكة" الاطّلاع على أنشطة الشبكة المرتبطة بحزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة. ويمكن أن يكون ذلك مفيدًا في تصحيح أخطاء تنفيذ "إعلانات Google على الأجهزة الجوّالة".
من الأسباب الرئيسية لاستخدام ميزة "تتبّع الشبكة" بدلاً من أدوات مثل Charles Proxy هو أنّها متوافقة مع جميع إصدارات Android والأجهزة التي تعمل بإصدار متوافق من "خدمات Google Play". لا ينطبق ذلك على أدوات الخادم الوكيل بسبب التغييرات في مراجع التصديق والشهادات الموثوق بها المعمول بها منذ الإصدار Android 7.0.
يوضّح هذا الدليل كيفية تفعيل تتبُّع الشبكة لأغراض تصحيح الأخطاء.
تمكين التتبع
لتفعيل تتبُّع الشبكة، عليك تفعيل خيارات المطوّرين على جهازك. بعد ذلك، افتح تطبيق إعدادات Google واختَر الإعلانات:

بافتراض أنك قمت بتمكين خيارات المطور وأن الميزة متاحة، فستبدو شاشتك على النحو التالي:

حدِّد الخيار تفعيل ميزة تسجيل معلومات تصحيح أخطاء الإعلانات لعرض مربّع الحوار التالي:

انقر على حسنًا، وسيظهر لك معرِّف إعلاني ينتهي
بـ 10ca1ad1abe1:

يمكنك الآن الاطّلاع على جميع النتائج من سجلّ الشبكة في logcat. لفلترة مخرجات "إعلانات Google" على مستوى المعلومات فقط إلى كل من الشاشة والملف، يمكنك إصدار الأمر التالي:
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
}
}