تتوفّر البيانات الأوّلية لتقرير تجربة المستخدم في Chrome (CrUX) في BigQuery، وهي قاعدة بيانات على Google Cloud. يتطلب استخدام BigQuery توفُّر مشروع Google Cloud Platform ومعرفة أساسية بلغة SQL.
في هذا الدليل، تعرّف على كيفية استخدام BigQuery لكتابة استعلامات مقابل مجموعة بيانات CrUX لاستخراج نتائج مفيدة حول حالة تجارب المستخدم على الويب:
- فهم كيفية تنظيم البيانات
- كتابة استعلام أساسي لتقييم أداء مصدر معيّن
- كتابة طلب بحث متقدم لتتبع الأداء بمرور الوقت
تنظيم البيانات
ابدأ بالنظر إلى استعلام أساسي:
SELECT COUNT(DISTINCT origin) FROM `chrome-ux-report.all.202206`
لتنفيذ الطلب، أدخِله في محرِّر طلبات البحث واضغط على الزرّ "Run query" (تشغيل الاستعلام):
هناك جزأين لهذا الاستعلام:
تعني
SELECT COUNT(DISTINCT origin)
الاستعلام عن عدد الأصول في الجدول. بشكل تقريبي، يكون عنوانا URL جزءًا من نفس المصدر إذا كان لديهما نفس المخطط والمضيف والمنفذ.تحدّد
FROM chrome-ux-report.all.202206
عنوان جدول المصدر الذي يتكون من ثلاثة أجزاء:- اسم المشروع على Google Cloud
chrome-ux-report
الذي يتم ضمنه تنظيم جميع بيانات CrUX - مجموعة البيانات
all
، التي تمثل البيانات في جميع البلدان - الجدول
202206
، السنة والشهر للبيانات بتنسيق YYYYMM
- اسم المشروع على Google Cloud
هناك أيضًا مجموعات بيانات لكل بلد. على سبيل المثال، لا تمثّل السمة chrome-ux-report.country_ca.202206
سوى البيانات المتعلّقة بتجربة المستخدم الصادرة من كندا.
ضمن كل مجموعة بيانات توجد جداول لكل شهر منذ 201710. يتم نشر جداول جديدة للشهر التقويمي السابق بانتظام.
تحتوي بنية جداول البيانات (المعروفة أيضًا باسم المخطّط) على ما يلي:
- المصدر، مثل
origin = 'https://www.example.com'
، الذي يمثّل التوزيع المجمّع لتجربة المستخدم لجميع الصفحات على ذلك الموقع الإلكتروني. - سرعة الاتصال أثناء تحميل الصفحة، على سبيل المثال،
effective_connection_type.name = '4G'
- نوع الجهاز، على سبيل المثال
form_factor.name = 'desktop'
- مقاييس تجربة المستخدم نفسها
- first_paint (FP)
- تنسيق first_contentful_paint (FCP)
- dom_content_uploaded (DCL)
- onload (OL)
- تجريبية.first_input_delay (FID)
يتم تنظيم البيانات الخاصة بكل مقياس كمصفوفة من العناصر. في تدوين JSON، سيبدو first_contentful_paint.histogram.bin
مشابهًا لما يلي:
[
{"start": 0, "end": 100, "density": 0.1234},
{"start": 100, "end": 200, "density": 0.0123},
...
]
تحتوي كل سلة على وقت البدء ووقت الانتهاء بالمللي ثانية والكثافة التي تمثل النسبة المئوية لتجارب المستخدمين خلال ذلك النطاق الزمني. بمعنى آخر، كانت نسبة% 12.34 من تجارب سرعة عرض المحتوى في الثانية (FCP) لهذا المصدر الافتراضي وسرعة الاتصال ونوع الجهاز أقل من 100 ملي ثانية. مجموع جميع كثافات السلة هو 100%.
تصفَّح بنية الجداول في BigQuery.
تقييم الأداء
يمكننا استخدام معرفتنا بمخطط الجدول لكتابة استعلام يستخرج بيانات الأداء هذه.
SELECT
fcp
FROM
`chrome-ux-report.all.202206`,
UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
origin = 'https://web.dev' AND
effective_connection_type.name = '4G' AND
form_factor.name = 'phone' AND
fcp.start = 0
النتيجة هي 0.01115
، ما يعني أنّ% 1.115 من تجارب المستخدمين على هذا المصدر تتراوح مدتها بين 0 و100 ملي ثانية على شبكة الجيل الرابع وعلى الهاتف. إذا أردنا تعميم طلبنا على أي اتصال وأي نوع جهاز، يمكننا حذف هذه الطلبات من البند WHERE
واستخدام دالة التجميع SUM
لجمع كل كثافات السلال ذات الصلة:
SELECT
SUM(fcp.density)
FROM
`chrome-ux-report.all.202206`,
UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
origin = 'https://web.dev' AND
fcp.start = 0
تكون النتيجة 0.05355
، أو بنسبة 5.355% على جميع الأجهزة وأنواع الاتصال. يمكننا تعديل طلب البحث قليلاً وإضافة كثافات لجميع السلال التي تكون في نطاق "سرعة عرض أكبر محتوى مرئي" (FCP) يتراوح بين 0 و1000 ملي ثانية:
SELECT
SUM(fcp.density) AS fast_fcp
FROM
`chrome-ux-report.all.202206`,
UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
origin = 'https://web.dev' AND
fcp.start < 1000
وهذا يعطينا 0.6977
. بعبارة أخرى، تُعتبر% 69.77 من تجارب مستخدمي سرعة عرض أكبر محتوى مرئي على web.dev "سريعة" وفقًا لتعريف نطاق سرعة عرض المحتوى على الإنترنت.
تتبّع الأداء
بعد أن استخلصنا بيانات الأداء المتعلّقة بأحد المصادر، يمكننا مقارنتها بالبيانات السابقة المتوفّرة في الجداول الأقدم. للقيام بذلك، يمكننا إعادة كتابة عنوان الجدول إلى شهر سابق، أو يمكننا استخدام بناء جملة حرف البدل للاستعلام عن جميع الأشهر:
SELECT
_TABLE_SUFFIX AS yyyymm,
SUM(fcp.density) AS fast_fcp
FROM
`chrome-ux-report.all.*`,
UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
origin = 'https://web.dev' AND
fcp.start < 1000
GROUP BY
yyyymm
ORDER BY
yyyymm DESC
نلاحظ هنا أنّ النسبة المئوية للتجارب السريعة في "سرعة عرض المحتوى على الصفحة" تختلف بمقدار بضع نقاط مئوية كل شهر.
س س س س | fast_fcp |
---|---|
202206 | 69.77% |
202205 | 70.71% |
202204 | 69.04% |
202203 | 69.82% |
202202 | 67.75% |
202201 | 58.96% |
202112 | 41.69% |
... | ... |
باستخدام هذه الأساليب، يمكنك البحث عن أداء مصدر معيّن وحساب النسبة المئوية للتجارب السريعة وتتبُّعها بمرور الوقت. كخطوة تالية، حاوِل إجراء طلبات بحث عن مصدرَين أو أكثر ومقارنة مستوى أدائهما.
الأسئلة الشائعة
فيما يلي بعض الأسئلة الشائعة حول مجموعة بيانات CrUX BigQuery:
متى يمكنني استخدام BigQuery بدلاً من الأدوات الأخرى؟
تكون أداة BigQuery مطلوبة فقط عندما لا يمكنك الحصول على المعلومات نفسها من أدوات أخرى، مثل "لوحة بيانات CrUX" و"إحصاءات PageSpeed". على سبيل المثال، يتيح لك BigQuery تقسيم البيانات بطرق مفيدة ودمجها مع مجموعات البيانات العامة الأخرى مثل أرشيف HTTP لإجراء بعض التنقيب عن البيانات المتقدّمة.
هل هناك أي قيود على استخدام BigQuery؟
نعم، والقيد الأهم هو أنّه لا يمكن للمستخدمين تلقائيًا طلب سوى 1 تيرابايت من البيانات شهريًا. وعلاوة على ذلك، ينطبق السعر العادي الذي يبلغ 5 دولار أمريكي (أو ما يعادله بالعملة المحلية) لكل تيرابايت.
أين يمكنني معرفة المزيد من المعلومات عن BigQuery؟
اطّلِع على المستندات حول BigQuery للحصول على مزيد من المعلومات.