google analytics + r

50
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Michał Bryś Data Scientist @ Allegro Allegro.tech | Warszawa, 16 grudnia 2015 Google Analytics + R

Upload: michal-brys

Post on 15-Apr-2017

600 views

Category:

Internet


4 download

TRANSCRIPT

Page 1: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Michał BryśData Scientist @ AllegroAllegro.tech | Warszawa, 16 grudnia 2015

Google Analytics+ R

Page 2: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Michał BryśData Scientist @ Allegro

Web Analytics Consultant:+ Google Analytics + Google Tag Manager

Blog: www.michalbrys.pl

Page 3: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Strona jest on-line.Co dalej?

Page 4: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Page 5: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Page 6: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Page 7: Google Analytics + R
Page 8: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Jaki ruch jest na stronie?

Page 9: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Kim są użytkownicy?

Page 10: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Gdzie się znajdują?

Page 11: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Jak wygląda struktura ruchu?

Page 12: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Najlepsze źródło ruchu?

Page 13: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Ścieżki wielokanałowe

Page 14: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Gdzie jest problem?

Page 15: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Zaangażowanie odbiorcy

Page 16: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

414różnych wymiarów i danych dostępne w Google Analytics

Page 17: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

City Sessions Pageviews Avg. time on site

Warsaw 100 150 00:01:20

Cracow 120 300 00:02:15Dimension

Metric

Page 18: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Dimensions & Metrics Explorer

Page 19: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Session · Traffic Sources · Adwords · Goal Conversions · Platform

or Device · Geo Network · System · Social Activities · Page

Tracking · Content Grouping · Internal Search · Site Speed · App

Tracking · Event Tracking · Ecommerce · Social Interactions · User

Timings · Exceptions · Content Experiments · Custom Variables or

Columns · Time · DoubleClick Campaign Manager · Audience Ad

Exchange · Channel Grouping · Related Products

Page 20: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Szukaj kontekstu!

Page 21: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Integracja z innymi źródłami danych:

Page 22: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Integracja z danymi zewnętrznymi

● Pogoda● Dane z CRM● Dane z CMS● Dane offline● Poziom naładowania baterii :)

Page 23: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Interfejsy Google Analytics

Management API

Reporting APIsData Collection APIs

Page 24: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Wysyłanie danych do Google Analytics

analytics.js

Android SDKiOS SDK

Google Tag Manager

MeasurementProtocol

Offline data

Page 25: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

10 000 000Miesięczny limit hitów

do serwera Google Analytics per usługa

Page 26: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

W czym pomoże R?

● Analiza danych● Wizualizacja danych● Testy statystyczne● Modele predykcyjne● ...

Page 27: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Eksport danych do R

Page 28: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Klucz do Google Analytics APIhttps://console.developers.google.com/project

Utwórz: Nowy projekt, używa Analytics API

Utwórz: New Client ID

Typ aplikacji – Installed Application

Pobierz: Client ID, Client Secret

Page 29: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Google Developers Console

Page 30: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

RGoogleAnalytics: Instalacja pakietu

install.packages("RGoogleAnalytics")

Page 31: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

RGoogleAnalytics: Konfiguracjarequire(RGoogleAnalytics)

client.id <- "xxxxxxxxxxxx.apps.googleusercontent.com"

client.secret <- "zzzzzzzzzzzz"

token <- Auth(client.id,client.secret)

# Save the token object for future sessions

save(token,file="./token_file")

Page 32: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Autoryzacja - dostęp do danych

Page 33: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Hello world# Get the Sessions by Month in 2014query.list <- Init(start.date = "2014-01-01", end.date = "2014-12-31", dimensions = "ga:month", metrics = "ga:sessions", table.id = "ga:000000")

# Create the Query Builder objectga.query <- QueryBuilder(query.list)

# Extract the data and store it in a data-framega.data <- GetReportData(ga.query, token)

Page 34: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Hello world

> head(ga.data) month sessions1 01 9062 02 16433 03 17554 04 9635 05 4076 06 490

Page 35: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Wizyty vs. dzień tygodnia# Get the Sessions by dayOfWeek in 2013query.list <- Init(start.date = "2013-01-01", end.date = "2013-12-31", dimensions = "ga:dayOfWeek,ga:date", metrics = "ga:sessions", table.id = "ga:000000")

# Processing Query to ga.data...

qplot(data = ga.data, x = dayOfWeek, y = sessions)+ geom_boxplot()

Page 36: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Page 37: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Kalendarz# Get the Sessions by date in 2013-2015query.list <- Init(start.date = "2013-01-01", end.date = "2015-12-31", dimensions = "ga:date", metrics = "ga:sessions", table.id = "ga:000000")

# Processing Query to ga.data...

Page 38: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Kalendarz# Plot for calendarcalendar_sessions <- ggplot(data, aes(monthweek, weekdayf, fill = sessions)) + geom_tile(colour = "white") + facet_grid(year~monthf) + scale_fill_gradient(high="#D61818",low="#B5E384") + labs(title = "Kalendarz") + xlab("Tydzien miesiaca") + ylab("")

# View calendarcalendar_sessions

Page 39: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Page 40: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Wykrywanie anomalii

https://github.com/twitter/AnomalyDetection

install.packages("devtools")devtools::install_github("twitter/AnomalyDetection")library(AnomalyDetection)

# Processing Query to ga.data...

# Anomaly detectionres = AnomalyDetectionTs(raw_data, max_anoms=0.02, direction='both', plot=TRUE)res$plot

Page 41: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Wykrywanie anomalii

https://github.com/twitter/AnomalyDetection

Page 42: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Case study:Profilowanie użytkownika

Page 43: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Klasteryzacja użytkownikówPogrupuj użytkowników według zainteresowań:

Page 44: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

DaneZachowanie użytkowników:

● odsłony

Tematyka stron:

● adres URL + kategorie tematyczne

URL Category/52 3/aktualnosci/50 2/aktualnosci/51 3/aktualnosci/52 3/aktualnosci/53 2

UID URL PV42749467 /kategoria/2 5423697733 /produkt/26 4723697733 /kategoria/2 5731057222 /produkt/11 2631286996 /kategoria/2 3114192694 /kategoria/2 26

Page 45: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Dane wejściowe

> head(data_test) UID Cat1 Cat2 Cat31 42749467 12 81 252 23697732 2 90 03 31286996 20 64 284 23697732 2 90 05 23697732 2 90 06 14192694 0 46 8

Page 46: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Klasteryzacja użytkowników#Load data into R...

# K-Means Cluster Analysisfit <- kmeans(data, 3) # 3 clusters

...

# Append cluster assignmentmydata <- data.frame(data, fit$cluster)head(mydata)

Page 47: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Klasteryzacja użytkowników

> head(mydata) UID Cat1 Cat2 Cat3 fit.cluster1 42749467 12 81 25 12 31286996 20 64 28 13 23697732 2 90 0 24 14192694 0 46 8 3

Page 48: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Klasteryzacja użytkowników

# 3d chartinstall.packages("plotly")library(plotly)

plot_ly(df, x = mydata$Cat1, y = mydata$Cat2, z = mydata$Cat3, type = "scatter3d", mode = "markers", color=factor(mydata$fit.cluster))

Page 49: Google Analytics + R

Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015

Wykres 3D (plotly)

Page 50: Google Analytics + R

Q&A

Blog: allegro.tech

Linkedin: www.linkedin.com/in/michalbrys/