מעקב ברשת (Network Tracing) מאפשר לכם לראות את הפעילויות ברשת שקשורות ל-Google Mobile Ads SDK. האפשרות הזו יכולה להיות שימושית לניפוי באגים בהטמעה של Google Mobile Ads.
אחת מהסיבות העיקריות להשתמש במעקב ברשת במקום בכלים כמו Charles Proxy היא שהמעקב ברשת פועל בכל הגרסאות של Android ובמכשירים שפועלת בהם גרסה נתמכת של Google Play Services. זה לא המצב עם כלי פרוקסי, בגלל שינויים באישורים ורשויות אישורים מהימנים שקיימים מאז 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
}
}