الطلبات الأساسية لتصدير بيانات الأحداث في "إحصاءات Google"

تنطبق طلبات البحث النموذجية في هذه الصفحة على بيانات تصدير الأحداث في BigQuery لخدمة "إحصاءات Google".

إجراء طلب بحث في مجموعة البيانات بدلاً من مجموعة البيانات النموذجية

ما لم يُذكر خلاف ذلك، تستخدم جميع طلبات البحث المُدرَجة هنا مجموعات بيانات نموذجية ويجب أن تعرض نتائج صالحة. لاستخدام بيانات تصدير الأحداث في BigQuery لموقعك على "إحصاءات Google"، ابحث عن التعليق ‎-- Replace table في كل طلب بحث واستبدِل الجدول النموذجي. لنسخ اسم الجدول من مجموعة البيانات:

  1. انتقِل إلى واجهة مستخدم BigQuery واختَر الـ مشروع الذي يحتوي على مجموعة البيانات.
  2. حدِّد موقع الجدول في مستكشف البيانات.
  3. انقر على النقاط العمودية الثلاث على يسار الجدول، ثمّ انقر على نسخ رقم التعريف.
  4. ألصِق اسم الجدول بدلاً من الجدول النموذجي في طلب البحث.
  5. استبدِل جزء التاريخ من الجدول بعلامة *.

على سبيل المثال، إذا نسخت رقم التعريف اسم جدول BigQuery‏ my-first-gcp-project:analytics_28239234.events_20240718، استبدِل:

  -- Replace table
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`

بالنص التالي:

  -- Replace table
  `my-first-gcp-project.analytics_28239234.events_*`

إجراء طلب بحث عن نطاق زمني معيّن

لإجراء طلب بحث عن نطاق زمني معيّن من مجموعة بيانات تصدير الأحداث في BigQuery، استخدِم العمود الزائف _TABLE_SUFFIX في عبارة WHERE في طلب البحث. لمزيد من المعلومات، اطّلِع على مقالة فلترة الجداول المحدّدة باستخدام _TABLE_SUFFIX.

على سبيل المثال، يعرض طلب البحث التالي عدد الأحداث الفريدة حسب التاريخ واسم الحدث لفترة معيّنة من الأيام والأحداث المحدّدة:

-- Example: Query a specific date range for selected events.
--
-- Counts unique events by date and by event name for a specifc period of days and
-- selected events(page_view, session_start, and purchase).

SELECT
  event_date,
  event_name,
  COUNT(*) AS event_count
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  event_name IN ('page_view', 'session_start', 'purchase')
  -- Replace date range.
  AND _TABLE_SUFFIX BETWEEN '20201201' AND '20201202'
GROUP BY 1, 2;

عدد المستخدِمين والمستخدِمين الجدد والمستخدِمين المكرّري الزيارة

  • للحصول على إجمالي عدد المستخدِمين النشطين ، احسب عدد قيم user_id المميّزة. ومع ذلك، إذا لم يرسِل عميل "إحصاءات Google" قيمة user_id مع كل نتيجة أو إذا لم تكن متأكّدًا، احسب عدد قيم user_pseudo_id المميّزة.
  • بالنسبة إلى المستخدِمين الجدد، احسب عدد المستخدِمين المميّزين الذين يكون event_name لديهم:
  • بالنسبة إلى المستخدِمين المكرّري الزيارة، احسب عدد المستخدِمين الذين سجّلوا نشاطًا خلال الفترة، ولكن لم يبدأوا جلستهم الأولى أو لم يفتحوا التطبيق للمرّة الأولى خلال الفترة (المستخدِمون النشطون ناقص المستخدِمون الجدد).
-- Example: Get 'Total User' (Active User), 'New User', and 'Returning User' counts.

WITH
  UserInfo AS (
    SELECT
      user_pseudo_id,
      MAX(IF(event_name IN ('first_visit', 'first_open'), 1, 0)) AS is_new_user
    -- Replace table name.
    FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
    -- Replace date range.
    WHERE _TABLE_SUFFIX BETWEEN '20201101' AND '20201130'
    GROUP BY 1
  )
SELECT
  COUNT(*) AS active_users,
  SUM(is_new_user) AS new_users,
  COUNT(*) - SUM(is_new_user) AS returning_users
FROM UserInfo;

متوسط عدد العمليات لكل مشترٍ

يعرض طلب البحث التالي متوسط عدد العمليات لكل مشترٍ.

-- Example: Average number of transactions per purchaser.

SELECT
  COUNT(*) / COUNT(DISTINCT user_pseudo_id) AS avg_transaction_per_purchaser
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  event_name IN ('in_app_purchase', 'purchase')
  -- Replace date range.
  AND _TABLE_SUFFIX BETWEEN '20201201' AND '20201231';

قيم اسم حدث معيّن

يعرض طلب البحث التالي event_timestamp لجميع purchase الأحداث وقيم مَعلمات الأحداث المرتبطة بها:

-- Example: Query values for a specific event name.
--
-- Queries the individual timestamps and values for all 'purchase' events.

SELECT
  event_timestamp,
  (
    SELECT COALESCE(value.int_value, value.float_value, value.double_value)
    FROM UNNEST(event_params)
    WHERE key = 'value'
  ) AS event_value
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  event_name = 'purchase'
  -- Replace date range.
  AND _TABLE_SUFFIX BETWEEN '20201201' AND '20201202';

يمكن تعديل طلب البحث السابق لعرض إجمالي قيم مَعلمات الأحداث بدلاً من قائمة:

-- Example: Query total value for a specific event name.
--
-- Queries the total event value for all 'purchase' events.

SELECT
  SUM(
    (
      SELECT COALESCE(value.int_value, value.float_value, value.double_value)
      FROM UNNEST(event_params)
      WHERE key = 'value'
    ))
    AS event_value
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  event_name = 'purchase'
  -- Replace date range.
  AND _TABLE_SUFFIX BETWEEN '20201201' AND '20201202';

أهم 10 سلع تمّت إضافتها إلى سلّة التسوّق

يعرض طلب البحث التالي أهم 10 سلع تمّت إضافتها إلى سلّة التسوّق حسب أكبر عدد من المستخدِمين.

-- Example: Top 10 items added to cart by most users.

SELECT
  item_id,
  item_name,
  COUNT(DISTINCT user_pseudo_id) AS user_count
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`, UNNEST(items)
WHERE
  -- Replace date range.
  _TABLE_SUFFIX BETWEEN '20201101' AND '20210131'
  AND event_name IN ('add_to_cart')
