[GA4] Auditoriju vaicājumu paraugi, balstoties uz BigQuery datiem

Pēc Firebase datu eksportēšanas rīkā BigQuery, varēsiet izmantot šos datus, veidojot vaicājumus par konkrētām auditorijām.

Šajā rakstā ir sniegtas vairākas veidnes, ko varat izmantot vaicājumu veidošanai. Veiciet izmaiņas vaicājumu paraugos atbilstoši saviem datiem, piemēram, mainiet tabulu nosaukumus un datumu diapazonus.

Šie vaicājumi izgūst auditorijas lietotāju skaitu. Gadījumā, ja vēlaties iegūt auditorijas lietotāju ID, noņemiet ārējo funkciju COUNT(), piemēram, COUNT(DISTINCT user_id) --> DISTINCT user_id.

Šiem vaicājumiem tiek izmantotas standarta SQL funkcijas, tādēļ noteikti atlasiet šo opciju pirms vaicājuma izpildes. (Sadaļā BigQuery > SQL Workplace (SQL darbvieta) noklikšķiniet uz More > Query Options (Vēl > Vaicājumu iespējas). Sadaļā Additional Settings > SQL dialect (Papildu iestatījumi > SQL dialekts) atlasiet Standard (Standarta).)

Pašlaik šie auditoriju dati ir tikai informatīvi, nevis praktiski izmantojami.

Mēs labprāt uzzinātu, vai šie vaicājumu piemēri jums šķiet noderīgi un vai jūs vēlētos veidot vaicājumus arī par citu veidu auditorijām. Varat nosūtīt funkciju pieprasījumu Firebase atbalsta komandai.

 

Šajā rakstā ietvertās tēmas

Pircēji

/**
 * Aprēķina pircēju auditoriju.
 *
 * Pircēji — lietotāji, kuriem reģistrēts notikums “in_app_purchase” vai
 * 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';
  
  

Aktīvie lietotāji N dienu laikā

/**
 * Tādu lietotāju auditorijas izveide, kuri bija aktīvi N dienu laikā.
 *
 * Aktīvie lietotāji N dienu laikā — lietotāji, kuriem pēdējās N dienās ir reģistrēts vismaz viens notikums ar notikuma parametru 
 * engage_time_msec > 0.
*/

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

Neaktīvie lietotāji N dienu laikā

/**
 * Tādu lietotāju auditorijas izveide, kuri nebija aktīvi N dienu laikā.
 *
 * Neaktīvie lietotāji N dienu laikā — lietotāji pēdējās M dienās, kuriem nav reģistrēts neviens notikums 
 * ar notikuma parametru engagement_time_msec > 0 pēdējo N dienu laikā 
 *, ņemot vērā, ka 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;
  
  

Bieži aktīvie lietotāji

/**
 * Bieži aktīvo lietotāju auditorijas izveide.
 *
 * Bieži aktīvie lietotāji — lietotāji, kuriem reģistrēts vismaz viens
 * notikums ar notikuma parametru engagement_time_msec > 0 N. no 
 * pēdējām M dienām, ņemot vērā, ka 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
  );

  

Ļoti aktīvie lietotāji

/**
 * Ļoti aktīvu lietotāju auditorijas izveide.
 *
 * Ļoti aktīvie lietotāji — lietotāji, kuri pēdējo N dienu laikā bijuši aktīvi vairāk nekā N min.
 * pēdējo M dienu laikā, ņemot vērā, ka 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
  );

  

Iegūtie lietotāji

/**
 * Iegūto lietotāju auditorijas izveide.
 *
 * Iegūtie lietotāji — lietotāji, kuri iegūti, izmantojot kādu avotu/vidi/kampaņu.
 */
 
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';
  
  

Personu grupas ar filtriem

/**
 * Tādu lietotāju auditorijas izveide, kuri iegūti iepriekšējā nedēļā
 * ar Google kampaņu starpniecību, t.i., personu grupas ar filtriem.
 *
 * Personu grupa ir definēta kā lietotāji, kuri iegūti iepriekšējā nedēļā, t.i., pirms 7–14
 * dienām. Personu grupas filtru izmanto lietotājiem, kuri iegūti tiešā
 * kampaņā.
 */
 
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';
  
  

Vai tas bija noderīgs?

Kā varam to uzlabot?
Meklēšana
Notīrīt meklēšanu
Aizvērt meklēšanas lodziņu
Galvenā izvēlne
7302180004862938871
true
Meklēšanas palīdzības centrs
true
true
true
true
true
69256
false
false