หลังจากที่คุณส่งออกข้อมูล 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';