[GA4] ตัวอย่างการค้นหาสำหรับกลุ่มเป้าหมายที่อิงตามข้อมูล BigQuery

หลังจากที่คุณส่งออกข้อมูล Firebase ไปยัง BigQuery แล้ว คุณจะค้นหาข้อมูลดังกล่าวสำหรับกลุ่มเป้าหมายที่เฉพาะเจาะจงได้

บทความนี้นำเสนอเทมเพลตจำนวนหนึ่งที่คุณใช้เป็นพื้นฐานสำหรับการค้นหาได้ โปรดแก้ไขตัวอย่างการค้นหาเพื่อจัดการกับข้อมูลที่เฉพาะเจาะจงของข้อมูล เช่น เปลี่ยนชื่อตารางและแก้ไขช่วงวันที่

การค้นหาเหล่านี้จะแสดงจำนวนผู้ใช้ในกลุ่มเป้าหมาย หากคุณต้องการรับรายการรหัสผู้ใช้ในกลุ่มเป้าหมายแทน ให้นำฟังก์ชัน COUNT () ด้านนอกสุดออก เช่น COUNT (DISTINCT user_id) -> DISTINCT user_id

การค้นหาเหล่านี้ใช้ SQL มาตรฐาน ดังนั้นต้องแน่ใจว่าคุณได้เลือกตัวเลือกนั้นก่อนที่จะทำการค้นหา (ใน BigQuery > พื้นที่ทํางาน SQL ให้คลิก เพิ่มเติม > การตั้งค่าการค้นหา ในส่วนการตั้งค่าเพิ่มเติม > ภาษา SQL ให้เลือกมาตรฐาน)

ปัจจุบัน ข้อมูลกลุ่มเป้าหมายนี้ใช้สำหรับเป็นข้อมูลเท่านั้น ไม่สามารถนำไปใช้วิเคราะห์กลุ่มเป้าหมายได้

เราอยากรับฟังความคิดเห็นจากคุณว่าตัวอย่างการค้นหาเหล่านี้มีประโยชน์หรือไม่ และมีกลุ่มเป้าหมายประเภทอื่นๆ ที่คุณต้องการค้นหาหรือไม่ โปรดตอบกลับผ่านทางคำขอฟีเจอร์ที่มีการสนับสนุน Firebase

 

บทความนี้ประกอบด้วย

ผู้ซื้อ

/**
 * คำนวณกลุ่มเป้าหมายของผู้ซื้อ
 *
 * ผู้ซื้อ = ผู้ใช้ที่บันทึก in_app_purchase หรือ
 * การซื้อ
 */
 
SELECT
  COUNT(DISTINCT user_id) AS purchasers_count
FROM
  -- PLEASE REPLACE WITH YOUR TABLE NAME.
  `YOUR_TABLE.events_*`
WHERE
  event_name IN ('in_app_purchase', 'purchase')
  -- PLEASE REPLACE WITH YOUR DESIRED DATE RANGE
  AND _TABLE_SUFFIX BETWEEN '20180501' AND '20240131';
  
  

ผู้ใช้ที่ใช้งานอยู่ N วัน

/**
 * สร้างกลุ่มเป้าหมายของผู้ใช้ที่ใช้งานอยู่ N วัน
 *
 * ผู้ใช้ที่ใช้งานอยู่ N วัน = ผู้ใช้ที่บันทึกเหตุการณ์อย่างน้อย 1 เหตุการณ์ด้วยพารามิเตอร์เหตุการณ์ 
 * engagement_time_msec > 0 ในช่วง N วันที่ผ่านมา
*/

SELECT
  COUNT(DISTINCT user_id) AS n_day_active_users_count
FROM
  -- PLEASE REPLACE WITH YOUR TABLE NAME.
  `YOUR_TABLE.events_*` AS T
    CROSS JOIN
      T.event_params