GROUP BY
  1, 2
ORDER BY
  user_count DESC
LIMIT 10;

متوسط عدد مشاهدات الصفحة حسب نوع المشتري (المشترون في مقابل غير المشترين)

يعرض طلب البحث التالي متوسط عدد مشاهدات الصفحة حسب نوع المشتري (المشترون في مقابل غير المشترين) للمستخدِمين:

-- Example: Average number of pageviews by purchaser type.

WITH
  UserInfo AS (
    SELECT
      user_pseudo_id,
      COUNTIF(event_name = 'page_view') AS page_view_count,
      COUNTIF(event_name IN ('in_app_purchase', 'purchase')) AS purchase_event_count
    -- Replace table name.
    FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
    -- Replace date range.
    WHERE _TABLE_SUFFIX BETWEEN '20201201' AND '20201202'
    GROUP BY 1
  )
SELECT
  (purchase_event_count > 0) AS purchaser,
  COUNT(*) AS user_count,
  SUM(page_view_count) AS total_page_views,
  SUM(page_view_count) / COUNT(*) AS avg_page_views,
FROM UserInfo
GROUP BY 1;

تسلسل مشاهدات الصفحة

يعرض طلب البحث هذا تسلسل مشاهدات الصفحة التي أجراها كل مستخدِم. يرتّب طلب البحث النتائج باستخدام الحقول التالية حتى يتم إدراج الأحداث بالترتيب الذي وقعت به للمستخدِم، حتى إذا تم إرسال الأحداث في الدفعة نفسها:

  • user_pseudo_id
  • user_id
  • batch_page_id
  • batch_ordering_id
  • batch_event_index

على الرغم من أنّ النموذج يحدّ النتائج لتشمل أحداث page_view فقط، يمكنك استخدام عبارة ORDER BY نفسها لترتيب جميع الأحداث بشكلٍ صحيح عن طريق إزالة شرط عبارة WHERE لـ event_name.

يوضّح طلب البحث أيضًا كيفية استخدام الدوال المعرَّفة من قِبل المستخدِم GetParamString وGetParamInt لتقليل التكرار وتسهيل فهم طلبات البحث وصيانتها.

-- Example: Sequence of pageviews.

/** Temporary function to retrieve the string_value of an event parameter by event name. */
CREATE TEMP FUNCTION GetParamString(event_params ANY TYPE, param_name STRING)
AS ((SELECT ANY_VALUE(value.string_value) FROM UNNEST(event_params) WHERE key = param_name));

/** Temporary function to retrieve the int_value of an event parameter by event name. */
CREATE TEMP FUNCTION GetParamInt(event_params ANY TYPE, param_name STRING)
AS ((SELECT ANY_VALUE(value.int_value) FROM UNNEST(event_params) WHERE key = param_name));

SELECT
  user_pseudo_id,
  user_id,
  batch_page_id,
  batch_ordering_id,
  batch_event_index,
  event_name,
  GetParamInt(event_params, 'ga_session_id') as ga_session_id,
  GetParamString(event_params, 'page_location') as page_location,
  GetParamString(event_params, 'page_title') as page_title,
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  event_name = 'page_view'
  -- Replace date range.
  AND _TABLE_SUFFIX BETWEEN '20240718' AND '20240731'
ORDER BY
  user_pseudo_id,
  user_id,
  batch_page_id,
  batch_ordering_id,
  batch_event_index;

قائمة مَعلمات الأحداث

يعرض طلب البحث التالي جميع مَعلمات الأحداث التي تظهر في مجموعة البيانات:

-- Example: List all available event parameters and count their occurrences.

SELECT
  EP.key AS event_param_key,
  COUNT(*) AS occurrences
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`, UNNEST(event_params) AS EP
WHERE
  -- Replace date range.
  _TABLE_SUFFIX BETWEEN '20201201' AND '20201202'
GROUP BY
  event_param_key
ORDER BY
  event_param_key ASC;

الربط بـ "إعلانات Google"

لاسترداد بيانات إضافية من "إعلانات Google" لأحداث "إحصاءات Google"، عليك إعداد خدمة نقل بيانات BigQuery لـ "إعلانات Google"، ثمّ ربط collected_traffic_source.gclid من بيانات أحداث "إحصاءات Google" بالحقل gclid ads_ClickStats_customer_id من عملية النقل في "إعلانات Google".

تجدر الإشارة إلى أنّ عملية تصدير بيانات الأحداث في "إحصاءات Google" تُنشئ جدولاً لكلّ يوم، بينما تعمل عملية النقل في "إعلانات Google" على تعبئة جدول واحد ads_ClickStats_customer_id لكلّ عميل.