API ประวัติ CrUX

เผยแพร่: 7 ก.พ. 2023 อัปเดตล่าสุด: 11 เม.ย. 2025

CrUX History API ให้สิทธิ์เข้าถึงข้อมูลประสบการณ์ของผู้ใช้จริงที่ผ่านมา 6 เดือนในระดับรายละเอียดหน้าเว็บและต้นทางโดยมีความล่าช้าต่ำ

ลองใช้งาน

กรณีการใช้งานทั่วไป

CrUX History API ช่วยให้สามารถค้นหาเมตริกประสบการณ์ของผู้ใช้ที่ผ่านมาสําหรับ URI ที่เฉพาะเจาะจง เช่น "ดูแนวโน้ม UX ที่ผ่านมาของต้นทาง https://example.com"

History API มีโครงสร้างเหมือนกับ CrUX API รายวัน ยกเว้นค่าจะอยู่ในอาร์เรย์และคีย์จะมีป้ายกำกับเป็นชื่อพหูพจน์ (เช่น histogramTimeseries แทน histogram หรือ p75s แทน p75)

คีย์ API ของ CrUX

เช่นเดียวกับ API รายวัน การใช้ CrUX History API ต้องใช้คีย์ Google Cloud API ที่กําหนดไว้สําหรับการใช้งาน Chrome UX Report API คุณใช้คีย์เดียวกันกับ API รายวันและประวัติได้

การรับและใช้คีย์ API

ซื้อคีย์

หรือสร้างในหน้าข้อมูลเข้าสู่ระบบ

หลังจากมีคีย์ API แล้ว แอปพลิเคชันจะเพิ่มพารามิเตอร์การค้นหา key=yourAPIKey ต่อท้าย URL คำขอทั้งหมดได้

คีย์ API ปลอดภัยสำหรับการฝังใน URL โดยไม่จำเป็นต้องเข้ารหัส

ดูตัวอย่างการค้นหา

โมเดลข้อมูล

ส่วนนี้แสดงรายละเอียดโครงสร้างของข้อมูลในคำขอและการตอบกลับ

บันทึก

ข้อมูลหนึ่งๆ เกี่ยวกับหน้าเว็บหรือเว็บไซต์ ระเบียนอาจมีข้อมูลที่เจาะจงสำหรับตัวระบุและชุดค่าผสมของมิติข้อมูลหนึ่งๆ ระเบียนหนึ่งๆ อาจมีข้อมูลของเมตริกอย่างน้อย 1 รายการ

รหัสระบุ

ตัวระบุจะระบุระเบียนที่จะค้นหา ใน CrUX ตัวระบุเหล่านี้คือหน้าเว็บและเว็บไซต์

Origin

เมื่อตัวระบุเป็นต้นทาง ระบบจะรวบรวมข้อมูลทั้งหมดที่มีอยู่ในหน้าเว็บทั้งหมดในต้นทางนั้นเข้าด้วยกัน ตัวอย่างเช่น สมมติว่าแหล่งที่มา http://www.example.com มีหน้าเว็บตามที่แสดงใน Sitemap นี้

http://www.example.com/
http://www.example.com/foo.html
http://www.example.com/bar.html

ซึ่งหมายความว่าเมื่อค้นหารายงาน UX ของ Chrome โดยตั้งค่าต้นทางเป็น http://www.example.com ระบบจะแสดงข้อมูลของ http://www.example.com/, http://www.example.com/foo.html และ http://www.example.com/bar.html โดยรวมกัน เนื่องจากหน้าเว็บทั้งหมดเหล่านั้นอยู่ภายใต้ต้นทางนั้น

URL

เมื่อตัวระบุเป็น URL ระบบจะแสดงเฉพาะข้อมูลของ URL นั้นๆ เมื่อดู Sitemap ต้นทาง http://www.example.com อีกครั้ง

http://www.example.com/
http://www.example.com/foo.html
http://www.example.com/bar.html

หากตั้งค่าตัวระบุเป็น URL ที่มีค่า http://www.example.com/foo.html ระบบจะแสดงเฉพาะข้อมูลของหน้านั้น

ขนาด

มิติข้อมูลจะระบุกลุ่มข้อมูลเฉพาะที่ระบบใช้รวมระเบียน เช่น รูปแบบของ PHONE บ่งบอกว่าระเบียนมีข้อมูลเกี่ยวกับการโหลดที่เกิดขึ้นบนอุปกรณ์เคลื่อนที่

รูปแบบของอุปกรณ์

