עקבות רשת

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

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