24 maja 2016

Nie takie API straszne, jak je malują - wykorzystaj środowisko R do pobierania danych z Google Analytics i Google Trends

Czy spotkałeś się kiedyś z sytuacją, w której funkcjonalności prezentacji i analizy danych w Google Analytics były dla Ciebie niewystarczające? Albo masz dość generowania cotygodniowych raportów w panelu GA, a następnie kopiowania ich do Excela? Jeśli tak, to świetnie trafiłeś. Do pozyskiwania takich informacji w sposób zautomatyzowany służy Analytics API (Application Programming Interface - automatyczny sposób komunikacji programów). Dzięki niemu proces pozyskania danych można usprawnić. 

Google Analytics dysponuje zdecydowanie większą ilością dostępnych informacji niż te zawarte w standardowych raportach. Dzięki obsłudze API mamy do nich dostęp. Postaram się podzielić się z Tobą moją wiedzą na temat praktycznego wykorzystania API do pozyskania danych.

Jak zacząć?
Wystarczą 2 kroki. Pierwszy to aktywowanie API analyticsowego dla naszego konta (jeśli wcześniej nie zostało to zrobione), drugi to zainstalowanie bezpłatnego oprogramowania R (język programowania oraz środowisko do obliczeń statystycznych i wizualizacji wyników źródło: Wikipedia).

Aby uruchomić opcję korzystania z API należy wejść na stronę:

https://console.developers.google.com/

Do pracy z API musisz wygenerować client ID i client secret. Aby to zrobić, postępuj zgodnie z poniższymi krokami:

1. Otwórz Credentials page.
2. Jeśli nie robiłeś tego wcześniej, stwórz OAuth autoryzację dla swojego projektu, klikając w Create credentials, następnie kliknij w OAuth 2.0 client ID. Później konfigurator może poprosić cię o stworzenie nazwy dla produktu. Gdy przejdziesz przez ten etap, wybierz Other application i nadaj nazwę swojemu projektowi.
3. W pop-upie otrzymasz client ID i client secret.
4. Jeśli coś pójdzie nie tak i nie uzyskasz dostępu do tych informacji, w pop-up odszukaj Client ID w OAuth 2.0 i kliknij w nazwę.

Client ID i client secret to kluczowe ciągi znaków dla całego procesu pobierania danych z Twojego konta przy użyciu R. Dlatego sugeruję skopiowanie ich do notatnika.

Teraz musimy aktywować API dla naszego konta. Aby tego dokonać, postępuj zgodnie z poniższą instrukcją:

1. Otwórz stronę z informacjami dla Analytics API - Overview page.
2. Kliknij w przycisk Enable API, który aktywuje Analytics API.

Teraz pozostaje nam zainstalować R na komputerze. Oprogramowanie można pobrać z poniższej strony:

https://cran.r-project.org/bin/windows/base/

Jeżeli nie miałeś wcześniej styczności z takim oprogramowaniem, załączam również link z krótkim wprowadzeniem do R:

https://cran.r-project.org/doc/contrib/Komsta-Wprowadzenie.pdf

Zapoznanie się z całą zawartością wprowadzenia nie jest warunkiem koniecznym dla opisywanej metody. W Sieci dostępne są również darmowe szkolenia oraz fora informatyczne, na których programiści chętnie udzielają porad w kłopotliwych sytuacjach. Jednak w tym przypadku musisz wiedzieć jedynie, jak wykonywać kod w R i postępować zgodnie z instrukcjami.

Po wykonaniu powyższych kroków masz już wszystko, aby zacząć naszą przygodę z R i Analytics API. Aby podłączyć się do swoich danych musisz otworzyć R i zainstalować pakiet RGoogleAnalytics. Hash i wszystko co następuję po nim możesz pominąć. Jest to tylko komentarz, który nie jest interpretowany podczas kompilacji kodu. Służy on jedynie utrzymywaniu odpowiedniej dokumentacji i nadzoru nad tym, co dzieję się w skrypcie. Opisywanie swoich kroków przy pomocy komentarzy ułatwia rozumienie wcześniej stworzonego kodu.


# instalacja pakietu
install.packages("RGoogleAnalytics")
# ładowanie pakietu do pamięci R
library("RGoogleAnalytics") 

Powyższe komendy pozwalają na zainstalowanie pakietu potrzebnego to utworzenia połączenia oraz załadowanie go do pamięci podręcznej R. Teraz będziesz musiał stworzyć token dla swojego skryptu. Na tym etapie będziesz potrzebować wcześniej wygenerowanych client ID i client secret. Do autoryzacji Twojego połączenia wykorzystaj poniższy skrypt. 

# tworzy token
token<-Auth(client.id="client id ", client.secret = "client secret")
# zapisuje token
save(token,file="./token_file")
# sprawdza poprawność tokena
ValidateToken(token) 

Jeśli token został poprawnie zaimplementowany nasze połączenia z API analyticsowym właśnie zostało uwierzytelnione i jest gotowe do pracy. Celem tego artykułu jest zaprezentowanie możliwości pobrania danych przy użyciu API, dlatego nie będę wchodził w szczegóły techniczne środowiska programistycznego.

W kolejnym kroku tworzymy zmienną, w której przechowywane będzie zapytanie do danych.

#Utworzenie listy przykładowych parametrów
query.list <- Init(                start.date = "2015-09-01",
       end.date = "2015-09-31",
       dimensions = "ga:date,ga:source,ga:medium",
       metrics = "ga:sessions",
       max.results = 10000,
       sort = "-ga:date",
       table.id = "ga:identyfikator widoku danych") 

