การติดตามเครือข่ายช่วยให้คุณเห็นกิจกรรมของเครือข่ายที่เกี่ยวข้องกับ SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google ซึ่งอาจมีประโยชน์ในการแก้ไขข้อบกพร่องของการติดตั้งโฆษณา Google Mobile
เหตุผลหลักในการใช้การติดตามเครือข่ายแทนเครื่องมืออย่าง Charles Proxy คือ การทำงานร่วมกับ Android ทุกเวอร์ชันและอุปกรณ์ที่ใช้บริการ Google Play เวอร์ชันที่รองรับ โดยจะไม่เกิดขึ้นกับเครื่องมือการพร็อกซีเนื่องจากการเปลี่ยนแปลงใน CA และใบรับรองที่เชื่อถือได้ที่มีอยู่นับตั้งแต่ Android 7.0 เป็นต้น
คู่มือนี้อธิบายวิธีเปิดใช้การติดตามเครือข่ายเพื่อการแก้ไขข้อบกพร่อง
Enable tracing
หากต้องการเปิดใช้การติดตามเครือข่าย ให้เปิดใช้ตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์สำหรับอุปกรณ์ของคุณ จากนั้นเปิดแอปการตั้งค่า 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
}
}