[GA4] Vzorčne poizvedbe za ciljne skupine na podlagi podatkov BigQuery

Po izvozu podatkov Firebase v BigQuery lahko po teh podatkih poizvedujete za določene ciljne skupine.

V tem članku so na voljo številne predloge, ki jih lahko uporabite na podlagi poizvedb. Ne pozabite spremeniti vzorčnih poizvedb tako, da bodo ustrezale značilnostim vaših podatkov; na primer tako, da spremenite imena tabel in prilagodite časovna obdobja.

Te poizvedbe vrnejo število uporabnikov v ciljni skupini. Če bi raje pridobili seznam ID-jev uporabnikov v ciljni skupini, odstranite najbolj zunanjo funkcijo COUNT(); na primer COUNT(DISTINCT user_id) --> DISTINCT user_id.

Te poizvedbe uporabljajo standardni SQL, zato izberite to možnost pred zagonom poizvedbe. (V razdelku BigQuery > SQL Workspace kliknite Več > Nastavitve poizvedbe. V razdelku Dodatne nastavitve >Narečje SQL izberite Standardno.)

Ti podatki o ciljni skupini so trenutno samo informativni in ne namenjeni za ukrepanje.

Veseli bomo vaše povratne informacije, ali se vam zdijo te vzorčne poizvedbe koristne in ali bi želeli poizvedovati še po kakšnih drugih vrstah ciljnih skupin. Odgovorite lahko prek zahteve za funkcijo, ki jo pošljete podpori za Firebase.

 

V tem članku:

Kupci

/**
 * Izračuna ciljno skupino kupcev.
 *
 * Kupci = uporabniki, ki so zabeležili dogodek in_app_purchase ali
 * 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';
  
  

Aktivni uporabniki v N dneh

/**
 * Izdela ciljno skupino aktivnih uporabnikov v N dneh.
 *
 * Aktivni uporabniki v N dneh = uporabniki, ki so zabeležili vsaj en dogodek s parametrom dogodka 
 * engagement_time_msec > 0 v zadnjih N dneh.
*/

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

Neaktivni uporabniki v N dneh

/**
 * Izdela ciljno skupino neaktivnih uporabnikov v N dneh.
 *
 * Neaktivni uporabniki v N dneh = uporabniki v zadnjih M dneh, ki niso zabeležili 
 * dogodka s parametrom dogodka engagement_time_msec > 0 v zadnjih N dneh, 
 * kjer je 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;
  
  

Pogosto aktivni uporabniki

/**
 * Izdela ciljno skupino pogosto aktivnih uporabnikov.
 *
 * Pogosto aktivni uporabniki = uporabniki, ki so zabeležili vsaj en
 * dogodek s parametrom dogodka engagement_time_msec > 0 na N od 
 * zadnjih M dni, kjer je 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
  );

  

Zelo aktivni uporabniki

/**
 * Izdela ciljno skupino zelo aktivnih uporabnikov.
 *
 * Zelo aktivni uporabniki = uporabniki, ki so bili aktivni več kot N minut
 * v zadnjih M dneh, kjer je 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
  );

  

Pridobljeni uporabniki

/**
 * Izdela ciljno skupino pridobljenih uporabnikov.
 *
 * Pridobljeni uporabniki = uporabniki, pridobljeni prek določene(-ga) vira/medija/oglaševalske akcije.
 */
 
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';
  
  

Kohorte s filtri

/**
 * Izdela ciljno skupino, sestavljeno iz uporabnikov, pridobljenih v preteklem tednu
 * prek Googlovih oglaševalskih akcij, tj. kohort s filtri.
 *
 * Kohorta je definirana kot uporabniki, pridobljeni v preteklem tednu, tj. pred 7–14
 * dnevi. Filter kohort je namenjen za uporabnike, pridobljene prek neposredne
 * oglaševalske akcije.
 */
 
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';
  
  

Je bilo to uporabno?

Kako lahko to izboljšamo?
Iskanje
Počisti iskanje
Zapiranje iskanja
Glavni meni
10373064878290586049
true
Iskanje v centru za pomoč
true
true
true
true
true
69256
false
false