Google Analytics + R

Post on 15-Apr-2017

599 views 4 download

Transcript of 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

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/