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