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

การติดตามเครือข่ายช่วยให้คุณเห็นกิจกรรมของเครือข่ายที่เกี่ยวข้องกับ Google Mobile SDK โฆษณา ซึ่งจะมีประโยชน์ในการแก้ไขข้อบกพร่องในการใช้งานโฆษณาบนอุปกรณ์เคลื่อนที่ของ Google

เหตุผลหลักในการใช้การติดตามเครือข่ายแทนเครื่องมืออย่างCharles พร็อกซี คือสามารถทำงานร่วมกับ ทุก เวอร์ชัน 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
  }
}