Last active
May 2, 2022 12:02
-
-
Save mbaersch/e19d9c947e55b2b5b49a920ce6a4c268 to your computer and use it in GitHub Desktop.
Beispielscript zum Export von Daten aus Google Universal Analytics mittels R
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#--------------------------------------------------------------------------------- | |
# Beispielscript: Export von Daten aus Google Universal Analytics mittels R | |
#--------------------------------------------------------------------------------- | |
# Dieses Beispiel gehört zum Blogpost unter | |
# https://www.markus-baersch.de/blog/universal-analytics-daten-sichern-was-und-wie/ | |
# Damit es nutzbar ist: | |
# - R installieren: https://cran.rstudio.com/ | |
# - RStudio installieren: https://www.rstudio.com/ | |
# - Dieses Script in RStudio öffnen | |
# - Anweisungen im Script folgen und Zeilen einzeln durch STRG + ENTER | |
# ausführen, um die Schritte nachvollziehen zu können | |
#--------------------------------------------------------------------------------- | |
# SETUP | |
#--------------------------------------------------------------------------------- | |
# Hier die eigene ID eintragen - kann aus dem Query Exporer in der ID Zeile | |
# abgelesen werden (siehe Blogpost). | |
checkId = "1234567890" | |
# HINWEIS: Dieses Script verwendet die "öffentliche" Anbindung von googleAnalyticsR | |
# (https://code.markedmondson.me/googleAnalyticsR/index.html). | |
# Es gibt eine Alternative, die ggf. den eigenen Datenschutzanforderungen gerechter | |
# wird dafür aber etwas mehr Aufwand bedeutet. Siehe dazu: | |
# https://code.markedmondson.me/googleAnalyticsR/articles/setup.html#professional-mode-your-own-google-project | |
# Datumsbereich wählen. Hier ein Beispiel, das vom akt. Datum abhängt und | |
# 90 Tage seit gestern abruft: | |
# c(Sys.Date()-91, Sys.Date()-1) | |
# Es können aber feste Zeiträume im Format "yyyy-mm-dd" angegeben | |
# werden, was hier deutlich sinnvoller erscheint. Hier als Beispiel das Jahr 2021 | |
checkDateRange = c("2021-01-01", "2021-12-31"); | |
#--------------------------------------------------------------------------------- | |
# VORBEREITUNG | |
#--------------------------------------------------------------------------------- | |
# die folgende Zeile einmalig ausführen, um das Paket zum Zugriff auf die GA API | |
# zu installieren. Dazu das "#" vor der Zeile entfernen und STRG+ENTER zum | |
# Ausführen der Zeile verwenden | |
#install.packages("googleAnalyticsR", dependencies=TRUE) | |
# Weitere Infos und Doku siehe | |
# https://cran.r-project.org/web/packages/googleAnalyticsR/googleAnalyticsR.pdf | |
#--------------------------------------------------------------------------------- | |
# Bibliothek laden und Zugriff erlauben | |
#--------------------------------------------------------------------------------- | |
library(googleAnalyticsR) | |
ga_auth() | |
#--------------------------------------------------------------------------------- | |
# DATEN ABRUFEN - Beispiel 1: User und Sessions nach Monat und Kanal | |
#--------------------------------------------------------------------------------- | |
# Dokumentation aller Optionen der hier verwendeten Funktion: | |
# https://code.markedmondson.me/googleAnalyticsR/articles/v4.html | |
# Wesentlich ist in diesem Beispiel die Verwendung von anti_sample = TRUE, um ggf. | |
# in mehreren Aufrufen nacheinander alle Daten abzurufen, wenn dies möglich ist (auch | |
# das hat seine Grenzen). Hinweis: Es mag sein, dass Hinzufügen von slow_fetch = TRUE | |
# zu den Optionen bessere Ergebnissen bei großen Datenmengen liefert | |
ga_channel_data = google_analytics(viewId = checkId, | |
date_range = checkDateRange, | |
metrics = c("sessions","users"), | |
dimensions = c("channelGrouping","yearMonth"), | |
anti_sample = TRUE) | |
#--------------------------------------------------------------------------------- | |
# DATEN ABRUFEN - Beispiel 2: Seiten aus dem Blog für den o. a. Zeitraum gesamt | |
#--------------------------------------------------------------------------------- | |
# Je nach Umfang / Vorhaben müssen ggf. Filter gesetzt werden. Dies passiert | |
# in folgendem Format, hier z. B. als Dimensionsfilter nur für Seitenpfade, | |
# die (mit /blog/) beginnen: | |
pg_filter <- dim_filter(dimension="pagePath",operator="BEGINS_WITH",expressions="/blog/") | |
f_clause <- filter_clause_ga4(list(pg_filter)) | |
# Hilfe zu Filtern finden sich ebenso im Query Explorer | |
# (siehe Blogbeitrag) - weitere Optionen der Funktion siehe unten | |
ga_blogpage_data = google_analytics(viewId = checkId, | |
date_range = checkDateRange, | |
metrics = c("pageviews","entrances", "bounces"), | |
dimensions = c("pagePath", "yearMonth"), | |
dim_filters = f_clause, | |
anti_sample = TRUE) | |
#--------------------------------------------------------------------------------- | |
# AUSGABE in Console | |
#--------------------------------------------------------------------------------- | |
# Einfache Ausgabe einer Übersicht und der ersten Zeilen beider Tabellen. | |
# Die Ergebnisse beider Abfragen finden sich rechts oben im "Environment" Fenster | |
# und kann dort per Klick auf ga_channel_data bzw. ga_blogpage_data geöffnet | |
# und betrachtet werden etc. | |
summary(ga_channel_data) | |
head(ga_channel_data) | |
summary(ga_blogpage_data) | |
head(ga_blogpage_data) | |
#--------------------------------------------------------------------------------- | |
# ERGEBNISSE ALS CSV SPEICHERN | |
#--------------------------------------------------------------------------------- | |
# Soll eine Speicherung auf dem eigenen Rechner erfolgen, die folgenden Zeilen | |
# ausführen. Dort entweder den Speicherort und Dateinamen anpassen - sonst landet | |
# das Ergebnis im Home- bzw. Arbeits-Ordner, der sehr wahrscheinlich gerade unter | |
# "Files" rechts unten geöffnet ist | |
write.csv2(ga_channel_data, file="universal_export_channels.csv") | |
write.csv2(ga_blogpage_data, file="universal_export_blogpages.csv") | |
# Dieser Vorgang kann nun durch mehrfachen Aufruf der google_analytics Funktion | |
# mit anderen Parametern wiederholt werden und jedes Ergebnis wie oben | |
# mit passendem Dateinamen gespeichert werden |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Dieses Beispiel gehört zum Blogpost unter https://www.markus-baersch.de/blog/universal-analytics-daten-sichern-was-und-wie/