Tato funkce je k dispozici pouze ve službě Analytics 360, která je součástí Google Marketing Platform. Další informace o sadě služeb Google Marketing Platform. |
V tomto článku jsou uvedeny příklady sestavování dotazů na údaje z Analytics, které exportujete do nástroje BigQuery. Vytvořili jsme pro vás ukázkový soubor dat, který můžete použít, abyste si sami vyzkoušeli některé z dotazů v tomto článku.
Obsah tohoto článku:- Optimalizace dotazu
- Tipy a doporučené postupy
- Základní příklady dotazů
- [Metrika] celkem podle [dimenze]
- Průměrná míra okamžitého opuštění podle [dimenze]
- Průměrný počet zobrazení stránky produktu podle typu nakupujícího
- Průměrný počet transakcí podle nakupujícího
- Průměrná utracená částka na jednu návštěvu
- Posloupnost požadavků na server (analýza tras)
- Několik vlastních dimenzí na úrovni požadavku na server nebo návštěvy
- Příklady pokročilých dotazů
- Produkty zakoupené zákazníky, kteří si koupili produkt A (klasický elektronický obchod)
- Produkty zakoupené zákazníky, kteří si koupili produkt A (rozšířený elektronický obchod)
- Průměrný počet interakcí uživatele před nákupem
- Procento prodaných skladových zásob na jeden produkt
- Ziskovost jednotlivých produktů
- Skutečná ziskovost jednotlivých produktů
Optimalizace dotazu
Každý spuštěný dotaz zvyšuje vaše měsíční vyhrazené množství zpracovávaných údajů. Pokud vyberete dodatečná pole, zvýšíte množství údajů, které bude nutné zpracovat. V důsledku toho spotřebujete větší část svého měsíčního vyhrazeného množství, než je nutné. Optimalizované dotazy vám umožní efektivně využívat měsíční vyhrazené množství zpracovávaných údajů.
Vybírejte pouze pole, která potřebujete
Při formulování dotazu vyberte v příkazu SELECT příslušná pole. Pokud chcete snížit množství údajů a času potřebné na zpracování dotazu, nevolejte dodatečná pole.
Příklad: nepoužívejte zástupné znaky
Špatná forma: použití zástupného znaku |
---|
SELECT * |
Lepší forma: když použijete názvy polí, vyhnete se nadbytečnému zpracování |
---|
SELECT field1, field2 |
Povolte ukládání do mezipaměti
Pokud to jde, vyhněte se používání funkcí jako polí. Funkce jako NOW()
nebo TODAY()
vracejí proměnné výsledky, což brání ukládání dotazů do mezipaměti a tím jejich rychlejšímu vracení. Použijte raději konkrétní data a časy.
Na často používané dílčí dotazy používejte pomocné tabulky
Pokud zjistíte, že určitý dotaz opakovaně používáte jako dílčí dotaz, můžete si jej uložit jako pomocnou tabulku, když kliknete na tlačítko Uložit jako tabulku nad výsledky dotazu. Na tuto tabulku se pak můžete odkázat v části FROM
vašeho dotazu. Tím snížíte množství dat, které je nutné zpracovat, i čas potřebný na jejich zpracování.
Použití pomocné tabulky |
---|
SELECT field1, field2 |
Ladění dotazů
Každý kód v nástroji BigQuery se po sestavení ladí. V okně pro sestavení dotazu je průběh ladění vidět těsně pod dotazem. Ladění je dostupné také přes rozhraní API s příznakem dryRun.
Platné dotazy mají zelený indikátor, na který lze kliknout a zobrazit množství dat zpracovávaných na základě dotazu. Tato funkce umožňuje optimalizovat údaje před spuštěním dotazu, a vyhnout se tak nadbytečnému zpracovávání dat.
U neplatných dotazů je zobrazen červený indikátor. Po kliknutí na něj se zobrazí informace o chybě a údaje o řádku a sloupci, kde se chyba vyskytla. V následujícím příkladu je příkaz GROUP BY prázdný se zvýrazněnou chybou.
Tipy a doporučené postupy
Použití ukázkového souboru dat
Následující příklady používají ukázkový soubor dat Google Analytics.
Pokud chcete dotazy použít na vlastní údaje, jednoduše nahraďte názvy projektů a souborů dat v příkladech názvy svých vlastních projektů a souborů dat.
Použití standardního SQL a staršího SQL
Nástroj BigQuery podporuje dva jazyky SQL:
Migrace na standardní SQL vysvětluje rozdíly mezi oběma jazyky.
Preferovaným jazykem SQL pro dotazování na data uložená v nástroji BigQuery je nyní standardní SQL.
Informace o povolení standardního SQL v rozhraní BigQuery UI, CLI, API nebo libovolném jiném rozhraní, které používáte, najdete v části Povolení standardního SQL.
Nejjednodušší způsob, jak začít, je uvést komentář „standardSQL“ (standardní SQL) v horní části dotazů ve standardním SQL tak, jak je vidět v níže uvedených příkladech.
Pokud používáte starší SQL, předávají se údaje služby Google Analytics 360 každý den do nové tabulky. Pokud chcete provést dotaz na několik tabulek současně, můžete názvy tabulek oddělit čárkou, použít funkci pro „zástupný znak tabulky“ TABLE_DATE_RANGE
nebo použít několik čárkami oddělených funkcí TABLE_DATE_RANGE
, jako je tomu v níže uvedených příkladech.
Dotaz na více tabulek
Následující příkazy ukazují dotazy na stejná data ve standardním SQL a ve starším SQL.
3 dny
Standardní SQL
3 dny s použitím operátoru UNION ALL |
---|
#standardSQL |
Starší příkazy SQL
3 dny s použitím čárkou oddělených názvů tabulek |
---|
SELECT |
Posledních 1095 dní
Standardní SQL
Posledních 1095 dní s použitím operátoru _TABLE_SUFFIX |
---|
#standardSQL |
Starší příkazy SQL
Posledních 1095 dní s použitím operátoru TABLE_DATE_RANGE |
---|
SELECT |
Posledních 36 měsíců
Standardní SQL
Posledních 36 měsíců s použitím operátoru _TABLE_SUFFIX |
---|
#standardSQL |
Starší příkazy SQL
Posledních 36 měsíců s použitím operátoru TABLE_DATE_RANGE |
---|
SELECT |
Poslední 3 roky
Standardní SQL
Poslední 3 roky s použitím operátoru _TABLE_SUFFIX |
---|
#standardSQL |
Starší příkazy SQL
Poslední 3 roky s použitím operátoru TABLE_DATE_RANGE |
---|
SELECT |
Konkrétní časové období
Standardní SQL
Konkrétní období s použitím operátoru _TABLE_SUFFIX |
---|
#standardSQL |
Starší příkazy SQL
Konkrétní období s použitím operátoru TABLE_DATE_RANGE |
---|
SELECT |
Poslední 3 roky plus dnešní údaje (během dne)
Standardní SQL
Poslední 3 roky plus dnešní údaje (během dne) s použitím operátorů UNION ALL a _TABLE_SUFFIX |
---|
Poznámka: Tento vzorový dotaz nebude u veřejného souboru dat Google Analytics fungovat, protože není k dispozici tabulka dnešních údajů. |
#standardSQL |
Starší příkazy SQL
Poslední 3 roky plus dnešní údaje (během dne) s použitím několika operátorů TABLE_DATE_RANGE |
---|
Poznámka: Tento vzorový dotaz nebude u veřejného souboru dat Google Analytics fungovat, protože není k dispozici tabulka dnešních údajů. |
SELECT |
Základní příklady dotazů
V této části se dozvíte, jak sestavit základní dotazy pomocí metrik a dimenzí ze vzorových údajů Analytics.
[Metrika] celkem podle [dimenze]?
Níže jsou uvedeny příklady skriptů pro dotaz: Jaký je celkový počet vygenerovaných transakcí podle mobilních prohlížečů v červenci 2017?
Standardní SQL
Celkový počet transakcí podle mobilních prohlížečů v červenci 2017 |
---|
#standardSQL |
Starší příkazy SQL
Celkový počet transakcí podle mobilních prohlížečů v červenci 2017 |
---|
SELECT |
Průměrná míra okamžitého opuštění [ dimenze ]?
Skutečná míra okamžitého opuštění je definovaná jako procento návštěv s jedním zobrazením stránky. Níže jsou uvedeny příklady skriptů pro dotaz: Jaká byla skutečná míra okamžitého opuštění podle zdroje návštěvnosti?
Standardní SQL
Míra okamžitého opuštění podle zdroje návštěvnosti v červenci 2017 |
---|
#standardSQL |
Starší příkazy SQL
Míra okamžitého opuštění podle zdroje návštěvnosti v červenci 2017 |
---|
SELECT |
Průměrný počet zobrazení stránky produktu podle typu nakupujícího (zákazníci, kteří uskutečnili vs. neuskutečnili nákup)
Níže jsou uvedeny příklady skriptů pro dotaz: Jaký byl průměrný počet zobrazení stránky produktu u uživatelů, kteří uskutečnili nákup v červenci 2017?
Standardní SQL
Průměrný počet zobrazení stránky produktu u uživatelů, kteří uskutečnili nákup v červenci 2017 |
---|
#standardSQL |
Starší příkazy SQL
Průměrný počet zobrazení stránky produktu u uživatelů, kteří uskutečnili nákup v červenci 2017 |
---|
SELECT |
Níže jsou uvedeny příklady skriptů pro dotaz: Jaký byl průměrný počet zobrazení stránky produktu u uživatelů, kteří neuskutečnili nákup v červenci 2017?
Standardní SQL
Průměrný počet zobrazení stránky produktu u uživatelů, kteří neuskutečnili nákup v červenci 2017 |
---|
#standardSQL |
Starší příkazy SQL
Průměrný počet zobrazení stránky produktu u uživatelů, kteří neuskutečnili nákup v červenci 2017 |
---|
SELECT |
Průměrný počet transakcí podle nakupujícího
Níže jsou uvedeny příklady skriptů pro dotaz: Jaký byl průměrný celkový počet transakcí na jednoho uživatele, který uskutečnil nákup v červenci 2017?
Standardní SQL
Průměrný celkový počet transakcí na jednoho uživatele, který uskutečnil nákup v červenci 2017 |
---|
#standardSQL |
Starší příkazy SQL
Průměrný celkový počet transakcí na jednoho uživatele, který uskutečnil nákup v červenci 2017 |
---|
SELECT |
Průměrná utracená částka na jednu návštěvu
Níže jsou uvedeny příklady skriptů pro dotaz: Jaká je průměrná utracená částka na jednu návštěvu v červenci 2017?
Standardní SQL
Jaká je průměrná utracená částka na jednu návštěvu v červenci 2017 |
---|
#standardSQL |
Starší příkazy SQL
Jaká je průměrná utracená částka na jednu návštěvu v červenci 2017 |
---|
SELECT |
Posloupnost požadavků na server
Níže jsou uvedeny příklady skriptů pro dotaz: Jaká je posloupnost zobrazených stránek?.
Standardní SQL
Posloupnost stránek zobrazených uživateli v červenci 2017 |
---|
#standardSQL |
Starší příkazy SQL
Posloupnost stránek zobrazených uživateli v červenci 2017 |
---|
SELECT |
V tomto dotazu omezíte typy požadavků na server na stránky (PAGES
). Tak se vyhnete zobrazení interakcí událostí nebo transakcí. Každý řádek výstupu představuje zobrazení stránky a je zobrazen ve výchozím pořadí polí v příkazu SELECT
.
Několik vlastních dimenzí na úrovni návštěvy nebo požadavku na server
vlastní dimenze na úrovni požadavku na server |
---|
SELECT fullVisitorId, visitId, hits.hitNumber, hits.time, |
vlastní dimenze na úrovni návštěvy |
---|
SELECT fullVisitorId, visitId, |
V každém dotazu:
Příkaz SELECT
odešle dotaz na příslušná pole dimenze a metriky.
Funkce MAX
:
- Vrátí vlastní dimenzi jako nový sloupec. Pokud chcete vrátit několik vlastních dimenzí jako nové sloupce, můžete tuto funkci zopakovat.
- Příkazy
WITHIN hits
aWITHIN RECORD
vyhodnotí podmínku uvnitř opakovaných polí v BigQuery. - Podmínka uvnitř příkazu
MAX
se vyhodnotí pro každou vlastní dimenzi, ale u každé dimenze, která neníindex=1 (požadavky)
neboindex=2 (návštěvy)
, vrátíNULL
. - Vrátí maximální hodnotu, což je hodnota Vlastní dimenze 1 u požadavků na server nebo Vlastní dimenze 2 u návštěv, protože všechny ostatní hodnoty jsou
NULL
.
Příklady pokročilých dotazů
Když jste se nyní seznámili s jednoduchými dotazy, můžete sestavovat dotazy pomocí pokročilých funkcí, které jsou v nástroji BigQuery k dispozici.
Produkty zakoupené zákazníky, kteří si koupili produkt A (klasický elektronický obchod)
Dále je uveden rámcový skript pro dotaz: Jaké další produkty si zakoupili zákazníci, kteří si koupili produkt A?
produkty zakoupené zákazníkem, který si koupí produkt A (klasický elektronický obchod) |
---|
SELECT hits.item.productName AS other_purchased_products, COUNT(hits.item.productName) AS quantity |
- Na prvním řádku vyberete všechny další produkty zakoupené uživatelem. Agregovaná funkce
COUNT()
vypočítá množství jednotlivých dalších zakoupených položek. Výsledek se pak zobrazí v poli označenémquantity
, s přiřazenou položkou v poli produktu označeném jakoother_purchased_products
. - V šedém dílčím dotazu vyberete pouze unikátní uživatele (
fullVisitorId
), kteří uskutečnili transakce (totals.transactions>=1
) a během transakce si zakoupili produkt A (WHERE hits.item.productName CONTAINS ‚název položky produktu A'
).
Pravidla (příkazy WHERE
a AND
) v dotazu nejvyšší úrovně (zelený) ignorují hodnoty v parametru hits.item.productName
, které jsou null a obsahují produkt A.
Zde je příklad dotazu Pokud si zákazník koupí „kovové stylusy Brighton (sada 4 ks)‟, jaký další produkt(y) si koupil?
produkty koupené zákazníkem, který si 24. června 2013 koupil „kovové stylusy Brighton (sada 4 ks)‟ |
---|
SELECT hits.item.productName AS other_purchased_products, COUNT(hits.item.productName) AS quantity |
V nástroji Dremel/BigQuery se pomocí příkazu WHERE expr IN
spustí příkaz JOIN a použijí se omezení velikosti. Konkrétně velikost pravé strany příkazu JOIN (v tomto případě počet návštěvníků) musí být menší než 8 MB. V nástroji Dremel se to nazývá broadcast JOIN. Jakmile velikost překročí 8 MB, budete potřebovat spustit příkaz shuffled JOIN, což můžete provést pomocí syntaxe JOIN EACH. Naneštěstí to nelze provést pomocí příkazu IN, ale stejný dotaz lze přepsat pomocí příkazu JOIN.
Produkty zakoupené zákazníky, kteří si koupili Produkt A (rozšířený elektronický obchod)
Tento dotaz se podobá předchozímu rámcovému dotazu, ale funguje pro rozšířený elektronický obchod. I on využívá při vznášení dotazu na údaje z různých dní funkci TABLE_DATE_RANGE
.
produkty zakoupené zákazníkem, který si koupí produkt A (rozšířený elektronický obchod) |
---|
SELECT hits.product.productSKU AS other_purchased_products, COUNT(hits.product.productSKU) AS quantity |
Průměrný počet interakcí uživatele před nákupem
Toto je příklad dotazu příkazu JOIN() [...] ON
, který je závislý pouze na datech služby Analytics.
Dále je uveden rámcový skript pro dotaz: Jaký je průměrný počet interakcí uživatele před nákupem?
počet interakcí uživatele před nákupem |
---|
SELECT one.hits.item.productSku AS ProductSku, ( sum_of_hit_number / total_hits ) AS avg_hit_number |
- Na prvním řádku se provede hlavní matematická operace, která zjistí průměrný počet interakcí uživatele na produkt. Tento dotaz pak vytvoří logický součet mezi dvěma dílčími dotazy nazvanými Alias_Name_1 a Alias_Name_2.
- ‚Název_aliasu_1’ vytvoří pole, které pomocí agregované funkce
SUM()
sečte všechna čísla požadavků na server zaznamenaných u příslušného produktu. - ‚Název_aliasu_2’ zjistí pomocí funkce
COUNT()
počet požadavků na server provedených uživateli na daný produkt. - Na posledním řádku je uvedeno společné pole (
hits.item.productSku
), které je společné pro oba soubory dat při logickém součtu.
Zde je příklad dotazu Jaký je průměrný počet interakcí uživatele před nákupem 10. září 2013?
počet interakcí uživatele 10. září 2013 |
---|
SELECT one.hits.item.productSku AS ProductSku, ( sum_of_hit_number / total_hits ) AS avg_hit_number |
Procento prodaných skladových zásob na jeden produkt
Toto je příklad dotazu, který není závislý jen na údajích ze služby Analytics. Sloučením obou souborů dat můžete zjistit chování uživatelů na úrovni větší segmentace. Údaje nepocházející z Analytics lze importovat do nástroje BigQuery, ale mějte na paměti, že díky tomu vzroste váš měsíční poplatek za uchovávání dat.
Dále je uveden rámcový skript pro dotaz: Jaké procento skladových zásob se prodalo na jeden produkt?
procento prodaných skladových zásob na produkt |
---|
SELECT AnalyticsImport.product_data_20130728.productId, ((( one.quantity_sold ) / ( AnalyticsImport.product_data_20130728.productstock + one.quantity_sold )) * 100 ) AS percentage_of_stock_sold |
- Na prvním řádku se vytvoří dvě pole: jedno pole obsahující všechna ID produktů a druhé pole s matematickou operací, která vypočítá procento prodaných skladových zásob na dané ID produktu.
- Protože tento dotaz závisí na dvou datových sadách, je nutné použít funkci
JOIN() ... ON
. Tento příkaz sloučí dva řádky ze dvou souborů dat na základě jejich společného pole. Dva soubory dat v tomto případě jsou[ ‚Imported_DataSet’ ]
a‚Alias_Name’
. [ ‘Imported_DataSet’ ]
představuje údaje nepocházející z Analytics. Jde o soubor dat, který obsahuje pole metriky s údajem, kolik skladových zásob zbývá (Imported DataSet.’stock_left_field’
) a pole dimenze ID produktu (Imported_DataSet.’productId_field’
).‚Alias_Name’
je název přiřazený údajům vráceným šedým dílčím dotazem. Tento dílčí dotaz zjistí celkové množství prodaných položek u daného produktu na základě údajů z Google Analytics.- Poslední řádek zobrazí společné pole obou souborů dat na základě příkazu
ON
, a co oba soubory dat spojuje.
Mnoho proměnných v tomto dotazu má název souboru dat připojený ke svému názvu jako předponu (například Imported_DataSet.’productId_field’, Alias_Name.quantity_sold
). Tato předpona označuje, jaké pole vybíráte, a určuje, k jakému souboru dat dané pole náleží.
Zde je příklad dotazu Jaké je procento prodaných skladových zásob na produkt k 28. červenci 2013?
procento prodaných skladových zásob na produkt k 28. červenci 2013 |
---|
SELECT AnalyticsImport.product_data_20130728.productId, ( ( ( one.quantity_sold ) / ( AnalyticsImport.product_data_20130728.productstock + one.quantity_sold ) ) * 100 ) AS percentage_of_stock_sold |
Ziskovost jednotlivých produktů
Dále je uveden rámcový skript pro dotaz: Jaká je ziskovost jednotlivých produktů?
zisk podle produktu |
---|
SELECT Alias_Name.hits.item.productSku, ( Imported_DataSet.’product profit field’ * Alias_Name.quantity ) AS profit |
- Na prvním řádku je matematická operace, která vypočítá celkový zisk jednotlivých produktů.
- Šedý dílčí dotaz použije údaje ze služby Analytics, která shromažďuje údaje o dosaženém zisku z prodeje produktu.
- Červený dílčí dotaz je poddotaz na data Analytics, který bude sloučen s údaji nepocházejícími z Analytics. Vypočítá množství prodaných položek na produkt.
- Na posledním řádku je pomocí příkazu
ON
upřesněno pole, které je společné pro oba soubory dat. V tomto případě je to číslo ID produktu.
Zde je příklad dotazu Jaká byla ziskovost jednotlivých produktů 28. července 2013?
zisk podle produktu 28. července 2013 |
---|
SELECT two.hits.item.productSku, ((AnalyticsImport.product_data_20130728.productprice-AnalyticsImport.product_data_20130728.productcost)*two.quantity) AS profit |
Zisk se vypočítá z rozdílu mezi prodejní cenou produktu a náklady na jeho výrobu. Tyto údaje jsou uloženy v souboru dat mimo GA.
Skutečná ziskovost jednotlivých produktů (při zohlednění refundací účtu)
Dále je uveden rámcový skript pro dotaz: Jaká je skutečná ziskovost jednotlivých produktů?
skutečný zisk podle produktu |
---|
SELECT Alias_Name.hits.item.productSku, (gross_profit-total_refund_revenue) AS real_profit |
- Toto je velmi podobný dotaz jako: Jaká je ziskovost jednotlivých produktů? Jediné rozdíly jsou v datové sadě nepocházející z Analytics v šedém dílčím dotazu a v matematické operaci na výpočet skutečného zisku na prvním řádku.
- V datové sadě nepocházející z Analytics také počítáte celkovou částku vynaloženou na vracení plateb (ve výrazu
SELECT
červeného poddotazu). - Pak provedete matematickou operaci na prvním řádku, která vypočítá skutečný zisk odečtením příjmu utraceného za refundace od hrubého zisku.
Více informací o dotazu najdete v části o ziskovosti jednotlivých produktů.
Zde je příklad dotazu Jaká byla skutečná ziskovost jednotlivých produktů 28. července 2013?
skutečný zisk podle produktu 28. července 2013 |
---|
SELECT two.hits.item.productSku, (gross_profit-total_refund_revenue) AS real_profit |
Skutečný zisk bere v úvahu ziskovost produktu po zohlednění refundovaných produktů. Postup výpočtu celkového příjmu z refundace za produkt:
celkový příjem z refundace za produkt = ( cena produktu + refundovaná dodací cena produktu ) * množství refundovaných produktů