كيفية استخدام BigQuery مع GA4 للتحليل المتقدم

Emily Redmondمحللة بيانات في Emilytics18 أبريل 2026

كيفية استخدام BigQuery مع GA4 للتحليل المتقدم

بقلم Emily Redmond، محللة بيانات في Emilytics · أبريل 2026

الخلاصة السريعة: صدّر GA4 إلى BigQuery للوصول إلى البيانات الخام. اكتب استعلامات SQL لتحليل الأنماط التي واجهة GA4 لا يمكنها إظهارها. احتفاظ بيانات غير محدود وتفاصيل على مستوى الحدث الكامل.


GA4 جيد للوحات قيادة والتقارير القياسية. لكن للتحليل الحقيقي—تحليل الأفواج والنمذجة الإحصائية والأنماط متعددة الأشهر—تحتاج إلى BigQuery.


ما هي BigQuery؟

BigQuery هي مستودع بيانات Google. تخزن كميات كبيرة من البيانات وتستعلم عنها باستخدام SQL.

GA4 يصدّر بيانات الأحداث الخام الخاصة بك إلى BigQuery يومياً. ثم يمكنك:

  • الاستعلام عن أي بُعد أو مقياس أو مزيج
  • اكتب SQL معقد للتحليلات التي لا يمكن لـ GA4 فعلها
  • تصدير إلى أدوات BI (Looker و Tableau و Data Studio)
  • إطعام البيانات في مستودعات البيانات أو بحيرات البيانات
  • دمج GA4 مع مصادر بيانات أخرى (CRM و الفواتير وغيره)

المتطلبات الأساسية

  1. مشروع Google Cloud (المستوى المجاني كافٍ للمجموعات الصغيرة)
  2. خاصية GA4
  3. قليل من معرفة SQL (أو الرغبة في التعلم)

إعداد تصدير BigQuery

الخطوة 1: إنشاء مشروع Google Cloud (إذا لم تكن لديك واحدة)

  1. انتقل إلى console.cloud.google.com
  2. أنشئ مشروع جديد
  3. لاحظ معرّف المشروع

الخطوة 2: ربط GA4 بـ BigQuery

  1. انتقل إلى GA4 → المسؤول
  2. تحت "جمع البيانات والتعديل"، انقر روابط BigQuery
  3. انقر ربط مشروع BigQuery
  4. حدد مشروعك
  5. اختر البيانات للتصدير:
    • "أحداث Google Analytics 4" (الأحداث الخام، موصى به)
    • "Intraday" (الوقت الفعلي، إذا كنت بحاجة)
  6. ربط

GA4 يبدأ التصدير. يستغرق 24-48 ساعة للملء الخلفي، ثم يصدّر يومياً.

الخطوة 3: الوصول إلى BigQuery

  1. انتقل إلى console.cloud.google.com
  2. حدد مشروعك
  3. انتقل إلى BigQuery
  4. في الشريط الجانبي الأيسر، يجب أن ترى مشروعك مع مجموعات بيانات GA4

فهم هيكل بيانات GA4 BigQuery

GA4 ينشئ مجموعتي بيانات:

  1. analytics_[PROPERTY_ID]: إدراج دفق (في الوقت الفعلي)
  2. analytics_[PROPERTY_ID]_intraday: بيانات intraday (الملخصة يومياً)

ضمن كل منها، يتم تسمية الجداول حسب التاريخ: events_20260101 و events_20260102 وغيره.

كل صف هو حدث واحد، مع أعمدة:

  • event_timestamp: متى أطلق الحدث
  • event_name: اسم الحدث (pageview و purchase وغيره)
  • user_id: إذا كنت تتبع User-ID
  • user_pseudo_id: معرّف مستخدم مجهول
  • user_properties: خصائص مستخدم مخصصة
  • event_params: معاملات الحدث
  • وغيرها...

استعلامك الأول في BigQuery

استعلام بسيط: المشاهدات حسب اليوم

SELECT
  DATE(TIMESTAMP_MICROS(event_timestamp)) as date,
  COUNT(*) as pageviews
