การติดตามเครือข่าย

การติดตามเครือข่ายช่วยให้คุณเห็นกิจกรรมของเครือข่ายที่เกี่ยวข้องกับ 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
  }
}