CrUX History API มีให้บริการแบบรวมตามมิติข้อมูลรูปแบบของอุปกรณ์เท่านั้น อุปกรณ์ประเภทนี้เป็นอุปกรณ์ทั่วไปที่แบ่งออกเป็น PHONE, TABLET และ DESKTOP

เมตริก

เรารายงานเมตริกเป็นอนุกรมเวลาของการรวมสถิติ ซึ่งได้แก่ ฮิสโตแกรม เปอร์เซ็นต์ไทล์ และเศษส่วน

ฮิสโตแกรม

เมื่อแสดงเมตริกในอาร์เรย์ฮิสโตแกรม รายการอนุกรมเวลาแต่ละรายการจะแสดงเปอร์เซ็นต์ของการโหลดหน้าเว็บที่เมตริกอยู่ในช่วง โดยคิดเป็นสัดส่วนกับทั้งหมด ระบบจะแสดงจุดข้อมูลตามลําดับวันที่ระยะเวลาการเก็บรวบรวมข้อมูลที่ API แสดงด้วย โดยจุดแรกคือระยะเวลาที่เร็วที่สุด และจุดสุดท้ายคือระยะเวลาการเก็บรวบรวมข้อมูลล่าสุด

ฮิสโตแกรม 3 กล่องสําหรับเมตริกตัวอย่างมีลักษณะดังนี้

{
  "histogramTimeseries": [
    {
      "start": 0,
      "end": 2500,
      "densities": [0.9190, 0.9203, 0.9194, 0.9195, 0.9183, 0.9187]
    },
    {
      "start": 2500,
      "end": 4000,
      "densities": [0.0521, 0.0513, 0.0518, 0.0518, 0.0526, 0.0527]
    },
    {
      "start": 4000,
      "densities": [0.0288, 0.0282, 0.0286, 0.0285, 0.0290, 0.0285]
    }
  ],
}

ข้อมูลนี้ระบุว่าการโหลดหน้าเว็บ 91.90% มีค่าเมตริกตัวอย่างระหว่าง 0-2,500 มิลลิวินาทีสําหรับระยะเวลาการเก็บรวบรวมข้อมูลครั้งแรกในประวัติ ตามด้วย 92.03%, 91.94%... หน่วยของเมตริกไม่ได้อยู่ในฮิสโตแกรมนี้ ในกรณีนี้เราจะถือว่าหน่วยเป็นมิลลิวินาที

นอกจากนี้ การโหลดหน้าเว็บ 5.21% มีค่าเมตริกตัวอย่างระหว่าง 2,500-4,000 มิลลิวินาทีในระยะการเก็บรวบรวมข้อมูลแรกในประวัติ และ 2.88% ของการโหลดหน้าเว็บมีค่ามากกว่า 4,000 มิลลิวินาทีในระยะการเก็บรวบรวมข้อมูลแรกในประวัติ

เปอร์เซ็นต์ไทล์

เมตริกอาจมีอนุกรมเวลาของเปอร์เซ็นต์ไทล์ที่เป็นประโยชน์สําหรับการวิเคราะห์เพิ่มเติมด้วย

ระบบจะแสดงจุดข้อมูลตามลําดับวันที่ระยะเวลาการเก็บรวบรวมข้อมูลที่ API แสดงด้วย โดยจุดแรกคือระยะเวลาที่เร็วที่สุด และจุดสุดท้ายคือระยะเวลาการเก็บรวบรวมข้อมูลล่าสุด

{
  "percentilesTimeseries": {
    "p75s": [1362, 1352, 1344, 1356, 1366, 1377]
  },
}

เปอร์เซ็นต์เหล่านี้สามารถแสดงค่าเมตริกที่เฉพาะเจาะจงที่เปอร์เซ็นต์ที่กำหนดสำหรับเมตริกนั้น ค่าเหล่านี้อิงตามชุดข้อมูลที่มีอยู่ทั้งหมด ไม่ใช่ข้อมูลสุดท้ายที่จัดกลุ่ม ดังนั้นจึงไม่จำเป็นต้องตรงกับเปอร์เซ็นต์ไทล์ที่อัตราส่วนซึ่งอิงตามฮิสโตแกรมการจัดกลุ่มสุดท้าย

เศษส่วน

เมตริกอาจแสดงเป็นอนุกรมเวลาของเศษส่วนที่มีป้ายกำกับ โดยป้ายกำกับแต่ละรายการจะอธิบายการโหลดหน้าเว็บในลักษณะหนึ่งๆ ระบบจะแสดงจุดข้อมูลตามลําดับวันที่ระยะเวลาการเก็บรวบรวมข้อมูลที่ API แสดงด้วย โดยจุดแรกคือระยะเวลาที่เร็วที่สุด และจุดสุดท้ายคือระยะเวลาการเก็บรวบรวมข้อมูลล่าสุด