Dwa pierwsze parametry funkcji Init odnoszą się do daty początkowej i daty końcowej ekstraktu. Parametry dimensions i metrics odpowiadają kolejno za wybór wymiarów i metryk do naszego zapytania. Nazwy metryki i wymiarów dostępne są na stronie:

https://developers.google.com/analytics/devguides/reporting/core/dimsmets

Google Analytics ogranicza jednak pozyskanie danych przez API do 7 wymiarów i 10 metryk, dlatego warto uwzględnić to przy generowaniu ekstraktu. Należy również pamiętać o tym, że nie wszystkie metryki i wymiary możemy ze sobą zestawiać tzn., że w przypadku nieprawidłowo zdefiniowanego zapytania napotkamy na błąd. 

Parametr max.result ogranicza maksymalny rozmiar Twojego zapytania. Atrybut sort ustala kierunek i zmienną dla sortowania naszego zbioru danych. Jednak, aby zapytanie zostało poprawnie skonstruowane, musisz dodać informację o tym, z którego widoku usługi chcesz pobrać dane. W tym celu w table.id wpisz identyfikator widoku danych, którego wartość łatwo znajdziesz w panelu administracyjnym Google Analytics w sekcji ustawienia widoku. Wykonanie powyższego kodu stworzy zapytania do obiektu query.list. W kolejnym etapie zbudujesz obiekt, który posłuży  już do bezpośredniego pozyskania danych z Google Analytics.
# Utworzenie obiektu Query Builder
ga.query <- QueryBuilder(query.list)
# Umieszczenie otrzymanych wyników w obiekcie data.frame
dane <- GetReportData(ga.query, token, split_daywise = T)
# Wyświetlenie pozyskanych danych
dane 

Jeśli znasz R w stopniu pozwalającym na swobodne poruszanie się po danych, już możesz rozpocząć analizę. Jeśli nie, zapisz dane w formie tekstowej i otwórz je środowisku, w którym czujesz najbardziej swobodnie np. w Excelu. Dzięki zautomatyzowanej formie pobierania danych można również ograniczyć problem próbkowania, pobierając dane dzień po dniu.

# Zapisanie ramki danych do pliku tekstowego
write.table(dane,"dane.txt",sep="\t")
Teraz przy tworzeniu własnych raportów i odnajdywaniu wzorców w danych nic nie jest w stanie Cię powstrzymać. Z pewnością nie będzie to panel Google Analytics. Może jedynie poziom Twoich umiejętności analizy danych w R, ale to zawsze można nadrobić. R łączy się również bez trudu z Google Trends. Nie jest to jednak oficjalna dystrybucja API Google’a tylko opensourcowy pakiet stworzony przez środowisko pasjonatów R. Google Trends daje możliwości sprawdzenia popularności określonych fraz w danym czasie i miejscu. Poniżej wykres popularności słów (jajka,karp,kielbasa) między 1 stycznia 2015 a 21 kwietnia 2016 w Polsce.

Możesz z łatwością zaobserwować, jak okres świąteczny wpływa na wyniki wyszukiwania fraz związanych z jedzeniem - widać wyraźne wzrosty w okolicach Bożego Narodzenia i Wielkanocy. Dzięki temu narzędziu możesz np. sprawdzić, które produkty powinny być promowane w danym miesiącu lub też, jak plasują się w porównaniu z konkurencyjnymi. Oczywiście podobny wykres możesz swobodnie wygenerować używając wersji webowej aplikacji. Jednak w przypadku cyklicznego raportowania, może to stać się nużące, a w takiej sytuacji nietrudno o błąd. Poza tym, mając już dostęp do danych z API możesz spróbować połączyć obie te informacje i wysnuć wiele ciekawych wniosków.

Aby połączyć się z Google Trends musisz wykonać poniższe komendy w środowisku R i posiadać konto Google.

# instalacja pakietu gtrendsR
install.packages("gtrendsR")
# załadowanie pakietu do używanych bibliotek
library(gtrendsR)
# zapisujemy nazwę użytkownika konta do zmiennej
usr <- "przykład@gmail.com"
# zapisujemy Google’owe hasło do zmiennej
psw <- "haslo"
# łączymy się z Google Trends
gconnect(usr, psw) 

Aby stworzyć raport musisz użyć funkcji gtrends. Pierwszym parametrem tej funkcji będą frazy, których popularność chcesz zmierzyć. Start_date w cudzysłowach wpisz datę początkową dla Twojego zapytania, a w end_date analogicznie - końcową. Możesz również zawęzić raport popularności wyszukań do parametru geograficznego.
# ch<- gtrends(c("kielbasa","jajka","karp"),start_date = "2015-01-01",end_date = "2015-12-01" ,geo = "PL") 

Tak przygotowany obiekt ch jest źródłem wielu cennych informacji. Aby do nich dotrzeć wystarczy wykonać kod z nazwą obiektu.
ch 
Stworzenie wykresu to już tylko jedna komenda.
plot(ch) 
To tak naprawdę jedynie przykłady naprawdę szerokiego użycia Analytics API i R. Zachęcam do korzystania i pogłębiania więdzy na temat możliwości obydwu narzędzi. Użycie ich może zaoszczędzić cenny czas podczas generowania raportów lub dać początek Twojej bazie danych.

Autor:
Jakub Krysicki, Digital Data Analyst


Udostępnij:

0 komentarzy: