Táto funkcia je k dispozícii iba v službe Analytics 360, ktorá je súčasťou súpravy služieb Google Marketing Platform. Ďalšie informácie o súprave služieb Google Marketing Platform |
Tento článok obsahuje príklady zostavovania dopytov na údaje v službe Analytics, ktoré exportujete do nástroja BigQuery. Pripravili sme pre vás vzorovú množinu dát, na ktorej môžete testovať dopyty uvedené v tomto článku.
Obsah tohto článku:- Optimalizácia dopytov
- Tipy a osvedčené postupy
- Príklady základných dopytov
- Celková [metrika] na [dimenziu]
- Priemerná miera okamžitých odchodov na [dimenziu]
- Priemerný počet zobrazení stránky výrobku podľa typu zákazníka
- Priemerný počet transakcií na zákazníka
- Priemerná minutá suma peňazí na reláciu
- Sekvencia prístupov (analýza cesty)
- Viaceré vlastné dimenzie na úrovni prístupu alebo relácie
- Príklady pokročilých dopytov
- Výrobky zakúpené zákazníkmi, ktorí si zakúpili výrobok A (klasický elektronický obchod)
- Výrobky zakúpené zákazníkmi, ktorí si zakúpili výrobky A (rozšírený elektronický obchod)
- Priemerný počet interakcií používateľa pred nákupom
- Percento predaných zásob na výrobok
- Ziskovosť jednotlivých výrobkov
- Skutočná ziskovosť jednotlivých výrobkov
Optimalizácia dopytov
Každý spustený dopyt sa započítava do vášho mesačného povoleného limitu spracúvania údajov. Ak vyberiete doplňujúce polia, zvýši sa množstvo spracúvaných údajov a zo svojho mesačného limitu spotrebujete viac, než je nutné. Optimalizované dopyty využívajú mesačný povolený limit spracúvania údajov účinnejšie.
Výber len tých informácií, ktoré sú potrebné
Pri zostavovaní dopytu vyberte v dopyte typu SELECT iba relevantné polia. Nevolaním nadbytočných polí sa znižuje množstvo údajov a čas potrebný na spracovanie dopytu.
Príklad: Nepoužívajte operátor zástupného znaku.
Chybný tvar: používanie operátora zástupného znaku |
---|
SELECT * |
Lepší tvar: zrýchlené spracovanie pomocou názvov polí |
---|
SELECT pole1, pole2 |
Povolenie ukladania do vyrovnávacej pamäte
Podľa možností nepoužívajte funkcie ako polia. Funkcie (napríklad NOW()
alebo TODAY()
) vracajú premenlivé výsledky, ktoré zabraňujú ukladaniu dopytov do vyrovnávacej pamäte, teda ich rýchlejšiemu získaniu. Namiesto nich použite konkrétne časy a dátumy.
Používanie dočasných tabuliek pre často používané subdopyty
Ak zistíte, že opakovane používate konkrétny dopyt ako subdopyt, tento dopyt môžete uložiť ako dočasnú tabuľku. Kliknite na tlačidlo Uložiť ako tabuľku nad výsledkami dopytu. Na túto tabuľku potom môžete odkázať v sekcii dopytu FROM
, čím sa zníži množstvo spracúvaných údajov a čas potrebný na spracovanie.
Použitie dočasnej tabuľky |
---|
SELECT pole1, pole2 |
Ladenie dopytu
BigQuery ladí váš kód už počas jeho vytvárania. V okne kompozície je ladenie znázornené hneď pod dopytom. Ladenie je dostupné aj prostredníctvom rozhrania API pomocou príznaku dryRun.
Platné dopyty majú zelený indikátor. Kliknutím naň sa zobrazí množstvo údajov spracúvaných dopytom. Táto funkcia umožňuje optimalizovať údaje ešte pred spustením dopytu, aby sa zabránilo nadbytočnému spracúvaniu údajov.
Neplatné dopyty majú červený indikátor. Kliknutím naň sa zobrazia informácie o chybe, a následne sa vyhľadá riadok a stĺpec, kde sa chyba vyskytuje. V príklade uvedenom nižšie je výraz GROUP BY prázdny a chyba je presne vymedzená.
Tipy a osvedčené postupy
Použitie vzorovej množiny údajov
V nasledujúcich príkladoch sa používa vzorová množina údajov služby Google Analytics.
Ak chcete dopyty používať s vlastnými dátami, jednoducho nahraďte názvy projektov a množín dát v príkladoch názvami vlastných projektov a množín dát.
Použitie štandardného alebo starého dialektu SQL
BigQuery podporuje dva dialekty SQL:
Migrácia na štandardný dialekt SQL vysvetľuje rozdiely medzi týmito dvoma dialektmi.
Štandardný dialekt SQL je v súčasnosti preferovaným dialektom jazyka SQL pre dopyty na údaje uložené v nástroji BigQuery.
Informácie o tom, ako povoliť štandardný dialekt SQL v používateľskom rozhraní nástroja BigQuery, pomocou príkazov CLI, rozhrania API alebo ľubovoľného iného rozhrania, nájdete v článku Povolenie štandardného dialektu SQL.
Najjednoduchšie začnete tak, že navrchu svojich dopytov v štandardnom dialekte SQL uvediete komentár standardSQL, ako je uvedené v nasledujúcich príkladoch.
V prípade starého dialektu SQL sa údaje služby Google Analytics 360 každý deň odovzdávajú do novej tabuľky. Ak chcete vytvárať dopyty na viaceré tabuľky naraz, môžete názvy tabuliek oddeliť čiarkami, použiť funkciu zástupného znaku tabuľky TABLE_DATE_RANGE
alebo viaceré funkcie TABLE_DATE_RANGE
oddelené čiarkou tak, ako je to uvedené v nasledujúcich príkladoch.
Dopyt vo viacerých tabuľkách
Nasledujúce príklady znázorňujú dopyty v štandardnom dialekte SQL a starom dialekte SQL spustené nad rovnakými dátami.
3 dni
Štandardný dialekt SQL
Tri dni pomocou príkazu UNION ALL |
---|
#standardSQL |
Starý dialekt SQL
Tri dni použitím názvov tabuliek oddelených čiarkou |
---|
SELECT |
Posledných 1 095 dní
Štandardný dialekt SQL
Posledných 1 095 dní použitím výrazu _TABLE_SUFFIX |
---|
#standardSQL |
Starý dialekt SQL
Posledných 1 095 dní použitím funkcie TABLE_DATE_RANGE |
---|
SELECT |
Posledných 36 mesiacov
Štandardný dialekt SQL
Posledných 36 mesiacov použitím výrazu _TABLE_SUFFIX |
---|
#standardSQL |
Starý dialekt SQL
Posledných 36 mesiacov použitím funkcie TABLE_DATE_RANGE |
---|
SELECT |
Posledné tri roky
Štandardný dialekt SQL
Posledné tri roky použitím výrazu _TABLE_SUFFIX |
---|
#standardSQL |
Starý dialekt SQL
Posledné tri roky použitím funkcie TABLE_DATE_RANGE |
---|
SELECT |
Konkrétne obdobie
Štandardný dialekt SQL
Konkrétne obdobie použitím výrazu _TABLE_SUFFIX |
---|
#standardSQL |
Starý dialekt SQL
Konkrétne obdobie použitím funkcie TABLE_DATE_RANGE |
---|
SELECT |
Posledné tri roky vrátane dnešných údajov (počas dňa)
Štandardný dialekt SQL
Posledné 3 roky vrátane dnešných dát (počas dňa) použitím príkazu UNION ALL a výrazu _TABLE_SUFFIX |
---|
Upozornenie: Tento príklad dopytu nebude fungovať s verejnou množinou údajov služby Google Analytics, pretože v súčasnosti nie je k dispozícii tabuľka denných údajov. |
#standardSQL |
Starý dialekt SQL
Posledné 3 roky vrátane dnešných dát (počas dňa) použitím viacerých funkcií TABLE_DATE_RANGE |
---|
Upozornenie: Tento príklad dopytu nebude fungovať s verejnou množinou údajov služby Google Analytics, pretože v súčasnosti nie je k dispozícii tabuľka denných údajov. |
SELECT |
Príklady základných dopytov
Táto sekcia vysvetľuje, ako zostavovať základné dopyty pomocou metrík a dimenzií zo vzorových údajov služby Analytics.
Celková [metrika] na [dimenziu]?
Nižšie uvádzame ukážky skriptov pre otázku Aký je celkový počet transakcií vygenerovaných na prehliadač zariadenia v júli 2017?
Štandardný dialekt SQL
Celkový počet transakcií na prehliadač v zariadení v júli 2017 |
---|
#standardSQL |
Starý dialekt SQL
Celkový počet transakcií na prehliadač v zariadení v júli 2017 |
---|
SELECT |
Aká je priemerná miera okamžitých odchodov na [ dimenziu ]?
Skutočná miera okamžitých odchodov je definovaná ako percento návštev s jedným zobrazením stránky. Nižšie uvádzame príklady skriptov pre otázku Aká bola skutočná miera okamžitých odchodov na zdroj návštevnosti?
Štandardný dialekt SQL
Miera okamžitých odchodov na zdroj návštevnosti v júli 2017 |
---|
#standardSQL |
Starý dialekt SQL
Miera okamžitých odchodov na zdroj návštevnosti v júli 2017 |
---|
SELECT |
Priemerný počet zobrazení stránky výrobku podľa typu zákazníka (zákazníci v porovnaní s nekupujúcimi)
Nižšie nájdete príklady skriptov pre otázku Aký bol priemerný počet zobrazení stránky produktu pre používateľov, ktorí uskutočnili nákup v júli 2017?
Štandardný dialekt SQL
Priemerný počet zobrazení stránky výrobku používateľmi, ktorí uskutočnili nákup v júli 2017 |
---|
#standardSQL |
Starý dialekt SQL
Priemerný počet zobrazení stránky výrobku používateľmi, ktorí uskutočnili nákup v júli 2017 |
---|
SELECT |
Nižšie uvádzame príklady skriptov pre otázku Aký bol priemerný počet zobrazení stránky výrobku používateľmi, ktorí neuskutočnili nákup v júli 2017?
Štandardný dialekt SQL
Priemerný počet zobrazení stránky výrobku používateľmi, ktorí neuskutočnili nákup v júli 2017 |
---|
#standardSQL |
Starý dialekt SQL
Priemerný počet zobrazení stránky výrobku používateľmi, ktorí neuskutočnili nákup v júli 2017 |
---|
SELECT |
Priemerný počet transakcií na zákazníka
Nižšie uvádzame príklady skriptov pre otázku Aký bol celkový priemerný počet transakcií na používateľa, ktorý uskutočnil nákup v júli 2017?
Štandardný dialekt SQL
Priemerný počet transakcií na používateľa, ktorý uskutočnil nákup v júli 2017 |
---|
#standardSQL |
Starý dialekt SQL
Priemerný počet transakcií na používateľa, ktorý uskutočnil nákup v júli 2017 |
---|
SELECT |
Priemerná minutá suma peňazí na reláciu
Nižšie nájdete príklady skriptov pre otázku Aká je priemerná minutá suma peňazí na reláciu v júli 2017?
Štandardný dialekt SQL
Priemerná minutá suma peňazí na reláciu v júli 2017 |
---|
#standardSQL |
Starý dialekt SQL
Priemerná minutá suma peňazí na reláciu v júli 2017 |
---|
SELECT |
Sekvencia prístupov
Nižšie uvádzame príklady skriptov pre otázku Aká je sekvencia zobrazených stránok?
Štandardný dialekt SQL
Sekvencia zobrazených stránok používateľmi v júli 2017 |
---|
#standardSQL |
Starý dialekt SQL
Sekvencia zobrazených stránok používateľmi v júli 2017 |
---|
SELECT |
V tomto dopyte obmedzíte typ prístupov na typ PAGE
, aby sa nezobrazovali interakcie udalostí alebo transakcií. Každý riadok výstupu predstavuje zobrazenie stránky a výstup sa zobrazuje s predvoleným zoradením polí vo výraze SELECT
.
Viaceré vlastné dimenzie na úrovni prístupu alebo relácie
Vlastná dimenzia na úrovni prístupu |
---|
SELECT fullVisitorId, visitId, hits.hitNumber, hits.time, |
Vlastná dimenzia na úrovni relácie |
---|
SELECT fullVisitorId, visitId, |
V každom dopyte:
Výrazom dopytu SELECT
sa získajú relevantné polia dimenzie a metriky.
Funkcia MAX
:
- Vráti vlastnú dimenziu ako nový stĺpec. Opakovaným použitím tejto funkcie môžete získať viaceré vlastné dimenzie ako nové stĺpce.
- Výrazy
WITHIN hits
aWITHIN RECORD
vyhodnocujú podmienku vnútri opakujúcich sa polí v nástroji BigQuery. - Podmienka vnútri funkcie
MAX
sa vyhodnotí pre každú vlastnú dimenziu, no v prípade tých, kde neplatíindex=1 (prístupy)
aleboindex=2 (relácie)
, vráti hodnotuNULL
. - Vráti maximálnu hodnotu, ktorá je hodnotou vlastnej dimenzie 1 pre prístupy alebo vlastnej dimenzie 2 pre relácie, keďže nie všetky hodnoty sú
NULL
.
Príklady pokročilých dopytov
Keď už viete zostavovať jednoduché dopyty, ukážeme si vytváranie dopytov pomocou pokročilých funkcií a funkcií dostupných v nástroji BigQuery.
Produkty zakúpené zákazníkmi, ktorí si zakúpili produkt A (Klasický elektronický obchod)
Nižšie je uvedená kostra skriptu pre otázku Aké ďalšie produkty si zakúpili zákazníci, ktorí si zakúpili produkt A?
Výrobky zakúpené zákazníkom, ktorý si zakúpil výrobok A (klasický elektronický obchod) |
---|
SELECT hits.item.productName AS other_purchased_products, COUNT(hits.item.productName) AS quantity |
- V prvom riadku vyberiete všetky ostatné položky zakúpené používateľom a agregačná funkcia
COUNT()
vypočíta množstvo každej ďalšej zakúpenej položky. Výsledok sa potom zobrazí v poli označenomquantity
s priradenou položkou v poli výrobku označenomother_purchased_products
. - V sivom čiastkovom dopyte vyberiete iba jedinečných používateľov (
fullVisitorId
), ktorí uskutočnili transakcie (totals.transactions>=1
) a počas transakcie si zakúpili výrobok A (WHERE hits.item.productName CONTAINS 'názov položky výrobku A'
).
Pravidlá (výrazy WHERE
a AND
) v dopyte na najvyššej úrovni (text so zelenou farbou) vylúčia tie hodnoty poľa hits.item.productName
, ktoré sú null a obsahujú výrobok A.
Tu je príklad dopytu Ak si zákazník zakúpi metalické perá Brighton – sada 4 ks, aké ďalšie produkty si tiež zakúpil?
Výrobky zakúpené zákazníkom, ktorý si zakúpil výrobok Metalické perá Brighton (súprava 4 ks) 24. júna 2013 |
---|
SELECT hits.item.productName AS other_purchased_products, COUNT(hits.item.productName) AS quantity |
V nástroji Dremel/BigQuery sa použitím výrazu WHERE expr IN
spustí príkaz JOIN a uplatní sa obmedzenie veľkosti. Konkrétne veľkosť pravej strany príkazu JOIN (v tomto prípade počet návštevníkov) musí byť menšia ako 8 MB. V nástroji Dremel sa tento príkaz nazýva broadcast JOIN. Keď veľkosť prekročí 8 MB, musíte spustiť príkaz shuffled JOIN, čo môžete vykonať pomocou syntaxe JOIN EACH. Táto akcia sa nedá vykonať pomocou výrazu IN, no ten istý dopyt môžete prepísať použitím príkazu JOIN.
Produkty zakúpené zákazníkmi, ktorí si zakúpili produkt A (Rozšírený elektronický obchod)
Podobá sa to na predošlú kostru dopytu, ale funguje v Rozšírenom elektronickom obchode. Používa aj funkciu TABLE_DATE_RANGE
pri odosielaní dopytov na údaje za viacero dní.
Výrobky zakúpené zákazníkom, ktorý si zakúpil výrobok A (rozšírený elektronický obchod) |
---|
SELECT hits.product.productSKU AS other_purchased_products, COUNT(hits.product.productSKU) AS quantity |
Priemerný počet interakcií používateľa pred nákupom
Tu je príklad dopytu s použitím príkazu JOIN() […] ON
, ktorý závisí iba od údajov služby Analytics.
Nižšie je kostra skriptu pre otázku Aký je priemerný počet interakcií používateľov pred nákupom?
Počet interakcií používateľov pred nákupom |
---|
SELECT one.hits.item.productSku AS ProductSku, ( sum_of_hit_number / total_hits ) AS avg_hit_number |
- V prvom riadku sa vykoná hlavná matematická operácia, ktorá vyhľadá priemerný počet interakcií používateľov na výrobok, a tento dopyt vytvorí spojenie medzi dvoma čiastkovými dopytmi pomenovanými Alias_Name_1 a Alias_Name_2.
- Čiastkový dopyt Alias_Name_1 vytvorí pole, ktoré pomocou agregačnej funkcie
SUM()
sčíta všetky počty prístupov zaznamenaných pre daný výrobok. - Čiastkový dopyt Alias_Name_2 pomocou funkcie
COUNT()
vyhľadá počet prístupov na výrobok vygenerovaných používateľmi. - Posledný riadok obsahuje spoločné pole (
hits.item.productSku
), ktoré v spojení zdieľajú obe množiny údajov.
Tu je príklad dopytu Aký je priemerný počet interakcií používateľov pred nákupom dňa 10. septembra 2013?
Počet interakcií používateľov pred nákupom 10. septembra 2013 |
---|
SELECT one.hits.item.productSku AS ProductSku, ( sum_of_hit_number / total_hits ) AS avg_hit_number |
Percento predaných zásob na výrobok
Tu je príklad dopytu, ktorý nezávisí iba od údajov služby Analytics, no závisí aj od údajov mimo služby Analytics. Spojenie oboch množín údajov vám pomôže pochopiť správanie používateľov na viac segmentovanej úrovni. Do nástroja BigQuery môžete importovať aj údaje mimo služby Analytics. Pripomíname však, že import údajov vám zaúčtujeme do mesačných nákladov na úložisko údajov.
Nižšie je uvedená kostra skriptu pre otázku Aké je percento predaných zásob na produkt?
Percento predaných zásob na výrobok |
---|
SELECT AnalyticsImport.product_data_20130728.productId, ((( one.quantity_sold ) / ( AnalyticsImport.product_data_20130728.productstock + one.quantity_sold )) * 100 ) AS percentage_of_stock_sold |
- Prvý riadok vypíše dve polia – jedno pole obsahuje všetky identifikátory výrobkov a druhé pole je matematická operácia, ktorou sa vypočíta percento predaných zásob výrobku s daným identifikátorom.
- Keďže tento dopyt pracuje nad dvoma množinami údajov, musíte použiť funkciu
JOIN() … ON
. Tento príkaz spojí riadky z dvoch množín údajov na základe ich spoločného poľa. V tomto prípade ide o množiny údajov[ 'Imported_DataSet' ]
a'Alias_Name'
. Množina [ ‘Imported_DataSet’ ]
obsahuje údaje mimo služby Analytics. Táto množina údajov obsahuje pole metriky, ktoré predstavuje zostávajúce množstvo tovaru (Imported DataSet.’stock_left_field’
) a pole dimenzie identifikátora výrobku (Imported_DataSet.’productId_field’
).- Názov
‘Alias_Name’
je priradený k údajom vráteným sivým čiastkovým dopytom. Tento čiastkový dopyt vyhľadá celkové množstvo predaných položiek na výrobok v údajoch služby Analytics. - Posledný riadok obsahuje výraz
ON
, ktorý určuje spoločné pole oboch množín údajov. Toto pole zároveň znázorňuje, kde boli obe množiny údajov spojené.
Mnohé premenné v tomto dopyte obsahujú názov množiny údajov na začiatku svojho názvu (napr. Imported_DataSet.’productId_field’, Alias_Name.quantity_sold
). Cieľom je znázorniť pole, ktoré vyberáte, a ku ktorej množine údajov patrí.
Tu je príklad dopytu Aké je percento predaných zásob na produkt dňa 28. júla 2013?
Percento predaných zásob na výrobok 28. júla 2013 |
---|
SELECT AnalyticsImport.product_data_20130728.productId, ( ( ( one.quantity_sold ) / ( AnalyticsImport.product_data_20130728.productstock + one.quantity_sold ) ) * 100 ) AS percentage_of_stock_sold |
Ziskovosť jednotlivých výrobkov
Nižšie je kostra skriptu pre otázku Aká je ziskovosť každého produktu?
Zisk podľa výrobku |
---|
SELECT Alias_Name.hits.item.productSku, ( Imported_DataSet.’product profit field’ * Alias_Name.quantity ) AS profit |
- Prvý riadok obsahuje matematickú operáciu na výpočet celkového dosiahnutého zisku pre jednotlivé výrobky.
- Sivý subdopyt používa údaje mimo služby Analytics, ktorým sa zhromaždia údaje o výške dosiahnutého zisku pri predaní daného produktu.
- Červený subdopyt je subdopyt údajov služby Analytics, ktorý sa spojí s údajmi mimo služby Analytics. Tento dopyt vypočíta množstvo predaných položiek na produkt.
- Posledný riadok používa výraz
ON
, ktorým sa určí pole zdieľané medzi oboma množinami údajov. V tomto prípade ide o identifikátor produktu.
Tu je príklad dopytu Aká bola ziskovosť každého produktu dňa 28. júla 2013?
Zisk podľa výrobku 28. júla 2013 |
---|
SELECT two.hits.item.productSku, ((AnalyticsImport.product_data_20130728.productprice-AnalyticsImport.product_data_20130728.productcost)*two.quantity) AS profit |
Zisk sa vypočíta ako rozdiel medzi predajnou cenou výrobku a nákladmi na jeho výrobu. Tieto informácie sú uložené v množine údajov mimo služby GA.
Skutočná ziskovosť každého produktu (pri zohľadnení vrátení platieb)
Nižšie je kostra skriptu pre otázku Aká je skutočná ziskovosť každého produktu?
Skutočný zisk podľa výrobku |
---|
SELECT Alias_Name.hits.item.productSku, (gross_profit-total_refund_revenue) AS real_profit |
- Tento dopyt sa veľmi podobá dopytu Aká je ziskovosť jednotlivých výrobkov?. Jediné rozdiely sa nachádzajú v množine údajov mimo služby Analytics v sivom subdopyte a v matematickej operácii, ktorá počíta celkový zisk v prvom riadku.
- V množine údajov nepochádzajúcich zo služby Analytics počítate aj celkovú sumu vrátených peňazí (vo výraze
SELECT
červeného čiastkového dopytu). - Následne sa v prvom riadku vykoná matematická operácia, ktorá vypočíta skutočný zisk tak, že od hrubého zisku odpočíta výnosy spotrebované na vrátenie peňazí.
Ďalšie informácie o dopyte nájdete v sekcii o ziskovosti jednotlivých výrobkov.
Tu je príklad dopytu Aká bola skutočná ziskovosť každého produktu dňa 28. júla 2013?
Skutočný zisk podľa výrobku 28. júla 2013 |
---|
SELECT two.hits.item.productSku, (gross_profit-total_refund_revenue) AS real_profit |
Pri skutočnom zisku sa zohľadní ziskovosť výrobku po zohľadnení výrobkov, za ktoré boli vrátené peniaze. Celkové výnosy z vrátených platieb za konkrétny produkt vypočítate takto:
Celkové výnosy z vrátených platieb za výrobok = ( cena výrobku + cena za doručenie výrobku pri vrátení platby) * množstvo výrobkov, za ktoré boli vrátené peniaze