ตัวอย่าง

{    
  "fractionTimeseries": {
    "desktop": {"fractions": [0.3195, 0.2115, 0.1421]},
    "phone": {"fractions": [0.6295, 0.7544, 0.8288]},
    "tablet": {"fractions": [0.051, 0.0341, 0.029]}
  }
}

ในตัวอย่างนี้ จุดข้อมูลล่าสุดระบุว่าการโหลดหน้าเว็บ 14.21% มาจากเดสก์ท็อป และ 82.88% มาจากโทรศัพท์

ประเภทค่าเมตริก

เนื่องจาก CrUX History API ใช้ประเภทค่าเมตริกเดียวกัน คุณจึงดูรายละเอียดเพิ่มเติมได้ที่เอกสารประกอบเกี่ยวกับประเภทค่าเมตริก CrUX API รายวัน

การมีสิทธิ์ใช้เมตริก

ต้นทางหรือ URL อาจมีสิทธิ์สำหรับระยะเวลาการเก็บรวบรวมข้อมูลบางช่วงเวลาที่ CrUX History API ครอบคลุมเท่านั้น โดยอิงตามเกณฑ์การมีสิทธิ์ ในกรณีเหล่านี้ CrUX History API จะแสดงผล "NaN" สําหรับความหนาแน่น histogramTimeseries และ null สําหรับ percentilesTimeseries สําหรับระยะเวลาการเก็บรวบรวมที่ไม่มีข้อมูลที่มีสิทธิ์ สาเหตุที่ต่างกันคือความหนาแน่นของฮิสโตแกรมจะเป็นตัวเลขเสมอ ส่วนเปอร์เซ็นต์ไทล์อาจเป็นตัวเลขหรือสตริงก็ได้ (CLS ใช้สตริง แม้ว่าจะดูเหมือนตัวเลขก็ตาม)

เช่น หากระยะเวลาที่ 2 ไม่มีข้อมูลที่มีสิทธิ์ ข้อมูลจะแสดงดังนี้

{
  "histogramTimeseries": [
    {
      "start": 0,
      "end": 2500,
      "densities": [0.9190, "NaN", 0.9194, 0.9195, 0.9183, 0.9187]
    },
    {
      "start": 2500,
      "end": 4000,
      "densities": [0.0521, "NaN", 0.0518, 0.0518, 0.0526, 0.0527]
    },
    {
      "start": 4000,
      "densities": [0.0288, "NaN", 0.0286, 0.0285, 0.0290, 0.0285]
    }
  ],
  "percentilesTimeseries": {
    "p75s": [1362, null, 1344, 1356, 1366, 1377]
  },
}

สำหรับ URL หรือต้นทางที่มีสิทธิ์หรือไม่มีสิทธิ์ตามช่วงเวลา คุณอาจเห็นว่ามีรายการที่หายไปจำนวนมาก

ระยะเวลาการเก็บรวบรวม

CrUX History API มีออบเจ็กต์ collectionPeriods ที่มีอาร์เรย์ของช่อง firstDate และ endDate ซึ่งแสดงวันที่เริ่มต้นและวันที่สิ้นสุดของกรอบเวลาการรวบรวมข้อมูลแต่ละกรอบ เช่น

    "collectionPeriods": [{
        "firstDate": { "year": 2022, "month": 7, "day": 10 },
        "lastDate": { "year": 2022, "month": 8, "day": 6 }
      }, {
        "firstDate": { "year": 2022, "month": 7, "day": 17 },
        "lastDate": { "year": 2022, "month": 8, "day": 13 }
      }, {
        "firstDate": { "year": 2022, "month": 7, "day": 24 },
        "lastDate": { "year": 2022, "month": 8, "day": 20 }
      }, {
        "firstDate": { "year": 2022, "month": 7, "day": 31 },
        "lastDate": { "year": 2022, "month": 8, "day": 27 }
      }, {
        "firstDate": { "year": 2022, "month": 8, "day": 7 },
        "lastDate": { "year": 2022, "month": 9, "day": 3 }
      }, {
        "firstDate": { "year": 2022, "month": 8, "day": 14 },
        "lastDate": { "year": 2022, "month": 9, "day": 10 }
      }
    ]