WHERE
  event_params.key = 'engagement_time_msec' AND event_params.value.int_value > 0
  -- Pick events in the last N = 20 days.
  AND event_timestamp >
      UNIX_MICROS(TIMESTAMP_SUB(CURRENT_TIMESTAMP, INTERVAL 20 DAY))
  -- PLEASE REPLACE WITH YOUR DESIRED DATE RANGE.
  AND _TABLE_SUFFIX BETWEEN '20180521' AND '20240131';
  
  

ผู้ใช้ที่ไม่ได้ใช้งาน N วัน

/**
 * สร้างกลุ่มเป่าหมายของผู้ใช้ที่ไม่ได้ใช้งาน N วัน
 *
 * ผู้ใช้ที่ไม่ได้ใช้งาน N วัน = ผู้ใช้ในช่วง M วันที่ผ่านมาที่ไม่ได้บันทึกเหตุการณ์  
 * 1 เหตุการณ์ด้วยพารามิเตอร์เหตุการณ์ engagement_time_msec > 0 ในช่วง N วันที่ผ่านมา 
 *  โดยที่ M > N
 */

 
SELECT
  COUNT(DISTINCT MDaysUsers.user_id) AS n_day_inactive_users_count
FROM
  (
    SELECT
      user_id
    FROM
      /* PLEASE REPLACE WITH YOUR TABLE NAME */
      `YOUR_TABLE.events_*` AS T
    CROSS JOIN
      T.event_params
    WHERE
      event_params.key = 'engagement_time_msec' AND event_params.value.int_value > 0
      /* Has engaged in last M = 7 days */
      AND event_timestamp >
          UNIX_MICROS(TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY))
      /* PLEASE REPLACE WITH YOUR DESIRED DATE RANGE */
      AND _TABLE_SUFFIX BETWEEN '20180521' AND '20240131'
  ) AS MDaysUsers
-- EXCEPT ALL is not yet implemented in BigQuery. Use LEFT JOIN in the interim.
LEFT JOIN
  (
    SELECT
      user_id
    FROM
      /* PLEASE REPLACE WITH YOUR TABLE NAME */
      `YOUR_TABLE.events_*`AS T
    CROSS JOIN
      T.event_params
    WHERE
      event_params.key = 'engagement_time_msec' AND event_params.value.int_value > 0
      /* Has engaged in last N = 2 days */
      AND event_timestamp >
          UNIX_MICROS(TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 2 DAY))
      /* PLEASE REPLACE WITH YOUR DESIRED DATE RANGE */
      AND _TABLE_SUFFIX BETWEEN '20180521' AND '20240131'
  ) AS NDaysUsers
  ON MDaysUsers.user_id = NDaysUsers.user_id
WHERE
  NDaysUsers.user_id IS NULL;
  
  

ผู้ใช้ที่ใช้งานบ่อย

/**
 * สร้างกลุ่มเป้าหมายของผู้ใช้ที่ใช้งานบ่อย
 *
 * ผู้ใช้ที่ใช้งานบ่อย = ผู้ใช้ที่บันทึกเหตุการณ์
 * อย่างน้อย 1 เหตุการณ์ด้วยพารามิเตอร์เหตุการณ์ engagement_time_msec > 0 ใน N ของ 
 * ช่วง M วันที่ผ่านมา โดยที่ M > N
 */

 
SELECT
  COUNT(DISTINCT user_id) AS frequent_active_users_count
FROM
  (
    SELECT
      user_id,
      COUNT(DISTINCT event_date)
    FROM
      -- PLEASE REPLACE WITH YOUR TABLE NAME.
      `YOUR_TABLE.events_*` AS T
    CROSS JOIN
      T.event_params
    WHERE
      event_params.key = 'engagement_time_msec' AND event_params.value.int_value > 0
      -- User engagement in the last M = 10 days.
      AND event_timestamp >
          UNIX_MICROS(TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 10 DAY))
      -- PLEASE REPLACE YOUR DESIRED DATE RANGE.  For optimal performance
      -- the _TABLE_SUFFIX range should match the INTERVAL value above.
      AND _TABLE_SUFFIX BETWEEN '20180521' AND '20240131'
    GROUP BY 1
    -- Having engaged in at least N = 4 days.
    HAVING COUNT(event_date) >= 4
  );

  

