تتبع الشبكة

يتيح لك تتبع الشبكة الاطلاع على أنشطة الشبكة ذات الصلة بخدمة Google Mobile حزمة تطوير البرامج (SDK) لعرض الإعلانات ويمكن الاستفادة من ذلك في تصحيح أخطاء تنفيذ إعلانات Google على الأجهزة الجوّالة.

أحد الأسباب الرئيسية لاستخدام تتبُّع الشبكات بدلاً من أدوات مثل Charles الخادم الوكيل هو أنه يعمل مع كل إصدارات أجهزة Android والأجهزة التي تعمل بإصدار متوافق من "خدمات Google Play" هذا النمط لا يعد الأمر كذلك مع أدوات الوكيل بسبب التغييرات في شهادات CA وشهادات موثوق بها موجودة منذ الإصدار 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
  }
}