ระยะเวลาการเก็บรวบรวมเหล่านี้จะเรียงตามลําดับจากน้อยไปมากและแสดงช่วงวันที่ของจุดข้อมูลแต่ละจุดในส่วนอื่นๆ ของคําตอบ

History API จะอัปเดตทุกวันจันทร์และมีข้อมูลจนถึงวันเสาร์ก่อนหน้า (ตามการหน่วงเวลามาตรฐาน 2 วัน) ข้อมูลนี้มีข้อมูล 40 สัปดาห์ก่อนหน้า ซึ่งก็คือระยะเวลาการเก็บรวบรวม 1 สัปดาห์ต่อสัปดาห์ โดยค่าเริ่มต้น ระบบจะแสดงระยะเวลาการเก็บรวบรวม 25 รายการ ซึ่งสามารถเปลี่ยนแปลงได้โดยการตั้งค่า "collectionPeriodCount" ในคำขอเป็นตัวเลขระหว่าง 1 ถึง 40

เนื่องจากระยะเวลาการเก็บรวบรวมแต่ละระยะเวลามีข้อมูลที่รวบรวมในช่วง 28 วันก่อนหน้า และระยะเวลาการเก็บรวบรวมคือต่อสัปดาห์ ระยะเวลาการเก็บรวบรวมจึงจะทับซ้อนกัน ซึ่งคล้ายกับค่าเฉลี่ยเคลื่อนที่ของข้อมูล โดยจะมีข้อมูล 3 สัปดาห์รวมอยู่ในระยะเวลาต่อๆ ไปแต่ละระยะเวลา และอีก 1 สัปดาห์จะแตกต่างกัน

ตัวอย่างคำค้นหา

ระบบจะส่งการค้นหาเป็นออบเจ็กต์ JSON โดยใช้คำขอ POST ไปยัง https://chromeuxreport.googleapis.com/v1/records:queryHistoryRecord?key=[YOUR_API_KEY]" พร้อมข้อมูลการค้นหาที่เป็นออบเจ็กต์ JSON ในเนื้อหา POST

โปรดสังเกตการใช้ queryHistoryRecord แทน queryRecord ของ CrUX API รายวัน

ตัวอย่างเนื้อหามีดังนี้

{
  "origin": "https://example.com",
  "formFactor": "PHONE",
  "metrics": [
    "largest_contentful_paint",
    "experimental_time_to_first_byte"
  ]
}

ตัวอย่างเช่น เรียกใช้จาก curl ได้ด้วยบรรทัดคำสั่งต่อไปนี้ (แทนที่ API_KEY ด้วยคีย์ของคุณ)

curl -s --request POST 'https://chromeuxreport.googleapis.com/v1/records:queryHistoryRecord?key=API_KEY' \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --data '{"formFactor":"PHONE","origin":"https://www.example.com","metrics":["largest_contentful_paint", "experimental_time_to_first_byte"]}'

ข้อมูลระดับหน้าเว็บจะพร้อมใช้งานผ่าน API โดยส่งพร็อพเพอร์ตี้ url ในคําค้นหาแทน origin

{
  "url": "https://example.com/page",
  "formFactor": "PHONE",
  "metrics": [
    "largest_contentful_paint",
    "experimental_time_to_first_byte"
  ]
}

หากไม่ได้ตั้งค่าพร็อพเพอร์ตี้ metrics ระบบจะแสดงผลเมตริกทั้งหมดที่มีอยู่

  • cumulative_layout_shift
  • first_contentful_paint
  • interaction_to_next_paint
  • largest_contentful_paint
  • experimental_time_to_first_byte
  • largest_contentful_paint_resource_type
  • largest_contentful_paint_image_time_to_first_byte
  • largest_contentful_paint_image_resource_load_delay
  • largest_contentful_paint_image_resource_load_duration
  • largest_contentful_paint_image_element_render_delay
  • navigation_types
  • round_trip_time
  • form_factors (จะรายงานก็ต่อเมื่อไม่ได้ระบุ formFactor ในคำขอ)

หากไม่ได้ระบุค่า formFactor ระบบจะรวบรวมค่าจากรูปแบบต่างๆ ทั้งหมด

ดูตัวอย่างการค้นหาเพิ่มเติมได้ในคู่มือการใช้ CrUX History API

Data Pipeline

ชุดข้อมูล CrUX ได้รับการประมวลผลผ่านไปป์ไลน์เพื่อรวม รวบรวม และกรองข้อมูลก่อนที่จะพร้อมใช้งานผ่าน API

ค่าเฉลี่ยต่อเนื่อง

