Google Analytics ইভেন্ট ডেটা এক্সপোর্টের জন্য প্রাথমিক প্রশ্ন

এই পৃষ্ঠার নমুনা কোয়েরিগুলো গুগল অ্যানালিটিক্সের জন্য BigQuery ইভেন্ট এক্সপোর্ট ডেটার ক্ষেত্রে প্রযোজ্য।

নমুনা ডেটাসেটের পরিবর্তে আপনার নিজস্ব ডেটাসেট কোয়েরি করুন।

অন্যথায় উল্লেখ না থাকলে, এখানে তালিকাভুক্ত সমস্ত কোয়েরি নমুনা ডেটাসেট ব্যবহার করে এবং বৈধ ফলাফল প্রদান করবে। আপনার নিজের Google Analytics প্রপার্টির BigQuery ইভেন্ট এক্সপোর্ট ডেটা ব্যবহার করতে, প্রতিটি কোয়েরিতে -- Replace table মন্তব্যটি খুঁজুন এবং নমুনা টেবিলটি প্রতিস্থাপন করুন। আপনার ডেটাসেট থেকে টেবিলের নাম কপি করতে:

  1. BigQuery UI- তে যান এবং আপনার ডেটাসেট ধারণকারী প্রজেক্টটি নির্বাচন করুন।
  2. এক্সপ্লোরারে টেবিলটি খুঁজুন।
  3. টেবিলের ডানদিকে থাকা তিনটি উল্লম্ব ডটে ক্লিক করুন, তারপর ‘কপি আইডি’-তে ক্লিক করুন।
  4. কোয়েরিতে নমুনা টেবিলের জায়গায় টেবিলের নামটি পেস্ট করুন।
  5. টেবিলের তারিখ অংশটি * দিয়ে প্রতিস্থাপন করুন।

উদাহরণস্বরূপ, যদি Copy ID, my-first-gcp-project:analytics_28239234.events_20240718 এই BigQuery টেবিলের নামটি কপি করে থাকে, তাহলে প্রতিস্থাপন করুন:

  -- 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 ভ্যালুগুলোর সংখ্যা গণনা করুন। তবে, যদি আপনার গুগল অ্যানালিটিক্স ক্লায়েন্ট প্রতিটি হিটের সাথে 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';

কার্টে যোগ করা শীর্ষ ১০টি আইটেম

নিম্নলিখিত কোয়েরিটি সর্বাধিক সংখ্যক ব্যবহারকারীর দ্বারা কার্টে যুক্ত করা শীর্ষ ১০টি আইটেম দেখায়।

-- 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 ইভেন্টগুলিতে সীমাবদ্ধ রাখে, আপনি event_name এর জন্য WHERE ক্লজের শর্তটি সরিয়ে দিয়ে একই 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 Analytics ইভেন্টগুলির জন্য অতিরিক্ত Google Ads ডেটা পুনরুদ্ধার করতে, Google Ads-এর জন্য BigQuery ডেটা ট্রান্সফার পরিষেবা সেট আপ করুন, তারপর Google Analytics ইভেন্ট ডেটা থেকে collected_traffic_source.gclid Google Ads ট্রান্সফার থেকে customer_id ads_ClickStats_ এর gclid ফিল্ডের সাথে যুক্ত করুন।

মনে রাখবেন যে customer_id গুগল অ্যানালিটিক্স ইভেন্ট ডেটা এক্সপোর্ট করলে প্রতিটি দিনের জন্য একটি করে টেবিল তৈরি হয়, অন্যদিকে গুগল অ্যাডস ট্রান্সফারের মাধ্যমে প্রতিটি গ্রাহকের জন্য একটিমাত্র ads_ClickStats_ টেবিল পূরণ করা হয়।