Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Michał BryśData Scientist @ AllegroAllegro.tech | Warszawa, 16 grudnia 2015
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
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Strona jest on-line.Co dalej?
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Jaki ruch jest na stronie?
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Kim są użytkownicy?
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Gdzie się znajdują?
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Jak wygląda struktura ruchu?
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Najlepsze źródło ruchu?
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Ścieżki wielokanałowe
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Gdzie jest problem?
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Zaangażowanie odbiorcy
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
414różnych wymiarów i danych dostępne w Google Analytics
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
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Dimensions & Metrics Explorer
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
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Szukaj kontekstu!
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Integracja z innymi źródłami danych:
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 :)
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Interfejsy Google Analytics
Management API
Reporting APIsData Collection APIs
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
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
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
W czym pomoże R?
● Analiza danych● Wizualizacja danych● Testy statystyczne● Modele predykcyjne● ...
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Eksport danych do 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
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Google Developers Console
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
RGoogleAnalytics: Instalacja pakietu
install.packages("RGoogleAnalytics")
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")
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Autoryzacja - dostęp do danych
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)
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
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()
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
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...
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
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
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
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Wykrywanie anomalii
https://github.com/twitter/AnomalyDetection
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Case study:Profilowanie użytkownika
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Klasteryzacja użytkownikówPogrupuj użytkowników według zainteresowań:
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
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
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)
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
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))
Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
Wykres 3D (plotly)
Q&A
Blog: allegro.tech
Linkedin: www.linkedin.com/in/michalbrys/