Google Analytics etkinlik verilerini dışa aktarma için temel sorgular

Bu sayfadaki örnek sorgular, Google Analytics için BigQuery etkinlik dışa aktarma verileriyle ilgilidir.

Örnek veri kümesi yerine veri kümenizi sorgulama

Aksi belirtilmediği sürece, burada listelenen tüm sorgular örnek veri kümelerini kullanır ve geçerli sonuçlar üretmelidir. Kendi Google Analytics mülkünüzün BigQuery etkinlik dışa aktarma verilerini kullanmak için her sorguda -- Replace table yorumunu bulun ve örnek tabloyu değiştirin. Tablo adını veri kümenizden kopyalamak için:

  1. BigQuery kullanıcı arayüzüne gidin ve veri kümenizi içeren projeyi seçin.
  2. Tabloyu Gezgin'de bulun.
  3. Tablonun sağındaki üç dikey noktayı, ardından Kimliği kopyala'yı tıklayın.
  4. Tablo adını sorgudaki örnek tablonun yerine yapıştırın.
  5. Tablonun tarih kısmını * ile değiştirin.

Örneğin, Copy ID (Kimliği kopyala) işlevi BigQuery tablo adını kopyaladıysa my-first-gcp-project:analytics_28239234.events_20240718, şunları değiştirin:

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

with:

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

Belirli bir tarih aralığını sorgulama

BigQuery etkinlik dışa aktarma veri kümesinden belirli bir tarih aralığını sorgulamak için sorgunuzun WHERE ifadesinde _TABLE_SUFFIX sahte sütununu kullanın. Daha fazla bilgi için _TABLE_SUFFIX kullanarak seçili tabloları filtreleme başlıklı makaleyi inceleyin.

Örneğin, aşağıdaki sorgu, belirli bir gün aralığı ve seçilen etkinlikler için benzersiz etkinlikleri tarihe ve etkinlik adına göre sayar:

-- 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;

Kullanıcı sayısı, yeni kullanıcılar ve geri gelen kullanıcılar

  • Toplam etkin kullanıcı sayısını elde etmek için farklı user_id değerlerinin sayısını hesaplayın. Ancak Google Analytics istemciniz her isabette bir user_id geri göndermiyorsa veya emin değilseniz farklı user_pseudo_id değerlerinin sayısını hesaplayın.
  • Yeni kullanıcılar için event_name değeri aşağıdaki gibi olan farklı kullanıcıların sayısını hesaplayın:
  • Geri gelen kullanıcılar için dönem boyunca etkinlikte bulunan ancak dönem içinde ilk oturumlarını başlatmayan veya uygulamayı ilk kez başlatmayan kullanıcıların sayısını (etkin kullanıcılar eksi yeni kullanıcılar) sayın.
-- 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;

Alıcı başına ortalama işlem sayısı

Aşağıdaki sorguda, alıcı başına ortalama işlem sayısı gösterilmektedir.

-- 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';

Belirli bir etkinlik adının değerleri

Aşağıdaki sorgu, tüm event_timestamp etkinlikleri ve ilişkili etkinlik parametresi değerleri için purchase değerini gösterir:

-- 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';

Önceki sorgu, liste yerine etkinlik parametresi değerlerinin toplamını gösterecek şekilde değiştirilebilir:

-- 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';

Alışveriş sepetine en çok eklenen 10 öğe

Aşağıdaki sorgu, en çok sayıda kullanıcı tarafından alışveriş sepetine eklenen ilk 10 öğeyi gösterir.

-- 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;

Alıcı türüne göre ortalama sayfa görüntüleme sayısı (satın alma işlemi gerçekleştirenler ve gerçekleştirmeyenler)

Aşağıdaki sorgu, kullanıcıların alıcı türüne (satın alma işlemi gerçekleştirenler ve gerçekleştirmeyenler) göre ortalama sayfa görüntüleme sayısını gösterir:

-- 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;

Sayfa görüntüleme sırası

Bu sorgu, her kullanıcının yaptığı sayfa görüntülemelerin sırasını gösterir. Sorgu, sonuçları aşağıdaki alanları kullanarak sıralar. Böylece, etkinlikler aynı toplu işlemde gönderilmiş olsa bile kullanıcı için gerçekleşme sırasına göre listelenir:

  • user_pseudo_id
  • user_id
  • batch_page_id
  • batch_ordering_id
  • batch_event_index

Örnek, sonuçları yalnızca page_view etkinlikleriyle sınırlandırsa da WHERE koşulunu event_name için kaldırarak tüm etkinlikleri doğru şekilde sıralamak için aynı ORDER BY ifadesini kullanabilirsiniz.

Sorgu, kullanıcı tanımlı işlevlerin GetParamString ve GetParamInt nasıl kullanılacağını da göstererek yinelenmeyi azaltır ve sorgularınızın anlaşılmasını ve bakımını kolaylaştırır.

-- 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;

Etkinlik parametresi listesi

Aşağıdaki sorgu, veri kümenizde görünen tüm etkinlik parametrelerini listeler:

-- 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'e katılma

Google Analytics etkinlikleriniz için ek Google Ads verileri almak üzere Google Ads için BigQuery Veri Aktarım Hizmeti'ni ayarlayın, ardından Google Analytics etkinlik verilerindeki collected_traffic_source.gclid öğesini Google Ads aktarımındaki ads_ClickStats_customer_id öğesinin gclid alanına ekleyin.

Google Analytics etkinlik verilerini dışa aktarma işleminin her gün için bir tablo oluşturduğunu, Google Ads aktarımının ise müşteri başına tek bir ads_ClickStats_customer_id tablosunu doldurduğunu unutmayın.