پرس و جوهای اساسی برای صادرات داده رویداد Google Analytics

پرس و جوهای نمونه در این صفحه برای داده های صادرات رویداد BigQuery برای Google Analytics اعمال می شود.

به جای مجموعه داده نمونه، مجموعه داده خود را پرس و جو کنید

مگر اینکه غیر از این ذکر شده باشد، تمام جستارهای فهرست شده در اینجا از مجموعه داده های نمونه استفاده می کنند و باید نتایج معتبری تولید کنند. برای استفاده از داده‌های صادرات رویداد BigQuery ویژگی Google Analytics خود، به دنبال نظر بگردید -- Replace table و جدول نمونه را جایگزین کنید. برای کپی کردن نام جدول از مجموعه داده خود:

  1. به رابط کاربری BigQuery بروید و پروژه ای را که حاوی مجموعه داده شما است انتخاب کنید.
  2. جدول را در Explorer پیدا کنید.
  3. روی سه نقطه عمودی سمت راست جدول کلیک کنید، سپس روی Copy ID کلیک کنید.
  4. نام جدول را به جای جدول نمونه در پرس و جو قرار دهید.
  5. قسمت تاریخ جدول را با * جایگزین کنید.

برای مثال، اگر Copy ID نام جدول 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 Analytics شما با هر ضربه یک user_id ارسال نکرد یا اگر مطمئن نیستید، تعداد user_pseudo_id مجزا را بشمارید.
  • برای کاربران جدید، می‌توانید از همان روش شمارش که در بالا توضیح داده شد استفاده کنید، اما برای مقادیر event_name زیر:
-- Example: Get 'Total User' count and 'New User' count.

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 user_count,
  SUM(is_new_user) AS new_user_count
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_web_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 محدود می‌کند، می‌توانید با حذف شرط WHERE برای event_name ، از همان عبارت ORDER BY برای ترتیب صحیح همه رویدادها استفاده کنید.

این پرس و جو همچنین نحوه استفاده از توابع تعریف شده توسط کاربر 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 Ads برای رویدادهای Google Analytics خود، سرویس انتقال داده BigQuery را برای Google Ads راه‌اندازی کنید، سپس collected_traffic_source.gclid را از داده‌های رویداد Google Analytics به قسمت gclid ads_ClickStats_ customer_id از انتقال Google Ads بپیوندید.

به خاطر داشته باشید که صادرات داده رویداد Google Analytics یک جدول برای هر روز ایجاد می‌کند، در حالی که انتقال Google Ads یک جدول ads_ClickStats_ customer_id را برای هر مشتری پر می‌کند.