การติดตามเครือข่ายช่วยให้คุณเห็นกิจกรรมของเครือข่ายที่เกี่ยวข้องกับ SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google ซึ่งจะเป็นประโยชน์ในการแก้ไขข้อบกพร่องในการติดตั้งใช้งานโฆษณาในอุปกรณ์เคลื่อนที่ของ Google
สาเหตุสำคัญในการใช้การติดตามเครือข่ายแทนการใช้เครื่องมืออย่าง 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
}
}