تتبع الشبكة

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

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

يشرح هذا الدليل كيفية تفعيل تتبُّع الشبكة لأغراض تصحيح الأخطاء.

تمكين التتبع

لتفعيل ميزة "تتبّع الشبكة"، عليك تفعيل خيارات المطوّرين في جهازك. بعد ذلك، شغِّل تطبيق إعدادات 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
  }
}