ข้อมูลในรายงาน UX ของ Chrome คือค่าเฉลี่ยแบบต่อเนื่อง 28 วันของเมตริกที่รวบรวม ซึ่งหมายความว่าข้อมูลที่แสดงในรายงาน UX ของ Chrome ณ เวลาหนึ่งๆ คือข้อมูลในช่วง 28 วันที่ผ่านมาที่รวบรวมไว้ด้วยกัน

History API มีระยะเวลาการเก็บรวบรวมหลายช่วงเวลา โดยแต่ละช่วงเวลาจะครอบคลุม 28 วัน เนื่องจากระยะเวลาการเก็บรวบรวมแต่ละระยะเวลามีข้อมูลที่รวบรวมในช่วง 28 วันก่อนหน้า และระยะเวลาการเก็บรวบรวมคือต่อสัปดาห์ ระยะเวลาการเก็บรวบรวมจึงจะทับซ้อนกัน ซึ่งคล้ายกับค่าเฉลี่ยเคลื่อนที่ของข้อมูล โดยจะมีข้อมูล 3 สัปดาห์รวมอยู่ในระยะเวลาต่อๆ ไปแต่ละระยะเวลา และอีก 1 สัปดาห์จะแตกต่างกัน

การอัปเดตรายสัปดาห์

History API จะอัปเดตทุกวันจันทร์เวลาประมาณ 04:00 น. ตามเขตเวลา UTC และมีข้อมูลจนถึงวันเสาร์ก่อนหน้า (ตามการหน่วงเวลามาตรฐาน 2 วัน) ข้อมูลนี้ประกอบด้วยข้อมูล 40 สัปดาห์ก่อนหน้า (ประมาณ 10 เดือน) โดยแบ่งเป็นระยะเวลาการเก็บรวบรวม 1 สัปดาห์ต่อสัปดาห์ โปรดทราบว่าโดยค่าเริ่มต้น เราจะแสดงผล 25 รายการต่ออนุกรมเวลา แต่สามารถลบล้างได้โดยระบุพารามิเตอร์คำขอ collectionPeriodCount

ไม่มีข้อตกลงระดับการให้บริการสำหรับเวลาอัปเดต ระบบจะดำเนินการอย่างดีที่สุดทุกวัน

สคีมา

CrUX History API มีปลายทางเดียวที่ยอมรับคำขอ POST HTTP API จะแสดงผล record ซึ่งมี metrics อย่างน้อย 1 รายการซึ่งสอดคล้องกับข้อมูลประสิทธิภาพเกี่ยวกับต้นทางหรือหน้าเว็บที่ขอ

คำขอ HTTP

POST https://chromeuxreport.googleapis.com/v1/records:queryHistoryRecord

URL ใช้ไวยากรณ์การแปลง gRPC

เนื้อความของคำขอ

CrUX History API ใช้เนื้อหาคำขอที่คล้ายกับ CrUX API รายวัน โดยมีช่อง "collectionPeriodCount" เพิ่มเติมอีก 1 ช่องที่ไม่บังคับ

{
  "formFactor": enum (FormFactor),
  "metrics": [
    string
  ],

  // Union field url_pattern can be only one of the following:
  "origin": string,
  "url": string,
  // End of list of possible types for union field url_pattern.

  "collectionPeriodCount": int32 // Optional: Number of periods to collect
}
ช่อง
formFactor

enum (FormFactor)

รูปแบบเป็นมิติข้อมูลการค้นหาที่ระบุคลาสอุปกรณ์ที่ข้อมูลของระเบียนควรเป็นของ

ช่องนี้ใช้ค่า DESKTOP, PHONE หรือ TABLET

หมายเหตุ: หากไม่ได้ระบุรูปแบบของอุปกรณ์ ระบบจะแสดงระเบียนพิเศษที่มีข้อมูลที่รวบรวมจากรูปแบบของอุปกรณ์ทั้งหมด

metrics[]

string

เมตริกที่ควรรวมอยู่ในคำตอบ หากไม่ระบุ ระบบจะแสดงเมตริกที่พบ

ค่าที่ใช้ได้มีดังนี้ ["cumulative_layout_shift", "first_contentful_paint", "interaction_to_next_paint", "largest_contentful_paint", "experimental_time_to_first_byte", "largest_contentful_paint_resource_type", "largest_contentful_paint_image_time_to_first_byte", "largest_contentful_paint_image_resource_load_delay", "largest_contentful_paint_image_resource_load_duration", "largest_contentful_paint_image_element_render_delay", "navigation_types", "round_trip_time"]

