تتوفّر البيانات الأولية من تقرير تجربة المستخدم على 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
بيانات تجربة المستخدم الناشئة من كندا فقط.
ضمن كل مجموعة بيانات، تتوفّر جداول لكل شهر منذ تشرين الأول (أكتوبر) 2017. يتم نشر جداول جديدة للشهر التقويمي السابق بانتظام.
تحتوي بنية جداول البيانات (المعروفة أيضًا باسم المخطط) على:
- المصدر، مثل
origin = 'https://www.example.com'
، الذي يمثّل التوزيع المجمَّع لتجربة المستخدم لكل الصفحات على هذا الموقع الإلكتروني - سرعة الاتصال في وقت تحميل الصفحة، على سبيل المثال،
effective_connection_type.name = '4G'
- نوع الجهاز، على سبيل المثال
form_factor.name = 'desktop'
- مقاييس تجربة المستخدم نفسها
- first_paint (FP)
- first_contentful_paint (FCP)
- الأكبر_contentful_paint (LCP)
- dom_content_loading (DCL)
- onload (OL)
- تخطيط_instability.global_layout_shift (متغيّرات التصميم التراكمية (CLS))
- Interactive_to_next_paint (INP)
ويتم تنظيم البيانات لكل مقياس في صورة مصفوفة من العناصر. في تدوين 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 على جميع الأجهزة وأنواع الاتصال. يمكننا تعديل الاستعلام بشكل طفيف وإضافة كثافات جميع السلال الموجودة في العمود "سريع" نطاق سرعة عرض المحتوى على الصفحة بين 0 و1,000 ملي ثانية:
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% من تجارب المستخدمين التي تعتمد على سرعة عرض المحتوى على الصفحة (FCP) على web.dev تُعتبر "سريعة". وفقًا لتعريف نطاق سرعة عرض المحتوى على الصفحة (FCP).
تتبع الأداء
الآن وبعد استخراج بيانات الأداء حول أحد المصادر، يمكننا مقارنتها بالبيانات السابقة المتوفّرة في الجداول القديمة. للقيام بذلك، يمكننا إعادة كتابة عنوان الجدول إلى شهر سابق، أو يمكننا استخدام بناء جملة حرف البدل للاستعلام عن جميع الأشهر:
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
نلاحظ هنا أنّ النسبة المئوية لتجارب "سرعة عرض المحتوى على الصفحة" (FCP) تختلف بضع نقاط مئوية كل شهر.
س س س س ش ش | 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 Archive لإجراء بعض عمليات التنقيب في البيانات المتقدّمة.
هل هناك أي قيود على استخدام BigQuery؟
نعم، يتمثل العامل الأهم في أنّه يمكن للمستخدمين تلقائيًا طلب بيانات 1 تيرابايت فقط كل شهر. وبعد ذلك، سيتم تطبيق السعر العادي الذي يبلغ 5 دولار أمريكي لكل تيرابايت.
أين يمكنني معرفة المزيد من المعلومات عن BigQuery؟
اطّلِع على مستندات BigQuery للحصول على مزيد من المعلومات.