[GA4] Auditorijų užklausų pagal „BigQuery“ duomenis pavyzdžiai

Eksportavę „Firebase“ duomenis į „BigQuery“, galite teikti šių konkrečių auditorijų duomenų užklausas.

Šiame straipsnyje pateikiami įvairūs šablonai, pagal kuriuos galite kurti užklausas. Nepamirškite pakeisti pavyzdinių užklausų pagal savo konkrečius duomenis, pvz., pakeiskite lentelių pavadinimus ir dienų sekas.

Vykdant šias užklausas pateikiamas auditorijos naudotojų skaičius. Jei norite gauti auditorijos naudotojų ID sąrašą, pašalinkite tolimiausią parametrą COUNT(), pvz., COUNT(DISTINCT user_id) --> DISTINCT user_id.

Šioms užklausoms naudojamas standartinis SQL, todėl būtinai nurodykite šią parinktį prieš vykdydami užklausą. (Skiltyje BigQuery > SQL Workspace („BigQuery“ > „SQL darbo sritis“) spustelėkite More > Query Settings („Daugiau“ > „Užklausų nustatymai“). Skiltyje Additional Settings > SQL dialect („Papildomi nustatymai“ > „SQL dialektas“) pasirinkite Standard („Standartinis“).)

Šiuo metu šie auditorijos duomenys teikiami tik informaciniais tikslais, jų negalima naudoti auditorijų analizei.

Norėtume sužinoti, ar šie užklausų pavyzdžiai jums naudingi ir ar norėtumėte teikti kokių nors kitų tipų auditorijų užklausas. Galite atsakyti pateikdami funkcijos užklausą „Firebase“ palaikymo komandai.

 

Šiame straipsnyje pateiktos toliau nurodytos skiltys.

Pirkėjai

/**
 * Skaičiuojama pirkėjų auditorija.
 *
 * Pirkėjai = naudotojai, kurie užregistravo įvykį „in_app_purchase“ arba
 * „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 d. aktyvūs naudotojai

/**
 * Sukuriama N d. aktyvių naudotojų auditorija.
 *
 * N d. aktyvūs naudotojai = naudotojai, kurie užregistravo bent vieną įvykį naudodami įvykio parametrą 
 * „engagement_time_msec“ > 0 per pastar. N d.
*/

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 d. neaktyvūs naudotojai

/**
 * Sukuriama N d. neaktyvių naudotojų auditorija.
 *
 * N d. neaktyvūs naudotojai = naudotojai per pastarąsias M d., kurie neužregistravo nė vieno 
 * įvykio su įvykio parametru „engagement_time_msec“ > 0 per pastarąsias N d., 
 *  kai 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;
  
  

Dažnai aktyvūs naudotojai

/**
 * Sukuriama dažnai aktyvių naudotojų auditorija.
 *
 * Dažnai aktyvūs naudotojai = naudotojai, kurie užregistravo bent vieną
 * įvykį su įvykio parametru „engagement_time_msec“ > 0 per N iš
 * pastarųjų M d., kai 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
  );

  

Labai aktyvūs naudotojai

/**
 * Sukuriama labai aktyvių naudotojų auditorija.
 *
 * Labai aktyvūs naudotojai = naudotojai, kurie buvo aktyvūs ilgiau nei N min.
 * per pastar. M d., kai 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
  );

  

Įgyti naudotojai

/**
 * Sukuriama įgytų naudotojų auditorija.
 *
 * Įgyti naudotojai = naudotojai, kuriuos pritraukėte naudodami tam tikrą šaltinį, terpę ar kampaniją.
 */
 
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';
  
  

Grupės su filtrais

/**
 * Sukuriama auditorija iš naudotojų, įgytų praėjusią savaitę
 * per „Google“ kampanijas (pvz., grupių su filtrais).
 *
 * Grupė apibrėžiama kaip naudotojai, įgyti praėjusią savaitę, t. y. prieš
 * 7–14 d. Grupės filtras taikomas naudotojams, įgytiems per tiesioginę
 * kampaniją.
 */
 
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';
  
  

Ar tai buvo naudinga?

Kaip galime jį patobulinti?
Paieška
Išvalyti paiešką
Uždaryti paiešką
Pagrindinis meniu
8074662833562942235
true
Paieška pagalbos centre
true
true
true
true
true
69256
false
false