ฟิลด์สหภาพ url_pattern url_pattern คือตัวระบุหลักสำหรับการค้นหาระเบียน โดยต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
origin

string

url_pattern "origin" หมายถึงรูปแบบ URL ที่เป็นต้นทางของเว็บไซต์

ตัวอย่าง: "https://example.com", "https://cloud.google.com"

url

string

url_pattern url หมายถึงรูปแบบ URL ที่เป็น URL ที่กำหนดเอง

ตัวอย่าง: "https://example.com/, https://cloud.google.com/why-google-cloud/"

สิ้นสุดฟิลด์ยูเนียน url_pattern
collectionPeriodCount

int32 (ไม่บังคับ)

จำนวนระยะเวลาการเก็บรวบรวมที่จะแสดงผลอยู่ระหว่าง 1 ถึง 40 ค่าเริ่มต้นคือ 25

โปรดทราบว่าหากไม่ได้ระบุ collectionPeriodCount ระบบจะแสดงผล 25 ซึ่งเป็นค่าเริ่มต้น

เช่น หากต้องการขอค่า Largest Contentful Paint บนเดสก์ท็อปสําหรับหน้าแรกของ web.dev ให้ทําดังนี้

{
  "url": "https://web.dev/",
  "formFactor": "DESKTOP",
  "metrics": [
    "largest_contentful_paint"
  ]
}

คําขอที่คล้ายกันนี้จะมีช่อง collectionPeriodCount (ไม่บังคับ) และจะให้ผลลัพธ์เป็นรายการอนุกรมเวลา 40 รายการ ซึ่งแสดงประวัติประสิทธิภาพของเว็บประมาณ 10 เดือนสําหรับต้นทาง https://web.dev

{
  "url": "https://web.dev/",
  "formFactor": "DESKTOP",
  "metrics": [
    "largest_contentful_paint"
  ],
  "collectionPeriodCount": 40
}

เนื้อหาการตอบกลับ

คำขอที่ดำเนินการสำเร็จจะแสดงการตอบกลับที่มีออบเจ็กต์ record และ urlNormalizationDetails ในโครงสร้างต่อไปนี้

{
  "record": {
    "key": {
      object (Key)
    },
    "metrics": [
      string: {
        object (Metric)
      }
    ]
  },
  "urlNormalizationDetails": {
    object (UrlNormalization)
  }
}

ตัวอย่างเช่น การตอบกลับเนื้อหาคำขอในคำขอก่อนหน้าอาจเป็นดังนี้

{
  "record": {
    "key": {
      "origin": "https://web.dev"
    },
    "metrics": {
      "largest_contentful_paint": {
        "histogramTimeseries": [{
            "start": 0, "end": 2500, "densities": [
              0.9190, 0.9203, 0.9194, 0.9195, 0.9183, 0.9187, ...
            ]
          }, {
            "start": 2500, "end": 4000, "densities": [
              0.0521, 0.0513, 0.0518, 0.0518, 0.0526, 0.0527, ...
            ]
          },  {
            "start": 4000, "densities": [
              0.0288, 0.0282, 0.0286, 0.0285, 0.0290, 0.0285, ...
            ]
          }
        ],
        "percentilesTimeseries": {
          "p75s": [
            1362, 1352, 1344, 1356, 1366, 1377, ...
          ]
        }
      }
    },
    "collectionPeriods": [{
        "firstDate": { "year": 2022, "month": 7, "day": 10 },
        "lastDate": { "year": 2022, "month": 8, "day": 6 }
      }, {
        "firstDate": { "year": 2022, "month": 7, "day": 17 },
        "lastDate": { "year": 2022, "month": 8, "day": 13 }
      }, {
        "firstDate": { "year": 2022, "month": 7, "day": 24 },
        "lastDate": { "year": 2022, "month": 8, "day": 20 }
      }, {
        "firstDate": { "year": 2022, "month": 7, "day": 31 },
        "lastDate": { "year": 2022, "month": 8, "day": 27 }
      }, {
        "firstDate": { "year": 2022, "month": 8, "day": 7 },
        "lastDate": { "year": 2022, "month": 9, "day": 3 }
      }, {
        "firstDate": { "year": 2022, "month": 8, "day": 14 },
        "lastDate": { "year": 2022, "month": 9, "day": 10 }
      }, {
        ...
      }
    ]
  }
}

คีย์

Key กำหนดมิติข้อมูลทั้งหมดที่ระบุระเบียนนี้ว่าไม่ซ้ำกัน

{
  "formFactor": enum (FormFactor),

  // Union field url_pattern can be only one of the following:
  "origin": string,
  "url": string
  // End of list of possible types for union field url_pattern.
}
ช่อง
formFactor

