Denne funksjonen er bare tilgjengelig i Analytics 360, som er en del av Google Marketing Platform. Finn ut mer om Google Marketing Platform. |
I denne artikkelen finner du eksempler på hvordan du kan lage søk ved hjelp av Analytics-dataene du eksporterer til BigQuery. Vi har gjort tilgjengelig et eksempeldatasett, slik at du kan øve deg med søkene i denne artikkelen.
I denne artikkelen:- Optimalisering av søk
- Tips og anbefalte fremgangsmåter
- Eksempler på enkle søk
- Samlet antall [beregninger] per [dimensjon]
- Gjennomsnittlig fluktfrekvens per [dimensjon]
- Gjennomsnittlig antall sidevisninger for produkt etter kjøpertype
- Gjennomsnittlig antall transaksjoner per bruker som gjennomførte et kjøp
- Gjennomsnittlig beløp som ble brukt per økt
- Treffsekvens (analysering av baner)
- Flere egendefinerte dimensjoner på treff- eller øktnivå
- Eksempler på avanserte søk
- Produkter kjøpt av kunder som kjøpte Produkt A (klassisk netthandel)
- Produkter kjøpt av kunder som kjøpte produkt A (utvidet netthandel)
- Gjennomsnittlig antall brukerinteraksjoner før et kjøp
- Prosentandelen av varebeholdningen solgt for hvert produkt
- Fortjenesten for hvert produkt
- Reell fortjeneste for hvert produkt
Optimalisering av søk
Alle søkene du kjører, bidrar til den månedlige datamengden som blir behandlet. Hvis du velger irrelevante felt, øker du datamengden som må behandles. Da bruker du mer av den månedlige kvoten din enn nødvendig. Når du bruker optimaliserte søk, bruker du den månedlige databehandlingskvoten på en mer effektiv måte.
Finn ut mer om prissetting.
Velg bare det du trenger
Når du formulerer et søk, velger du de relevante feltene i SELECT-utsagnet. Hvis du ikke kaller irrelevante felt, reduserer du datamengden – og tiden det tar å behandle søket.
Eksempel: Unngå å bruke jokertegnoperatoren
Ugunstig valg: bruk av jokertegnoperatoren |
---|
SELECT * |
Gunstigere valg: bruk av feltnavn for å unngå unødvendig behandling |
---|
SELECT felt1, felt2 |
Tillat bufring
Når det er mulig, bør du unngå å bruke funksjoner som felt. Funksjoner (f.eks. NOW()
eller TODAY()
) returnerer variable resultater. Da blir ikke søkene bufret, og de blir returnert raskere. Bruk i stedet spesifikke klokkeslett og datoer.
Bruk mellomtabeller for delsøk som brukes mye
Hvis du ser at du ofte bruker et bestemt søk som et delsøk, kan du lagre søket som en mellomtabell ved å klikke på Save as Table (Lagre som tabell) ovenfor søkeresultatene. Deretter kan du henvise til tabellen i FROM
-delen av søket ditt. Slik reduserer du både datamengden som må behandles, og behandlingstiden.
Bruk av mellomtabeller |
---|
SELECT felt1, felt2 |
Feilsøking
Koden din blir feilsøkt i BigQuery mens du lager den. Feilsøkingen blir angitt like nedenfor søket i inndatavinduet. Feilsøking er også tilgjengelig via API-et med dryRun-flagg.
Gyldige søk inneholder en grønn indikator du kan klikke på for å se hvor store datamengder som blir behandlet av søket. Med denne funksjonen har du muligheten til å optimalisere dataene dine før du kjører søket, slik at du kan unngå å behandle unødig store datamengder.
Ugyldige søk inneholder en rød indikator du kan klikke på for å se informasjon om feilen. På den måten kan du finne ut hvilken linje og kolonne feilen har oppstått i. I eksempelet nedenfor er GROUP BY-utsagnet tomt, og feilen er identifisert.
Tips og anbefalte fremgangsmåter
Ved bruk av eksempeldatasettet
Eksempeldatasettet for Google Analytics er brukt i eksemplene nedenfor.
Du kan bruke søkene på dine egne data ved å erstatte prosjekt- og datasettnavnene i eksemplene med dine egne prosjekt- og datasettnavn.
Ved bruk av standard SQL kontra en eldre versjon av SQL
BigQuery har støtte for to SQL-dialekter:
I artikkelen om overgang til standard SQL forklarer vi forskjellene mellom de to dialektene.
Standard SQL er nå den foretrukne SQL-dialekten for søk etter data som er lagret i BigQuery.
I artikkelen om aktivering av standard SQL finner du informasjon om hvordan du slår på standard SQL i BigQuery-, CLI- eller API-grensesnittet eller andre grensesnitt.
Den enkleste måten å komme i gang på er ved å ta med kommentaren «standardSQL» øverst i søkene dine med standard SQL, slik du ser i eksemplene nedenfor.
Med søk med den eldre versjonen av SQL sendes Google Analytics 360-dataene til en ny tabell hver dag. For å søke i flere tabeller samtidig kan du bruke komma som skilletegn mellom tabellnavnene, bruke TABLE_DATE_RANGE
-jokertegnfunksjonen for tabeller eller bruke TABLE_DATE_RANGE
-funksjoner med komma som skilletegn, som i eksemplene nedenfor.
Søk i flere tabeller
I eksemplene nedenfor kan du se søk med standard SQL og en eldre versjon av SQL for de samme dataene.
Tre dager
Standard SQL
Tre dager ved hjelp av UNION ALL |
---|
#standardSQL |
Eldre SQL
Tre dager ved hjelp av kommadelte tabellnavn |
---|
SELECT |
Siste 1095 dager
Standard SQL
Siste 1095 dager ved hjelp av _TABLE_SUFFIX |
---|
#standardSQL |
Eldre SQL
Siste 1095 dager ved hjelp av TABLE_DATE_RANGE |
---|
SELECT |
Siste 36 måneder
Standard SQL
Siste 36 måneder ved bruk av _TABLE_SUFFIX |
---|
#standardSQL |
Eldre SQL
Siste 36 måneder ved hjelp av TABLE_DATE_RANGE |
---|
SELECT |
Siste 3 år
Standard SQL
Siste tre år ved hjelp av _TABLE_SUFFIX |
---|
#standardSQL |
Eldre SQL
Siste tre år ved hjelp av TABLE_DATE_RANGE |
---|
SELECT |
Spesifikk datoperiode
Standard SQL
Spesifikk datoperiode ved hjelp av _TABLE_SUFFIX |
---|
#standardSQL |
Eldre SQL
Spesifikk datoperiode ved hjelp av TABLE_DATE_RANGE |
---|
SELECT |
Siste tre år pluss dagens data (intradag)
Standard SQL
Siste tre år pluss dagens data (intradag) ved hjelp av UNION ALL og _TABLE_SUFFIX |
---|
Merk: Dette eksempelsøket fungerer ikke med det offentlige datasettet for Google Analytics, fordi det for tiden ikke finnes noen tabell med data fra dagens dato (intradag-data). |
#standardSQL |
Eldre SQL
Siste tre år pluss dagens data (intradag) ved bruk av flere TABLE_DATE_RANGE |
---|
Merk: Dette eksempelsøket fungerer ikke med det offentlige datasettet for Google Analytics, fordi det for tiden ikke finnes noen tabell med data fra dagens dato (intradag-data). |
SELECT |
Eksempler på enkle søk
I denne delen finner du informasjon om hvordan du kan lage enkle søk ved hjelp av beregninger og dimensjoner fra eksempeldata fra Google Analytics.
Samlet antall [beregninger] per [dimensjon]?
Nedenfor finner du skripteksempler for følgende spørsmål: Hvor mange transaksjoner ble generert per enhetsnettleser totalt i juli 2017?
Standard SQL
Totalt antall transaksjoner per enhetsnettleser i juli 2017 |
---|
#standardSQL |
Eldre SQL
Totalt antall transaksjoner per enhetsnettleser i juli 2017 |
---|
SELECT |
Hva er den gjennomsnittlige fluktfrekvensen per [dimensjon]?
Den virkelige fluktfrekvensen er angitt som prosentandelen av besøk som består av en enkelt sidevisning. Nedenfor ser du skripteksempler for følgende spørsmål: Hva var den virkelige fluktfrekvensen per trafikkilde?
Standard SQL
Fluktfrekvens per trafikkilde i juli 2017 |
---|
#standardSQL |
Eldre SQL
Fluktfrekvens per trafikkilde i juli 2017 |
---|
SELECT |
Gjennomsnittlig antall sidevisninger for produkt etter kjøpertype (brukerne som kjøper noe, kontra brukerne som ikke kjøper noe)
Nedenfor ser du skripteksempler for følgende spørsmål: Hva var det gjennomsnittlige antallet sidevisninger for produkter for brukerne som gjennomførte et kjøp i juli 2017?
Standard SQL
Gjennomsnittlig antall sidevisninger for produkter for brukerne som gjennomførte et kjøp i juli 2017 |
---|
#standardSQL |
Eldre SQL
Gjennomsnittlig antall sidevisninger for produkter for brukerne som gjennomførte et kjøp i juli 2017 |
---|
SELECT |
Nedenfor ser du skripteksempler for følgende spørsmål: Hva var det gjennomsnittlige antallet sidevisninger for produkter for brukerne som ikke gjennomførte et kjøp i juli 2017?
Standard SQL
Gjennomsnittlig antall sidevisninger for produkter for brukerne som ikke gjennomførte et kjøp i juli 2017 |
---|
#standardSQL |
Eldre SQL
Gjennomsnittlig antall sidevisninger for produkter for brukerne som ikke gjennomførte et kjøp i juli 2017 |
---|
SELECT |
Gjennomsnittlig antall transaksjoner per bruker som gjennomførte et kjøp
Nedenfor ser du skripteksempler for følgende spørsmål: Hva var det gjennomsnittlige antallet transaksjoner per bruker som gjennomførte et kjøp i juli 2017?
Standard SQL
Gjennomsnittlig antall transaksjoner per bruker som gjennomførte et kjøp i juli 2017 |
---|
#standardSQL |
Eldre SQL
Gjennomsnittlig antall transaksjoner per bruker som gjennomførte et kjøp i juli 2017 |
---|
SELECT |
Gjennomsnittlig beløp som ble brukt per økt
Nedenfor ser du skripteksempler for følgende spørsmål: Hva er det gjennomsnittlige beløpet som ble brukt per økt i juli 2017?
Standard SQL
Gjennomsnittlig beløp som ble brukt per økt i juli 2017 |
---|
#standardSQL |
Eldre SQL
Gjennomsnittlig beløp som ble brukt per økt i juli 2017 |
---|
SELECT |
Treffsekvens
Nedenfor finner du skripteksempler for følgende spørsmål: Hvilken rekkefølge ble sidene besøkt i?
Standard SQL
Rekkefølgen brukerne besøkte sidene i, i juli 2017 |
---|
#standardSQL |
Eldre SQL
Rekkefølgen brukerne besøkte sidene i, i juli 2017 |
---|
SELECT |
I dette søket begrenser du trefftypene til PAGES
for at du skal slippe å se hendelses- eller transaksjonsinteraksjoner. Hver enkelt linje i resultatene representerer en sidevisning, og blir vist i standardrekkefølgen for feltene i SELECT
-setningen.
Flere egendefinerte dimensjoner på treff- eller øktnivå
Egendefinert dimensjon på treffnivå |
---|
SELECT fullVisitorId, visitId, hits.hitNumber, hits.time, |
Egendefinert dimensjon på øktnivå |
---|
SELECT fullVisitorId, visitId, |
I hvert søk:
SELECT
-setningen søker etter de aktuelle dimensjons- og beregningsfeltene.
MAX
-funksjonen:
- Returnerer den egendefinerte dimensjonen som en ny kolonne. Du kan gjenta funksjonen for at flere egendefinerte dimensjoner skal returneres som nye kolonner.
WITHIN-treff
ogWITHIN RECORD
evaluerer vilkåret i gjentatte felt i BigQuery.- Vilkåret i
MAX
blir evaluert for hver egendefinerte dimensjon, men det returneresNULL
for alle dimensjoner som ikke er av typenindex=1 (hits)
ellerindex=2 (sessions)
. - Returnerer maksimumsverdien. Dette er verdien for den egendefinerte dimensjonen 1 for treff eller den egendefinerte dimensjonen 2 for økter ettersom alle de andre verdiene er
NULL
.
Eksempler på avanserte søk
Nå som du har lært litt om enkle søk, kan du lage søk ved hjelp av de avanserte funksjonene som er tilgjengelige i BigQuery.
Produkter kjøpt av kunder som kjøpte Produkt A (klassisk netthandel)
Nedenfor ser du et enkelt skript for følgende søk: Hvilke andre produkter kjøpte kundene som kjøpte produkt A?
Produkter kjøpt av en kunde som kjøpte produkt A (klassisk netthandel) |
---|
SELECT hits.item.productName AS other_purchased_products, COUNT(hits.item.productName) AS quantity |
- I den første linjen velger du alle de andre varene en bruker har kjøpt, og samlefunksjonen
COUNT()
brukes for å beregne antallet av de forskjellige andre varene som er kjøpt. Resultatene blir deretter vist i et felt kaltquantity
, med tilhørende vare i produktfeltet kaltother_purchased_products
. - I den grå delsøket velger du bare de unike brukerne (
fullVisitorId
) som har gjennomført transaksjoner (totals.transactions>=1
), og som har kjøpt produkt A under en transaksjon (WHERE hits.item.productName CONTAINS 'Product Item Name A'
).
Verdiene i hits.item.productName
som er null og inneholder produkt A, blir ignorert av reglene (WHERE
- og AND
-setninger) i søket på øverste nivå (grønt).
Nedenfor ser du et enkelt skript for følgende søk: Hvis en kunde har kjøpt Brighton metallpenner – fire stk, hvilke andre produkter kjøpte kunden samtidig?
Produkter kjøpt av en kunde som kjøpte Brighton metallpenner (fire stk.) 24. juni 2013 |
---|
SELECT hits.item.productName AS other_purchased_products, COUNT(hits.item.productName) AS quantity |
I Dremel/BigQuery fører bruk av WHERE expr IN
til at JOIN brukes, og dermed gjelder størrelsesbegrensninger. Helt konkret må størrelsen på høyre side av JOIN (i dette tilfellet antallet besøkende) være mindre enn 8 MB. I Dremel kalles dette et broadcast JOIN. Når størrelsen er over 8 MB, må du utløse en shuffled JOIN. Dette kan du gjøre ved å bruke JOIN EACH-syntaksen. Det kan dessverre ikke gjøres ved hjelp av IN-metoden, men det samme søket kan omskrives ved å bruke JOIN.
Produkter kjøpt av kunder som kjøpte produkt A (utvidet netthandel)
Dette ligner det forrige enkle søket, men fungerer for Utvidet netthandel. Det bruker også TABLE_DATE_RANGE
til å søke i data fra flere dager.
Produkter kjøpt av en kunde som kjøper produkt A (utvidet netthandel) |
---|
SELECT hits.product.productSKU AS other_purchased_products, COUNT(hits.product.productSKU) AS quantity |
Gjennomsnittlig antall brukerinteraksjoner før et kjøp
Dette er et eksempel på et søk for en JOIN() [...] ON
-kommando, som bare avhenger av Analytics-data.
Nedenfor ser du et enkelt skript for følgende søk: Hva er det gjennomsnittlige antallet brukerinteraksjoner før et kjøp?
Antallet brukerinteraksjoner før et kjøp |
---|
SELECT one.hits.item.productSku AS ProductSku, ( sum_of_hit_number / total_hits ) AS avg_hit_number |
- I den første linjen utføres den viktigste matematiske operasjonen for å finne det gjennomsnittlige antallet brukerinteraksjoner for hvert produkt. Med dette søket blir to delsøk kalt 'Alias_Name_1' og 'Alias_Name_2', slått sammen.
- ‘Alias_Name_1’ brukes for å generere et felt som bruker samlefunksjonen
SUM()
for å summere alle trefftallene som er registrert for et produkt. - ‘Alias_Name_2’ brukes for å finne antallet treff brukerne har stått for for hvert produkt, ved å benytte
COUNT()
-funksjonen. - Den siste linjen inneholder fellesfeltet (
hits.item.productSku
), som deles mellom de to datasettene som er slått sammen.
Nedenfor ser du et enkelt skript for følgende søk: Hva var det gjennomsnittlige antallet brukerinteraksjoner før et kjøp 10. september 2013?
Antallet brukerinteraksjoner før et kjøp 10. september 2013 |
---|
SELECT one.hits.item.productSku AS ProductSku, ( sum_of_hit_number / total_hits ) AS avg_hit_number |
Prosentandelen av varebeholdningen solgt for hvert produkt
Dette er et eksempel på et søk som ikke bare bygger på Google Analytics-data, men også på data som ikke er fra Google Analytics. Ved å kombinere begge datasettene får du en bedre forståelse av brukeratferden på et mer segmentert nivå. Du kan importere data som ikke er fra Google Analytics, i BigQuery, men husk at dette fører til at den månedlige kostnaden for datalagring blir høyere.
Nedenfor ser du et enkelt skript for følgende søk: Hvilken prosentandel av varebeholdningen ble solgt for hvert produkt?
Prosentandel av varebeholdningen solgt for hvert produkt |
---|
SELECT AnalyticsImport.product_data_20130728.productId, ((( one.quantity_sold ) / ( AnalyticsImport.product_data_20130728.productstock + one.quantity_sold )) * 100 ) AS percentage_of_stock_sold |
- Den første linjen har to felt: ett felt som inneholder alle produkt-ID-ene, og ett som er en matematisk operasjon som viser prosentandelen av varebeholdningen som ble solgt for den aktuelle produkt-ID-en.
- Siden dette søket bygger på to datasett, må du bruke
JOIN() ... ON
-funksjonen. Med denne kommandoen blir radene fra de to datasettene slått sammen med utgangspunkt i fellesfeltet mellom dem. I dette tilfellet er de to datasettene[ ‘Imported_DataSet’ ]
og'Alias_Name'
. [Imported_DataSet]
er dataene som ikke er fra Google Analytics. Dette er datasettet som inneholder beregningsfeltet for hvor stor del av varebeholdningen som er igjen (Imported DataSet.'stock_left_field'
), og dimensjonsfeltet for produkt-ID (Imported_DataSet.'productId_field'
).‘Alias_Name’
er navnet som er tilordnet til dataene som returneres av det grå delsøket. Delsøket bruker Analytics-data for å finne det samlede antallet varer som er solgt per produkt.- I den siste linjen brukes
ON
-setningen for å vise fellesfeltet mellom de to datasettene, og hvor de to datasettene er slått sammen.
Mange av variablene i dette søket har datasettnavnet knyttet til prefikset (f.eks. Imported_DataSet.’productId_field’, Alias_Name.quantity_sold
). Dette er for å avklare hvilket felt du velger, og for å gjøre det tydelig hvilket datasett feltet tilhører.
Nedenfor ser du et enkelt skript for følgende søk: Hvilken prosentandel av varebeholdningen var solgt for hvert produkt 28. juli 2013?
Prosentandel av varebeholdningen solgt for hvert produkt 28. juli 2013 |
---|
SELECT AnalyticsImport.product_data_20130728.productId, ( ( ( one.quantity_sold ) / ( AnalyticsImport.product_data_20130728.productstock + one.quantity_sold ) ) * 100 ) AS percentage_of_stock_sold |
Fortjenesten for hvert produkt
Nedenfor ser du et enkelt skript for følgende søk: Hva er fortjenesten for hvert produkt?
Fortjeneste etter produkt |
---|
SELECT Alias_Name.hits.item.productSku, ( Imported_DataSet.’product profit field’ * Alias_Name.quantity ) AS profit |
- Den første linjen inneholder den matematiske operasjonen for å beregne den samlede fortjenesten for hvert produkt.
- Den grå delsøket bygger på data som ikke er fra Google Analytics, slik at dataene om hvor stor fortjenesten er når et produkt blir solgt, blir samlet inn.
- Den røde delsøket er delsøket for Google Analytics-data, som blir slått sammen med dataene som ikke er Google Analytics-data. Antallet solgte varer per produkt blir beregnet.
- I den siste linjen blir
ON
-setningen brukt for å avklare hvilket felt de to datasettene deler. I dette tilfellet er det produktets ID-nummer.
Nedenfor ser du et enkelt skript for følgende søk: Hva var fortjenesten for hvert produkt 28. juli 2013?
Fortjeneste etter produkt 28. juli 2013 |
---|
SELECT two.hits.item.productSku, ((AnalyticsImport.product_data_20130728.productprice-AnalyticsImport.product_data_20130728.productcost)*two.quantity) AS profit |
Fortjenesten beregnes ved å finne forskjellen mellom prisen produktet selges for, og kostnadene for å produsere produktet. Denne informasjonen blir lagret i datasettet som ikke er et GA-datasett.
Virkelig fortjeneste for hvert produkt (når refusjoner er tatt med i beregningen)
Nedenfor ser du et enkelt skript for følgende søk: Hva er den virkelige lønnsomheten for hvert produkt?
Reell fortjeneste etter produkt |
---|
SELECT Alias_Name.hits.item.productSku, (gross_profit-total_refund_revenue) AS real_profit |
- Denne spørringen er svært lik spørringen Hva er fortjenesten for hvert produkt? De eneste forskjellene er i datasettet som ikke er et Google Analytics-datasett, i den grå delsøket, og i den matematiske operasjonen der den virkelige fortjenesten blir beregnet i første linje.
- I datasettet som ikke er et Google Analytics-datasett, beregnes også det samlede beløpet som er brukt på refusjoner (i
SELECT
-setningen i det røde delsøket). - Deretter utfører du en matematisk operasjon i linje 1 for å finne den reelle fortjenesten. Dette gjør du ved å trekke inntektene som er brukt på refusjoner, fra bruttofortjenesten.
Hvis du ønsker mer informasjon om spørringen, kan du se delen om fortjeneste for hvert produkt.
Nedenfor ser du et enkelt skript for følgende søk: Hva var den virkelige fortjenesten for hvert produkt 28. juli 2013?
Reell fortjeneste etter produkt 28. juli 2013 |
---|
SELECT two.hits.item.productSku, (gross_profit-total_refund_revenue) AS real_profit |
Den reelle fortjenesten beregnes ut fra lønnsomheten for et produkt etter at refunderte produkter er tatt med i beregningen. Slik beregnes de samlede refusjonsinntektene for et produkt:
samlede refusjonsinntekter for et produkt = (prisen på produktet + refusjonsprisen for produktet) * antallet produkter som er refundert