עקבות רשת

מעקב ברשת (Network Tracing) מאפשר לכם לראות את הפעילויות ברשת שקשורות ל-Google Mobile Ads SDK. המידע הזה יכול לעזור בניפוי באגים בהטמעת המודעות של Google לנייד.

אחת מהסיבות העיקריות להשתמש במעקב ברשת במקום בכלים כמו Charles שרת Proxy עובד עם כל הגרסאות של מכשירי Android ומכשירים שפועלת בהם גרסה נתמכת של Google Play Services. הזה זה לא נכון בכלי שרת proxy בגלל שינויים אישורים ורשויות אישורים מהימנות החל מ-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
  }
}