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

เลือกแพลตฟอร์ม: Android iOS

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

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