[GA4] Mintalekérdezések a BigQuery-adatokon alapuló közönségekhez

A Firebase-adatok BigQuery rendszerbe való exportálása után konkrét közönségekhez kapcsolódóan kérdezheti le az adatokat.

Ez a cikk olyan sablonokat biztosít, amelyeket a lekérdezések alapjaként használhat. Ne feledje módosítani a példalekérdezéseket az adatok jellemzőinek megfelelően; például változtassa meg a táblázatneveket, illetve módosítsa a dátumtartományokat.

Ezek a lekérdezések a közönségben lévő felhasználók számát adják vissza. Ha ehelyett a közönségben szereplő felhasználói azonosítók listáját szeretné lekérdezni, távolítsa el a legkülsőbb COUNT() függvényt; például: COUNT(DISTINCT user_id) --> DISTINCT user_id.

Ezek a lekérdezések a Standard SQL-t használják, ezért ügyeljen rá, hogy ezt a lehetőséget válassza ki, mielőtt lekérdezést futtat. (A BigQuery > SQL Workspace pontban kattintson a More > Query Settings elemre. Az Additional Settings > SQL dialect részen válassza ki a Standard lehetőséget.)

Jelenleg a közönségadatok csak tájékoztatásra szolgálnak, és nem végezhetők velük műveletek.

Szeretnénk megtudni, hogy hasznosnak találja-e ezeket a példalekérdezéseket, illetve vannak-e más típusú közönségek, amelyekkel kapcsolatban lekérdezést szeretne futtatni. A válaszhoz használja a Firebase-támogatás funkciókérését.

 

A cikk tartalma:

Vásárlók

/**
 * Megszámolhatja a közönségbe tartozó vásárlókat.
 *
 * Vásárlók = azok a felhasználók, akiknél a rendszer in_app_purchase vagy
 * purchase eseményt naplózott.
 */
 
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 napja aktív felhasználók

/**
 * Létrehozhatja az N napja aktív felhasználók közönségét.
 *
 * N napja aktív felhasználók = azok a felhasználók, akiknél a rendszer legalább egy, az eseményparaméterrel rendelkező eseményt naplózott 
 * engagement_time_msec > 0 az elmúlt N napban.
*/

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 napja inaktív felhasználók

/**
 * Létrehozhatja az N napja inaktív felhasználók közönségét.
 *
 * N napja inaktív felhasználók = olyan felhasználók, akiknél az elmúlt M napban a rendszer egyetlen
 * olyan eseményt sem naplózott, amelynél az engagement_time_msec eseményparaméter
 *  értéke 0-nál nagyobb lett volna az elmúlt N napban, és az M > N feltétel is igaz.
 */

 
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;
  
  

Gyakran aktív felhasználók

/**
 * Létrehozhatja a gyakran aktív felhasználók közönségét.
 *
 * Gyakran aktív felhasználók = azok a felhasználók, akiknél a rendszer legalább egy
 * olyan eseményt naplózott, amelynél az event param_time_msec eseményparaméter * értéke nagyobb volt 0-nál az elmúlt M napból N napon, és az M > N feltétel is igaz.
 */

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

  

Nagyon aktív felhasználók

/**
 * Létrehozhatja a nagyon aktív felhasználók közönségét.
 *
 * Nagyon aktív felhasználók = azok a felhasználók, akik több mint N percig voltak aktívak
 * az elmúlt M napon (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
  );

  

Szerzett felhasználók

/**
 * Létrehozhatja a szerzett felhasználók közönségét.
 *
 * Szerzett felhasználók = azok a felhasználók, akik valamilyen forráson,
 * médiumon vagy kampányon keresztül érkeztek.
 */
 
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';
  
  

Szűrt kohorszok

/**
 * Létrehozhatja a múlt héten Google-kampányokkal szerzett felhasználók
 * közönségét, azaz egy szűrt kohorszot.
 *
 * A kohorszot az elmúlt héten, azaz 7–14 napja szerzett felhasználók
 * alkotják. A rendszer a kohorszszűrést a közvetlen kampányokkal szerzett
 * felhasználókra alkalmazza.
 */
 
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';
  
  

Hasznosnak találta?

Hogyan fejleszthetnénk?
Keresés
Keresés törlése
A keresés bezárása
Főmenü
10152296230835154008
true
Keresés a Súgóoldalakon
true
true
true
true
true
69256
false
false