تتبُّع الشبكة

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