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

نمونه کوئری‌های این صفحه برای داده‌های خروجی رویداد BigQuery برای گوگل آنالیتیکس اعمال می‌شوند.

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

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

  1. به رابط کاربری BigQuery بروید و پروژه‌ای را که شامل مجموعه داده‌های شماست انتخاب کنید.
  2. جدول را در اکسپلورر پیدا کنید.
  3. روی سه نقطه عمودی در سمت راست جدول کلیک کنید، سپس روی «کپی شناسه» کلیک کنید.
  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 متمایز را بشمارید. با این حال، اگر کلاینت گوگل آنالیتیکس شما با هر بازدید 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 کالای برتری که توسط بیشترین تعداد کاربران به سبد خرید اضافه شده‌اند را نشان می‌دهد.

-- 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 محدود می‌کند، می‌توانید با حذف شرط عبارت 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;

پیوستن به گوگل ادز

برای بازیابی داده‌های اضافی گوگل ادز برای رویدادهای گوگل آنالیتیکس خود، سرویس انتقال داده BigQuery را برای گوگل ادز راه‌اندازی کنید، سپس collected_traffic_source.gclid را از داده‌های رویداد گوگل آنالیتیکس به فیلد gclid customer_id به ads_ClickStats_ از انتقال گوگل ادز متصل کنید.

به خاطر داشته باشید که خروجی داده‌های رویداد گوگل آنالیتیکس برای هر روز یک جدول ایجاد می‌کند، در حالی که انتقال گوگل customer_id برای هر مشتری یک جدول ads_ClickStats_ ایجاد می‌کند.