Google Analytics के इवेंट डेटा को एक्सपोर्ट करने की बुनियादी क्वेरी

इस पेज पर दी गई सैंपल क्वेरी, Google Analytics के लिए BigQuery इवेंट एक्सपोर्ट डेटा पर लागू होती हैं.

सैंपल डेटासेट के बजाय अपने डेटासेट से क्वेरी करना

जब तक कोई अन्य जानकारी न दी गई हो, तब तक यहां दी गई सभी क्वेरी, सैंपल डेटासेट का इस्तेमाल करती हैं. इनसे मान्य नतीजे मिलने चाहिए. अपनी Google Analytics प्रॉपर्टी के BigQuery इवेंट एक्सपोर्ट डेटा का इस्तेमाल करने के लिए, हर क्वेरी में -- 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 इवेंट एक्सपोर्ट डेटासेट से, तारीख की किसी खास सीमा के लिए क्वेरी करने के लिए, अपनी क्वेरी के WHERE क्लॉज़ में _TABLE_SUFFIX छद्म कॉलम का इस्तेमाल करें. ज़्यादा जानकारी के लिए, _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' (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';

किसी इवेंट के नाम के लिए वैल्यू

यहां दी गई क्वेरी में, सभी purchase इवेंट और उनसे जुड़ी इवेंट पैरामीटर वैल्यू के लिए event_timestamp दिखाया गया है:

-- 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 क्लॉज़ का इस्तेमाल किया जा सकता है. इसके लिए, event_name के लिए WHERE क्लॉज़ की शर्त को हटाना होगा.

क्वेरी में यह भी दिखाया गया है कि डुप्लीकेट डेटा को कम करने के लिए, उपयोगकर्ता के तय किए गए फ़ंक्शन 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 इवेंट के लिए Google Ads का अतिरिक्त डेटा पाने के लिए, Google Ads के लिए BigQuery डेटा ट्रांसफ़र सेवा सेट अप करें. इसके बाद, Google Ads ट्रांसफ़र के ads_ClickStats_customer_id फ़ील्ड में, Google Analytics इवेंट डेटा से collected_traffic_source.gclid को जोड़ें.gclid

ध्यान रखें कि Google Analytics इवेंट डेटा एक्सपोर्ट, हर दिन के लिए एक टेबल बनाता है. वहीं, Google Ads ट्रांसफ़र, हर ग्राहक के लिए एक ads_ClickStats_customer_id टेबल में डेटा को भरता है.