ผู้ใช้ที่ใช้งานมาก

/**
 * สร้างกลุ่มเป้าหมายของผู้ใช้ที่ใช้งานมาก
 *
 * ผู้ใช้ที่ใช้งานมาก = ผู้ใช้ที่มีการใช้งานนานมากกว่า N นาที
 * ในช่วง M วันที่ผ่านมา โดยที่ M > N
*/

SELECT
  COUNT(DISTINCT user_id) AS high_active_users_count
FROM
  (
    SELECT
      user_id,
      event_params.key,
      SUM(event_params.value.int_value)
    FROM
      -- PLEASE REPLACE WITH YOUR TABLE NAME.
      `YOUR_TABLE.events_*` AS T
    CROSS JOIN
      T.event_params
    WHERE
      -- User engagement in the last M = 10 days.
      event_timestamp >
          UNIX_MICROS(TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 10 DAY))
      AND event_params.key = 'engagement_time_msec'
      -- PLEASE REPLACE YOUR DESIRED DATE RANGE.
      AND _TABLE_SUFFIX BETWEEN '20180521' AND '20240131'
    GROUP BY 1, 2
    HAVING
      -- Having engaged for more than N = 0.1 minutes.
      SUM(event_params.value.int_value) > 0.1 * 60 * 1000000
  );

  

ผู้ใช้ที่ได้มา

/ ** * สร้างผู้ชมของผู้ใช้ที่ได้มา
 *
 * ผู้ใช้ที่ได้มา = ผู้ใช้ที่ได้มาผ่านแหล่งที่มา/สื่อ/แคมเปญบางอย่าง
 */
 
SELECT
  COUNT(DISTINCT user_id) AS acquired_users_count
FROM
  -- PLEASE REPLACE WITH YOUR TABLE NAME.
  `YOUR_TABLE.events_*`
WHERE
  traffic_source.source = 'google'
  AND traffic_source.medium = 'cpc'
  AND traffic_source.name = 'VTA-Test-Android'
  -- PLEASE REPLACE YOUR DESIRED DATE RANGE.
  AND _TABLE_SUFFIX BETWEEN '20180521' AND '20240131';
  
  

กลุ่มประชากรตามรุ่นที่ใช้ตัวกรอง

/**
 * สร้างกลุ่มเป้าหมายที่ประกอบด้วยผู้ใช้ที่ได้มาในสัปดาห์ที่แล้ว
 * ผ่านแคมเปญ Google อย่างกลุ่มประชากรตามรุ่นที่ใช้ตัวกรอง
 *
 * กลุ่มประชากรตามรุ่นหมายถึงผู้ใช้ที่ได้มาในสัปดาห์ที่แล้ว เช่น ระหว่าง 7 - 14
 * วันที่ผ่านมา ตัวกรองกลุ่มประชากรตามรุ่นใช้สำหรับผู้ใช้ที่ได้มาจากแคมเปญ
 * โดยตรง
 */
 
SELECT
  COUNT(DISTINCT user_id) AS users_acquired_through_google_count
FROM
  -- PLEASE REPLACE WITH YOUR TABLE NAME.
  `YOUR_TABLE.events_*`
WHERE
  event_name = 'first_open'
  -- Cohort: opened app 1-2 weeks ago. One week of cohort, aka. weekly.
  AND event_timestamp >
      UNIX_MICROS(TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 14 DAY))
  AND event_timestamp <
      UNIX_MICROS(TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY))
  -- Cohort filter: users acquired through 'google' source.
  AND traffic_source.source = 'google'
  -- PLEASE REPLACE YOUR DESIRED DATE RANGE.
  AND _TABLE_SUFFIX BETWEEN '20180501' AND '20240131';
  
  

ข้อมูลนี้มีประโยชน์ไหม

เราจะปรับปรุงได้อย่างไร
ค้นหา
ล้างการค้นหา
ปิดการค้นหา
เมนูหลัก
5277381028587028686
true
ค้นหาศูนย์ช่วยเหลือ
true
true
true
true
true
69256
false
false