enum (FormFactor)

รูปแบบคือคลาสอุปกรณ์ที่ผู้ใช้ทั้งหมดใช้เข้าถึงเว็บไซต์สําหรับระเบียนนี้

หากไม่ได้ระบุรูปแบบของอุปกรณ์ ระบบจะแสดงผลข้อมูลที่รวบรวมจากทุกรูปแบบของอุปกรณ์

ฟิลด์สหภาพ url_pattern รูปแบบ URL คือ URL ที่ใช้กับระเบียน url_pattern ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
origin

string

ต้นทางจะระบุต้นทางของระเบียนนี้

หมายเหตุ: เมื่อระบุต้นทาง ระบบจะรวบรวมข้อมูลการโหลดภายใต้ต้นทางนี้ในหน้าเว็บทั้งหมดเป็นข้อมูลประสบการณ์ของผู้ใช้ระดับต้นทาง

url

string

url ระบุ URL ที่เจาะจงของระเบียนนี้

หมายเหตุ: เมื่อระบุ url ระบบจะรวบรวมเฉพาะข้อมูลของ URL นั้น

เมตริก

metric คือชุดข้อมูลประสบการณ์ของผู้ใช้สําหรับเมตริกประสิทธิภาพของเว็บรายการเดียว เช่น First Contentful Paint โดยมีผังฮิสโตแกรมสรุปการใช้งาน Chrome ในชีวิตจริงเป็นชุด bins

{
  "histogramTimeseries": [
    {
      object (Bin)
    }
  ],
  "percentilesTimeseries": {
    object (Percentiles)
  }
}

หรือ

"fractionTimeseries": {
  object (Fractions)
}
ช่อง
histogramTimeseries[]

object (Bin)

ฮิสโตแกรมอนุกรมเวลาของประสบการณ์ของผู้ใช้สําหรับเมตริก ฮิสโตแกรมอนุกรมเวลาจะมีกล่องอย่างน้อย 1 กล่องและความหนาแน่นของกล่องทั้งหมดจะรวมกันประมาณ 1

ระบบจะทำเครื่องหมายค่าที่ขาดหายไปสำหรับระยะเวลาการเก็บรวบรวมข้อมูลนั้นๆ เป็น "NaN"

percentilesTimeseries

object (Percentiles)

เปอร์เซ็นไทล์ที่มีประโยชน์ทั่วไปของเมตริก ประเภทค่าของเปอร์เซ็นต์ไทล์จะเหมือนกับประเภทค่าที่ระบุสำหรับกล่องฮิสโตแกรม

ระบบจะทำเครื่องหมายค่าที่ขาดหายไปสำหรับระยะเวลาการเก็บรวบรวมข้อมูลนั้นๆ เป็น null

fractionTimeseries

object (Fractions)

ออบเจ็กต์นี้มีอนุกรมเวลาของเศษส่วนที่มีป้ายกำกับ ซึ่งรวมกันประมาณ 1 ต่อรายการ

ระบบจะปัดเศษเศษทศนิยมเป็น 4 ตำแหน่งทศนิยม

ระบบจะแสดงรายการที่ขาดหายไปเป็น"NaN" ในส่วนเศษทั้งหมด

ถัง

bin คือส่วนของข้อมูลที่แยกจากกันซึ่งครอบคลุมตั้งแต่ต้นจนจบ หรือหากไม่ได้ระบุจุดสิ้นสุด bin จะหมายถึงตั้งแต่ต้นจนบวกอนันต์

ค่าเริ่มต้นและค่าสิ้นสุดของกลุ่มจะแสดงในประเภทค่าของเมตริกที่กลุ่มนั้นแสดง เช่น First Contentful Paint จะวัดเป็นมิลลิวินาทีและแสดงเป็น int ดังนั้นที่เก็บเมตริกของเมตริกดังกล่าวจะใช้ int32 สำหรับประเภทเริ่มต้นและสิ้นสุด อย่างไรก็ตาม การเปลี่ยนเลย์เอาต์แบบสะสมจะวัดเป็นทศนิยมแบบไม่มีหน่วยและแสดงเป็นทศนิยมที่เข้ารหัสเป็นสตริง ดังนั้นที่เก็บเมตริกของเมตริกนี้จะใช้สตริงสำหรับประเภทค่า

{
  "start": value,
  "end": value,
  "densities": [number, number, number...etc.]
}
ช่อง
start

(integer | string)

Start คือจุดเริ่มต้นของที่เก็บข้อมูล

