Etter at du har eksportert Firebase-dataene dine til BigQuery, kan du søke etter bestemte målgrupper i disse dataene.
I denne artikkelen finner du en rekke maler du kan bruke som grunnlag for søk. Husk at du må endre eksempelsøkene i tråd med det som er spesifikt for dataene dine. Du må for eksempel endre tabellnavnene og datoperiodene.
Med disse søkene returneres antallet brukere som inngår i den aktuelle målgruppen. Hvis du vil ha listen med User-ID-er i målgruppen i stedet, kan du fjerne den ytterste COUNT()-funksjonen, for eksempel COUNT(DISTINCT user_id) --> DISTINCT user_id.
Standard SQL brukes i disse søkene, så du må sørge for at du velger dette alternativet før du kjører søk. (Følg menybanen BigQuery > SQL Workspace, og klikk på More > Query Options. Følg menybanen Additional Settings > SQL dialect, og velg Standard.)
Disse målgruppedataene er foreløpig bare informative – ikke anvendbare.
Vi er interessert i å vite om du synes disse eksempelsøkene er nyttige, og om det finnes andre typer målgrupper du ønsker å søke etter. Du kan svare via en funksjonsforespørsel til brukerstøtten for Firebase.
Du finner følgende informasjon i denne artikkelen:
Kjøpere
/**
* Beregner målgruppen til kjøpere.
*
* Kjøpere = brukere som har loggført enten en in_app_purchase- eller
* purchase-hendelse.
*/
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';
Brukere som er aktive i n dager
/**
* oppretter en målgruppe med brukere som har vært aktive i N dager
*
* brukere som har vært aktive i n dager = brukere som har loggført minst én hendelse med hendelsesparameteren
* engagement_time_msec > 0 i løpet av de siste N dagene
*/
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';
Brukere som er inaktive i n dager
/**
* oppretter en målgruppe med brukere som har vært inaktive i N dager
*
* brukere som har vært inaktive i N dager = brukere du har skaffet deg i løpet av de siste M dagene, som ikke har loggført noen
* hendelse med hendelsesparameteren engagement_time_msec > 0 i løpet av de siste N dagene
* der 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;
Brukere som ofte er aktive
/**
* oppretter en målgruppe med brukere som ofte er aktive
*
* brukere som ofte er aktive = brukere som har loggført minst én
* hendelse med hendelsesparameteren engagement_time_msec > 0 på N av
* de siste M dagene der 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
);
Brukere som er svært aktive
/**
* Oppretter en målgruppe med brukere som er svært aktive.
*
* Brukere som er svært aktive = brukere som har vært aktive i over N minutter
* i løpet av de siste M dagene, der 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
);
Kjøpte brukere
/**
* Lager en målgruppe med kjøpte brukere.
*
* Kjøpte brukere = brukere som er kjøpt via en kilde, et medium eller en kampanje.
*/
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 filtre
/**
* Oppretter en målgruppe bestående av brukere du i løpet av den forrige uken
* kjøpte via Google-kampanjer, altså kohorter med filtre.
*
* Kohort defineres som brukere som er kjøpt i forrige uke, altså for
* mellom 7 og 14 dager siden. Kohortfilteret er for brukere som er kjøpt gjennom
* direktekampanjer.
*/
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';