[GA4] Exempelsökfrågor för målgrupper baserat på BigQuery-data

När du har exporterat din Firebase-data till BigQuery kan du ställa frågor om din data för specifika målgrupper.

Denna artikel innehåller ett antal mallar som du kan använda som underlag för dina sökfrågor. Kom ihåg att ändra exempelsökfrågorna för din specifika data, till exempel genom att ändra tabellnamn och datumintervall.

De här sökfrågorna returnerar antalet användare i målgruppen. Om du i stället vill se listan över användar-id:n i målgruppen tar du bort den yttersta COUNT()-funktionen, till exempel COUNT(DISTINCT user_id) --> DISTINCT user_id.

Sökfrågorna anges i Standard SQL, så tänk på att välja det alternativet innan du kör en sökfråga. (I BigQuery > SQL Workspace klickar du på More > Query Settings. Leta reda på Additional Settings > SQL dialect och välj Standard.)

För närvarande är denna målgruppsdata endast avsedd för information och kan inte användas för dina egna ändamål.

Vi vill gärna veta om du hade nytta av de här exemplen och om det finns andra typer av målgrupper som du vill söka efter. Du kan svara genom att skicka ett förslag till ny funktion till Firebase-supporten.

 

Innehåll i artikeln:

Köpare

/**
 * Beräknar målgruppen med köpare.
 *
 * Köpare = användare som har loggat antingen in_app_purchase eller 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';
  
  

Aktiva användare de senaste N dagarna

/**
 * Skapar en målgrupp med aktiva användare de senaste N dagarna.
 *
* Aktiva användare de senaste N dagarna = användare som har loggat minst en händelse
* med händelseparametern engagement_time_msec > 0 under de senaste N dagarna.
*/

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

Inaktiva användare de senaste N dagarna

/**
 * Skapar en målgrupp med inaktiva användare de senaste N dagarna.
 *
* Inaktiva användare de senaste N dagarna = användare de senaste M dagarna som inte har loggat
* en händelse med händelseparametern engagement_time_msec > 0 under de senaste N dagarna 
 * där 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;
  
  

Användare som ofta är aktiva

/**
 * Skapar en målgrupp med användare som ofta är aktiva.
 *
* Användare som ofta är aktiva = användare som har loggat minst en händelse med
* händelseparametern engagement_time_msec > 0 under N av de senaste M dagarna
* där 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
  );

  

Högaktiva användare

/**
 * Skapar en målgrupp med högaktiva användare.
 *
 * Högaktiva användare = användare som har varit aktiva i mer än N minuter under
 * de senaste M dagarna där 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
  );

  

Förvärvade användare

/**
 * Skapar en målgrupp med förvärvade användare.
 *
 * Förvärvade användare = användare som har förvärvats via källa/medium/kampanj.
 */
 
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';
  
  

Kohorter med filter

/**
 * Skapar en målgrupp med användare som har förvärvats under den senaste veckan
 * via Google-kampanjer, det vill säga kohorter med filter.
 *
* Kohort definieras som användare som har förvärvats under den senaste veckan,
* det vill säga för 7–14 dagar sedan. * Kohortfiltret gäller användare som har förvärvats genom en direkt kampanj.
 */
 
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';
  
  

Var det här till hjälp?

Hur kan vi förbättra den?
Sök
Rensa sökning
Stäng sökrutan
Huvudmeny
14718348458305015139
true
Sök i hjälpcentret
true
true
true
true
true
69256
false
false