FROM `project.analytics_123456.events_*`
WHERE event_name = 'page_view'
GROUP BY date
ORDER BY date DESC

استبدل project و 123456 بـ معرّف المشروع الفعلي ومعرّف خاصية GA4.

هذا يسحب:

  • التاريخ
  • عدد المشاهدات لكل يوم
  • لآخر 30 يوماً (حرف البدل events_* يطابق جميع جداول الأحداث)

استعلام: الإيرادات حسب البلد

SELECT
  (SELECT value FROM UNNEST(user_properties) WHERE key = 'country') as country,
  ROUND(SUM(CAST((SELECT value FROM UNNEST(event_params) WHERE key = 'value').string_value AS FLOAT64)), 2) as revenue
FROM `project.analytics_123456.events_*`
WHERE event_name = 'purchase'
GROUP BY country
ORDER BY revenue DESC

هذا أكثر تعقيداً لأن بيانات GA4 متداخلة. الخصائص عبارة عن مصفوفات، لذا يجب إلغاء مستويات التداخل.


تحليلات GA4 BigQuery الشائعة

أفواج المستخدمين

"المستخدمون الذين اشتركوا في يناير—كم عدد من يزالون نشطين بعد 30 يوماً؟"

WITH signup_cohort AS (
  SELECT
    DATE(TIMESTAMP_MICROS(event_timestamp)) as signup_date,
    user_id,
    MIN(DATE(TIMESTAMP_MICROS(event_timestamp))) as first_day
  FROM `project.analytics_123456.events_*`
  WHERE event_name = 'sign_up'
  GROUP BY signup_date, user_id
)
SELECT
  signup_date,
  COUNT(DISTINCT user_id) as signups_that_day,
  COUNT(DISTINCT CASE WHEN TIMESTAMP_ADD(TIMESTAMP_MILLIS(first_day), INTERVAL 30 DAY) <= CURRENT_TIMESTAMP THEN user_id END) as still_active_30_days
FROM signup_cohort
WHERE signup_date = '2026-01-01'
GROUP BY signup_date

تحليل القمع

"من المستخدمين الذين عرضوا المنتج، كم أضافوا إلى السلة؟ من هؤلاء، كم اشتروا؟"

WITH product_viewers AS (
  SELECT DISTINCT user_id
  FROM `project.analytics_123456.events_*`
  WHERE event_name = 'view_item'
),
cart_adders AS (
  SELECT DISTINCT user_id
  FROM `project.analytics_123456.events_*`
  WHERE event_name = 'add_to_cart'
),
purchasers AS (
  SELECT DISTINCT user_id
  FROM `project.analytics_123456.events_*`
  WHERE event_name = 'purchase'
)
SELECT
  COUNT(DISTINCT pv.user_id) as viewed_product,
  COUNT(DISTINCT ca.user_id) as added_to_cart,
  COUNT(DISTINCT p.user_id) as purchased,
  ROUND(100 * COUNT(DISTINCT ca.user_id) / COUNT(DISTINCT pv.user_id), 2) as product_to_cart_rate,
  ROUND(100 * COUNT(DISTINCT p.user_id) / COUNT(DISTINCT ca.user_id), 2) as cart_to_purchase_rate
FROM product_viewers pv
LEFT JOIN cart_adders ca ON pv.user_id = ca.user_id
LEFT JOIN purchasers p ON ca.user_id = p.user_id

قيمة عمر العميل (CLV)

"ما إجمالي الإيرادات لكل مستخدم؟"

SELECT
  user_id,
  COUNT(DISTINCT CASE WHEN event_name = 'purchase' THEN event_timestamp END) as purchase_count,
  ROUND(SUM(CAST((SELECT value FROM UNNEST(event_params) WHERE key = 'value').string_value AS FLOAT64)), 2) as total_revenue,
  ROUND(AVG(CAST((SELECT value FROM UNNEST(event_params) WHERE key = 'value').string_value AS FLOAT64)), 2) as avg_order_value
FROM `project.analytics_123456.events_*`
WHERE event_name = 'purchase'
GROUP BY user_id
ORDER BY total_revenue DESC

نصائح لكتابة استعلامات GA4 BigQuery

  1. استخدم حرف البدل events_*: يطابق جميع جداول الأحداث. بدونها، تستعلم عن يوم واحد فقط.

  2. TIMESTAMP_MICROS: GA4 يخزن الطوابع الزمنية بالميكروثانية. تحويل باستخدام TIMESTAMP_MICROS(event_timestamp).

  3. إلغاء التداخل: الخصائص والمعاملات عبارة عن مصفوفات متداخلة. استخدم UNNEST() و WHERE key = 'property_name' لاستخراج.

  4. حد قبل الاستعلام: ابدأ بـ LIMIT 100 لاختبار الاستعلامات قبل التشغيل على ملايين الصفوف.

  5. تحقق من التكاليف: الاستعلامات الكبيرة تمسح الكثير من البيانات (~6.25 دولار/TB). استخدم تعليقات -- لتقدير التكاليف.


ربط BigQuery بأدوات BI

بمجرد أن يكون لديك استعلامات في BigQuery، تصورها:

Google Data Studio

  1. أنشئ تقرير في datastudio.google.com
  2. حدد "BigQuery" كمصدر البيانات
  3. اختر مشروعك واستعلامك
  4. ڈيزاين التصورات
  5. شارك مع الفريق

Looker Studio (متميز)

مثل Data Studio لكن أكثر تقدماً.

Tableau

  1. اتصل بـ BigQuery (Tableau لديها موصل أصلي)
  2. اكتب الاستعلامات أو حدد الجداول
  3. بناء لوحات القيادة

التكاليف

  • المستوى المجاني: 1TB من بيانات الاستعلام لكل شهر مجاني
  • الدفع حسب الاستخدام: 6.25 دولار لكل TB ممسوح بعد ذلك

معظم الأعمال الصغيرة تبقى تحت 1TB/شهر ولا تدفع أي شيء.


الأسئلة الشائعة

س: كم من الوقت حتى تظهر البيانات في BigQuery بعد إعداد التصدير؟ ج: 24-48 ساعة للملء الخلفي. بعد ذلك، يتم تصدير البيانات يومياً (عادة صباح وقت المحيط الهادئ).

س: هل يمكنني الاستعلام عن البيانات في الوقت الفعلي؟ ج: نعم، استخدم مجموعة بيانات intraday. لكنها محدودة بـ آخر بضع ساعات.

س: هل أحتاج إلى معرفة SQL لاستخدام BigQuery مع GA4؟ ج: للاستعلامات الأساسية، لا—استخدم القوالب المدمجة مسبقاً أو Data Studio. للتحليل المخصص، نعم.

س: هل يمكنني دمج بيانات GA4 مع مصادر بيانات أخرى في BigQuery؟ ج: نعم. يمكنك الحصول على أحداث GA4 وجدول CRM منفصل للعميل، ثم ربطهم.

س: كم مدة الاحتفاظ بالبيانات في BigQuery؟ ج: غير محدود (تعيّن سياسات الاحتفاظ). لهذا السبب BigQuery أفضل من GA4 للتحليل طويل المدى.


الخلاصة

BigQuery حيث تنقض بيانات GA4. إذا كنت بحاجة إلى:

  • الاحتفاظ غير محدود بالبيانات
  • تحليل معقد متعدد الأشهر
  • التحكم في ما تقيسه
  • التكامل مع بيانات أخرى

أعدّ تصدير BigQuery. إنه مجاني للإعداد وتكاد تكون تكلفته مجانية للتشغيل.

ابدأ ببساطة (استعلام واحد)، تعلّم SQL تدريجياً، وبناء من هناك.


Emily Redmond محللة بيانات في Emilytics — وكيل التحليلات الذكي الذي يراقب GA4 و Search Console وبيانات Bing الخاصة بك طوال الوقت حتى لا تفوت ما يهم. 8 سنوات من الخبرة في مساعدة المؤسسين وفرق النمو على تحويل ضوضاء البيانات إلى قرارات واضحة. قل مرحبا →