Bitte zuerst lesen!

Dies ist eine etwas andere Version als im Buch, da ich noch einige Sachen hinzugefügt habe. Selbst wenn Sie keinen Zugriff auf eine eigene Webanalyse-Plattform haben, können Sie dieses Beispiel ausprobieren, da ich Ihnen einen Datensatz von meiner eigenen Website zur Verfügung stelle.

Libraries & Authentifizierung

Die folgenden Befehle auskommentieren (das “#” entfernen), um die Libraries zu installieren. Das muss nur einmal passieren.

#install.packages("arules")
#install.packages("arulesViz")
#install.packages("tidyverse")
#install.packages("googleAuthR")
#install.packages("googleAnalyticsR")
#install.packages("digest")

Am bequemsten werden Daten aus Google-APIs mit einem Service User abgefragt. Andere Möglichkeiten sind hier nachzulesen: http://code.markedmondson.me/googleAuthR/articles/google-authentication-types.html

Ich habe dei Autorisierungsdaten in meinem R-Stammverzeichnis in der Datei .Renviron gespeichert; in der Datei steht nur

GA_AUTH_FILE = “/Users/tom/Shiny-d1739b8e7809.json”

Das muss natürlich an die eigenen Gegebenheiten angepasst werden (und natürlich benötigt man auch eine eigene JSON-Datei).

library(tidyverse)
## Registered S3 methods overwritten by 'ggplot2':
##   method         from 
##   [.quosures     rlang
##   c.quosures     rlang
##   print.quosures rlang
## ── Attaching packages ──────────────────────────────────────────────────────────────────────── tidyverse 1.2.1 ──
## ✔ ggplot2 3.1.1     ✔ purrr   0.3.2
## ✔ tibble  2.1.1     ✔ dplyr   0.8.1
## ✔ tidyr   0.8.3     ✔ stringr 1.4.0
## ✔ readr   1.3.1     ✔ forcats 0.4.0
## ── Conflicts ─────────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
library(googleAuthR)
options(googleAuthR.scopes.selected = "https://www.googleapis.com/auth/analytics")
library(googleAnalyticsR)
## 2019-07-04 14:25:01> Default Google Project for googleAnalyticsR is now set.  
##  This is shared with all googleAnalyticsR users. 
##  If making a lot of API calls, please: 
##  visit: https://bit.ly/2Evk6hn 
##  for instructions on setting your own Google Project
## Setting scopes to https://www.googleapis.com/auth/analytics.readonly
## Registered S3 method overwritten by 'openssl':
##   method      from
##   print.bytes Rcpp
## Successfully auto-authenticated via /Users/tom/Shiny-d1739b8e7809.json
library(arules)
## Loading required package: Matrix
## 
## Attaching package: 'Matrix'
## The following object is masked from 'package:tidyr':
## 
##     expand
## 
## Attaching package: 'arules'
## The following object is masked from 'package:dplyr':
## 
##     recode
## The following objects are masked from 'package:base':
## 
##     abbreviate, write
library(arulesViz)
## Loading required package: grid
## Registered S3 method overwritten by 'seriation':
##   method         from 
##   reorder.hclust gclus
library(digest)

Option 1: Abfragen der Daten über eine Google API (geht nicht mit Standard-Installation)

Durch den folgenden Befehl kann gesehen werden, zu welchen Properties und Views man ZUgriff hat. Wichtig ist die Spalte View ID, da damit später Daten abgefragt werden.

my_accounts <- ga_account_list()

The important bit here is the ViewID that we will now use for requests. You must change this to your ViewID if you want this to work. Also, you must have dimension1 to be set up to include a unique identifier. If you don’t have all of that, no worries, I provide a dataset further below.

ga_id = 1952687
dt <- google_analytics(ga_id,
date_range = c("2018-08-01", "2018-09-30"), 
metrics = c("ga:users"),
dimensions = c("ga:dimension1","ga:pagePathLevel1"),
max = -1
)
## 2019-07-04 14:21:27> Downloaded [9282] rows from a total of [9282].

Wir anonymisieren die Daten erst einmal, bevor wir sie zeigen:

i = 1
for (i in i:nrow(dt)) {
  dt$dimension1[i] <- digest(paste(dt$dimension1[i]))
  i <- i+1
}

dt