تتيح لك ميزة "تتبُّع الشبكة" الاطّلاع على أنشطة الشبكة المرتبطة بحزمة تطوير البرامج (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
}
}