API’s of Application Programming Interfaces laten het toe om met je eigen applicatie te interageren, communiceren of informatie te verzenden naar andere applicaties zoals Google Analytics. In dit artikel maken we gebruik van de Google Analytics API om data te kunnen ophalen vanuit R Studio. R Studio is op zich een IDE (Integrated Development Environment) voor de statistische programmeertaal R. Een IDE is over het algemeen gebruiksvriendelijker door de extra functionaliteiten die worden aangeboden.
Nu we kort geschetst hebben wat R Studio precies is, komt er hoogst waarschijnlijk een nieuwe vraag op de proppen. “Waarom zou je data ophalen via een API, als Google Analytics een gebruikersinterface voorziet”? De reden hiervoor is simpel, er zijn meerdere voordelen verbonden aan het ophalen van data via een API. Enkele voorbeelden:
- Het risico op fouten wordt kleiner aangezien alle informatie door een machine of computer wordt opgehaald. Dit betekent dat er geen menselijke interactie nodig is voor het verzamelen (en overtypen) van de data.
- Het berekenen van nieuwe variabelen en waarden (in grote volumes) wordt gemakkelijker binnen R Studio (of elke andere programmeertaal). Deze berekeningen in Excel uitvoeren zorgt vaak voor problemen.
- R biedt enkele voordelen wanneer het op data transformatie aankomt. Een voorbeeld hiervan is het transformeren van data of timestamps.
- R maakt het door middel van pakketten zoals ggvis of ggplot2 mogelijk om makkelijk data te gaan visualiseren.
Dit zijn echter enkel voordelen voor het gebruik van API’s vanuit ons perspectives. Applicaties zoals Additionly en How We Browse gebruiken allerhande API’s om data op te vragen en op te slaan binnen hun eigen infrastructuur. Daar kan de data worden bewerkt voor verder gebruik.
Doorheen dit artikel zullen we trachten om je te helpen je eerste Google Analytics API query op te bouwen vanuit R Studio. Hiervoor zijn twee belangrijke stappen nodig. Eerst en vooral dienen we onze toegang tot de API op te zetten. Vervolgens kunnen we de query bouwen in R Studio.
Hoe een Google Analytics API toegang opzetten?
Om toegang te krijgen tot de Google Analytics API dienen we een Developer account op te zetten. De volgende stappen zullen je door dit process leiden. Merk op dat deze gegevens alleen toegang zullen verlenen aan accounts waar je ook daadwerkelijk toegang toe hebt.
- Surf naar https://console.developers.google.com en log je in of zet een account op
- Maak een nieuw project aan
- Ga op zoek naar de 'analytics API' via de zoekbalk
- Zorg ervoor dat deze API voor jou toegankelijk is door op 'enable ' te drukken.
Merk op dat deze pagina meegeeft welke gegevens je zal nodig hebben om de API te kunnen gebruiken: “Accessing user data with OAuth 2.0”.
-
Begeef je naar de ‘credentials’ tab aan de linkerzijde van de pagina. Selecteer vervolgens ‘OAuth client ID’ vanuit het drop down menu.
- Selecteer 'other' binnen het menu.
- Proficiat, je hebt nu je authenticatie details ontvangen!
- Extra - Ben je je details verloren? Selecteer de download knop naast je project naam.
Een JSON file zal worden dedownload. Selecteer de download knop naast je project naam.
Hoe code opzetten in R Studio
Nu de we alle informatie hebben die nodig is om de Google Analytics API te kunnen gebruiken is het tijd om de code op te bouwen die ons dit zal toelaten. De R code bestaat uit drie grote delen. Een eerste deel zal ervoor zorgen dat je de nodige functies ter beschikking hebt binnen R. Het tweede deel zorgt voor de eigenlijke authenticatie. Het derde en laatste deel zal de eingelijk aanvraag tot data bevatten. Regels beginnende met een ‘#’ geven commentaar weer en zijn louter informatief.
1. Pakketten: Om enkele van de authenticatie functionaliteiten te kunnen gebruiken dienen we het ‘RGoogleAnalytics’ pakket te installeren en te activeren.
#Loading package install.packages("RGoogleAnalytics") library(RGoogleAnalytics) |
2. Authenticatie: Dit onderdeel zorgt ervoor dat je de Google Analytics API kan aanspreken van in R Studio zodat je de nodig data punten kan aanvragen.
#Authentication #Insert the client id retrieved from the Google developer #console client.id <- 'XXX'
#Insert the client secret retrieved from the Google developer #console client.secret <- 'XXX'
#Find the view ID in the view setting page of your Google #Analytics view you wish to query view.id <- "ga:XXX"
#This code block verifies if the token has been created #during a previous query. If so it will reuse it. if (!file.exists("./token")) { token <- Auth(client.id,client.secret) token <- save(token,file="./token") } else { load("./token") }
ValidateToken(token) |
3. Bouwen van de Query: Dit onderdeel laat je toe om je eigen aanvragen op te bouwen bestaande uit ‘dimensions’ en ‘metrics’. Maak gebruik van de ‘Google developer metrics and dimensions explorer’ om na te gaan welke waarden beschikbaar zijn en hoe je deze formuleert binnen je aanvraag. Merk op dat niet alle combinaties mogelijk zijn aangezien bepaalde data niet kan worden gekruist.
#Query List #Example given on dates query.list2 <- Init(start.date = start.date, end.date = end.date, dimensions = "ga:transactionId,ga:dimension2,ga:dimension3,ga:dimension4", metrics = "ga:transactionRevenue,ga:transactions", max.results = 1000, table.id = view.id)
ga.query <- QueryBuilder(query.list2) ga.data <- GetReportData(ga.query, token, paginate_query = T) |
Merk in het bijzonder de parameter ‘pagina_query = T’ op. Deze zorgt ervoor dat sets groter dan 1000 regels systematisch kunnen worden opgehaald. Een kort voorbeeld: Indien een aanvraag 10.000 lijnen zou terugkrijgen, dan wordt deze aanvraag gesplitst in 10 x 1.000 resultaten en opnieuw geconsolideerd.
Het resultaat van deze query wordt opgeslagen in de variabele ‘ga.data’ onder de vorm van een data frame. Nu is de data klaar om bewerkt, gefilterd of gevisualiseerd te worden. Je kan dus aan de slag met je analyse!
Auteur: Glenn Vanderlinden