Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Google Analytics + R

672 views

Published on

Analyzing data from Google Analytics in R Studio using Google Analytics Reporting API

Published in: Internet
  • Be the first to comment

Google Analytics + R

  1. 1. 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
  2. 2. 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
  3. 3. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Strona jest on-line. Co dalej?
  4. 4. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
  5. 5. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
  6. 6. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
  7. 7. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Jaki ruch jest na stronie?
  8. 8. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Kim są użytkownicy?
  9. 9. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Gdzie się znajdują?
  10. 10. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Jak wygląda struktura ruchu?
  11. 11. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Najlepsze źródło ruchu?
  12. 12. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Ścieżki wielokanałowe
  13. 13. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Gdzie jest problem?
  14. 14. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Zaangażowanie odbiorcy
  15. 15. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 414 różnych wymiarów i danych dostępne w Google Analytics
  16. 16. 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:15 Dimension Metric
  17. 17. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Dimensions & Metrics Explorer
  18. 18. 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
  19. 19. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Szukaj kontekstu!
  20. 20. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Integracja z innymi źródłami danych:
  21. 21. 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 :)
  22. 22. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Interfejsy Google Analytics Management API Reporting APIsData Collection APIs
  23. 23. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Wysyłanie danych do Google Analytics analytics.js Android SDK iOS SDK Google Tag Manager Measurement Protocol Offline data
  24. 24. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 10 000 000 Miesięczny limit hitów do serwera Google Analytics per usługa
  25. 25. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 W czym pomoże R? ● Analiza danych ● Wizualizacja danych ● Testy statystyczne ● Modele predykcyjne ● ...
  26. 26. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Eksport danych do R
  27. 27. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Klucz do Google Analytics API https://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
  28. 28. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Google Developers Console
  29. 29. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 RGoogleAnalytics: Instalacja pakietu install.packages("RGoogleAnalytics")
  30. 30. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 RGoogleAnalytics: Konfiguracja require(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")
  31. 31. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Autoryzacja - dostęp do danych
  32. 32. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Hello world # Get the Sessions by Month in 2014 query.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 object ga.query <- QueryBuilder(query.list) # Extract the data and store it in a data-frame ga.data <- GetReportData(ga.query, token)
  33. 33. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Hello world > head(ga.data) month sessions 1 01 906 2 02 1643 3 03 1755 4 04 963 5 05 407 6 06 490
  34. 34. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Wizyty vs. dzień tygodnia # Get the Sessions by dayOfWeek in 2013 query.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()
  35. 35. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
  36. 36. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Kalendarz # Get the Sessions by date in 2013-2015 query.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 ...
  37. 37. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Kalendarz # Plot for calendar calendar_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 calendar calendar_sessions
  38. 38. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015
  39. 39. 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 detection res = AnomalyDetectionTs(raw_data, max_anoms=0.02, direction='both', plot=TRUE) res$plot
  40. 40. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Wykrywanie anomalii https://github.com/twitter/AnomalyDetection
  41. 41. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Case study: Profilowanie użytkownika
  42. 42. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Klasteryzacja użytkowników Pogrupuj użytkowników według zainteresowań:
  43. 43. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Dane Zachowanie 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 PV 42749467 /kategoria/2 54 23697733 /produkt/26 47 23697733 /kategoria/2 57 31057222 /produkt/11 26 31286996 /kategoria/2 31 14192694 /kategoria/2 26
  44. 44. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Dane wejściowe > head(data_test) UID Cat1 Cat2 Cat3 1 42749467 12 81 25 2 23697732 2 90 0 3 31286996 20 64 28 4 23697732 2 90 0 5 23697732 2 90 0 6 14192694 0 46 8
  45. 45. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Klasteryzacja użytkowników #Load data into R ... # K-Means Cluster Analysis fit <- kmeans(data, 3) # 3 clusters ... # Append cluster assignment mydata <- data.frame(data, fit$cluster) head(mydata)
  46. 46. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Klasteryzacja użytkowników > head(mydata) UID Cat1 Cat2 Cat3 fit.cluster 1 42749467 12 81 25 1 2 31286996 20 64 28 1 3 23697732 2 90 0 2 4 14192694 0 46 8 3
  47. 47. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Klasteryzacja użytkowników # 3d chart install.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))
  48. 48. Michał Bryś, Data Scientist @ Allegro, Allegro.tech @ Warszawa, 16.12.2015 Wykres 3D (plotly)
  49. 49. Q&A Blog: allegro.tech Linkedin: www.linkedin.com/in/michalbrys/

×