end

(integer | string)

End คือจุดสิ้นสุดของที่เก็บข้อมูล หากไม่ได้ป้อนค่าของ end หมายความว่ากลุ่มไม่มีค่าสิ้นสุดและใช้ได้ตั้งแต่ค่าเริ่มต้นไปจนถึง +inf

densities

array[number]

อนุกรมเวลาของสัดส่วนผู้ใช้ที่พบค่าของกลุ่มนี้สําหรับเมตริกที่ระบุ

ระบบจะปัดเศษความหนาแน่นเป็นทศนิยม 4 ตำแหน่ง

เปอร์เซ็นต์ไทล์

Percentiles มีค่าสังเคราะห์ของเมตริกที่เปอร์เซ็นไทล์ทางสถิติที่ระบุ ซึ่งใช้ประมาณค่าของเมตริกตามประสบการณ์ของผู้ใช้เป็นเปอร์เซ็นต์จากจํานวนผู้ใช้ทั้งหมด

{
  "P75": value
}
ช่อง
p75s

array[(integer | string)]

อนุกรมเวลาของค่าที่การโหลดหน้าเว็บ 75% พบเมตริกที่ระบุที่ค่านี้หรือต่ำกว่า

เศษส่วน

Fractions มีอนุกรมเวลาของเศษส่วนที่มีป้ายกำกับซึ่งรวมกันประมาณ 1 ต่อรายการ ป้ายกำกับแต่ละรายการจะอธิบายการโหลดหน้าเว็บในลักษณะหนึ่งๆ ดังนั้นเมตริกที่แสดงด้วยวิธีนี้จึงอาจถือได้ว่าสร้างค่าที่ต่างกันแทนค่าตัวเลข และเศษส่วนจะแสดงความถี่ในการวัดค่าที่ต่างกัน

{
  "label_1": { "fractions": array[fraction]},
  "label_1": { "fractions": array[fraction]},
  ...
  "label_n": { "fractions": array[fraction]}
}

fraction แต่ละรายการคือตัวเลข 0.0 <= value <= 1.0 ซึ่งรวมกันได้ประมาณ 1.0 เช่นเดียวกับค่าความหนาแน่นในกล่องฮิสโตแกรม เมื่อเมตริกไม่พร้อมใช้งานสำหรับระยะเวลาการเก็บรวบรวมหนึ่งๆ รายการที่เกี่ยวข้องจะเป็น "NaN" ในอาร์เรย์เศษทั้งหมด

ช่อง
p75s

array[(integer | string)]

อนุกรมเวลาของค่าที่การโหลดหน้าเว็บ 75% พบเมตริกที่ระบุที่ค่านี้หรือต่ำกว่า

UrlNormalization

ออบเจ็กต์ที่แสดงถึงการดำเนินการตามมาตรฐานที่ดำเนินการเพื่อทำให้ URL เป็นมาตรฐานเพื่อให้มีโอกาสค้นหาสำเร็จมากขึ้น การเปลี่ยนแปลงเหล่านี้เป็นการเปลี่ยนแปลงอัตโนมัติพื้นฐานที่เกิดขึ้นเมื่อทราบว่าการค้นหา url_pattern ที่ระบุไว้จะดำเนินการไม่สำเร็จ ระบบจะไม่จัดการการดำเนินการที่ซับซ้อน เช่น การติดตามการเปลี่ยนเส้นทาง

{
  "originalUrl": string,
  "normalizedUrl": string
}
ช่อง
originalUrl

string

URL ที่ขอมาครั้งแรกก่อนการดำเนินการปรับให้เป็นมาตรฐาน

normalizedUrl

string

URL หลังจากการดำเนินการปรับให้เป็นมาตรฐาน URL นี้เป็น URL ประสบการณ์ของผู้ใช้ที่ถูกต้องซึ่งสามารถค้นหาได้อย่างสมเหตุสมผล

ขีดจำกัดอัตรา

CrUX History API มีขีดจํากัดเดียวกันกับ CrUX API สําหรับการค้นหา 150 ครั้งต่อนาทีต่อโปรเจ็กต์ Google Cloud สําหรับ API ใด API หนึ่ง ซึ่งให้บริการโดยไม่มีค่าใช้จ่าย คุณดูขีดจํากัดนี้และการใช้งานปัจจุบันได้ในคอนโซล Google Cloud โควต้าจำนวนมากนี้น่าจะเพียงพอสำหรับ Use Case ส่วนใหญ่ และคุณไม่สามารถชำระเงินเพื่อเพิ่มโควต้าได้