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

12 maja 2016

Sposób na poprawne śledzenie transakcji w sklepach na silniku PrestaShop za pomocą GTM

Jednym z kluczowych aspektów analityki w e-commerce jest zapewnienie maksymalnej poprawności danych transakcyjnych w Google Analytics. Jeśli korzystasz z e-płatności możesz spotkać się z problemem zliczania wszystkich transakcji.  Z takim wyzwaniem zmierzyliśmy się w przypadku jednego z naszych klientów, który korzysta z PrestaShop. Pokażemy, jak rozwiązaliśmy ten problem.

PROBLEM – brak poprawnego zliczania wszystkich transakcji
U naszego klienta zauważyliśmy znaczące różnice w ilości transakcji oraz wielkości przychodu pomiędzy Google Analytics a panelem PrestaShop. Po przeprowadzeniu testowych transakcji okazało się, że płatności wykonane przez Przelewy24 nie zliczają się w Google Analytics, a na stronie potwierdzenia zamówienia brakuje kodu modułu e-commerce.

PRZYKŁADOWE ROZWIĄZANIE – wpięcie kodu modułu e-commerce
Prawidłowe śledzenie transakcji, których płatność odbywa się online, może sprawić trudność. Nie wszyscy użytkownicy, po wykonaniu opłaty za swoje zamówienie, czekają na pojawienie się strony potwierdzenia zamówienia na naszym serwisie. Alternatywnym sposobem ich śledzenia jest odsyłanie kodu transakcji bezpośrednio przed przejściem do zewnętrznego serwisu z płatnością, a konkretniej, wpięcie kodu modułu e-commerce pod button.


Zanim jednak kod transakcji zostanie zaimplementowany musimy utworzyć parametry, które są wymagane przy śledzeniu e-commerce.

Pobranie wartości zmiennych dotyczących zakupionych produktów oraz samego zamówienia odbywa się bezpośrednio z kodu strony z wykorzystaniem niestandardowych kodów JavaScript w GTM. Poniżej przykład zmiennej, która zawiera liczbę zamówionych sztuk dla każdego produktu z koszyka.


Jeśli na stronie mamy wdrożony dataLayer, wówczas z jego pomocą możemy pobrać potrzebne wartości zmiennych.


Teraz wystarczy tylko przygotowanie niestandardowego tagu GTM zawierającego kod modułu e-commerce, który będzie wykonywany, gdy użytkownik kliknie w button „Kupuję i płacę”. Aby mieć pewność, że kod zdąży się odesłać przed przejściem do strony płatności, może być on wykonywany razem ze zdarzeniem GA, na przykład:

ga('send', 'event', 'purchase', 'przelewy24');

Listę niezbędnych parametrów oraz postać kodu transakcji możesz znaleźć na poniższych stronach:

Dzięki temu sposobowi możesz samodzielnie skonfigurować moduł śledzenia transakcji bez angażowania działu IT. Oczywiście, powyższe rozwiązanie można zastosować w każdym sklepie internetowym, w którym istnieje możliwość dokonania płatności online.

Autor:
Kamila Celeban, Junior Digital Analyst

29 kwietnia 2016

Jak rozliczać się z agencją SEO/SEM?

Firmy, które chcą rozwijać swój biznes muszą docierać do klientów za pośrednictwem Internetu. Wiąże się to z koniecznością wyboru agencji SEO/SEM do współpracy. Jakie są podstawowe modele rozliczeń klienta z agencją i jak wybrać rzetelnego partnera biznesowego? 

Artykuł znajduje się w Poradniku dla Internetowego Reklamodawcy od IAB Polska.


22 kwietnia 2016

Kampanię na LinkedIn czas zacząć!

Dlaczego warto wykorzystać największą, biznesową sieć społecznościową? Kto powinien prowadzić działania reklamowe na LinkedIn? Jak rozpocząć kampanię i jak mierzyć wyniki?

LinkedIn to sieć społecznościowa skupiająca ponad 400 milionów profesjonalistów z różnych branż w 200 krajach. W Polsce korzysta z niego prawie 1 500 000 użytkowników. LinkedIn to przede wszystkim miejsce służące profesjonalnemu rozwojowi pracownika, dlatego skuteczne działania reklamowe to będą te, które skupią się wokół tematów około biznesowych. To doskonałe miejsce dla reklamodawców B2B ze względu na precyzyjne możliwości targetowania i dotarcia do wąskiej grupy specjalistów.

Co musimy zrobić aby rozpocząć kampanię?
1. Posiadać konto osobiste na LinkedIn;
2. Posiadać konto firmowe na LinkedIn;
3. Połączyć oba te konta - z poziomu konta firmowego nadać dostęp osobie, która będzie zarządzać reklamami. Po otrzymaniu dostępu w naszym profilu osobistym pojawi się dostęp do konta reklamowego.

4. Na koniec wystarczy już tylko dodać do konta firmowego kartę kredytową.

Po otwarciu konta reklamowego (Menedżer Kampanii) możemy ustawić swoją pierwszą reklamę.


Mamy dwa rodzaje form reklamowych:
1. Sponsorowane Aktualizacje – czyli reklama, która pojawi się w tzw. strumieniu wiadomości na stronie głównej kont, które określimy w targetowaniu. To forma reklamy, która może być artykułem, który będzie informować o korzyściach naszej firmy, planowanych przedsięwzięciach, czy oferowanych usługach.
2. Reklama tekstowa – czyli tradycyjna reklama tekstowa pojawiająca się po prawej stronie w widoku. Reklamy te mają znacznie krótszą formę. Wykorzystujemy w nich logo firmy, nagłówek do 25 znaków i tekst reklamy do 75 znaków.


LinkedIn oferuje dodatkowo cały wachlarz form reklamowych, począwszy od reklam graficznych po reklamy wyświetlane w skrzynkach odbiorczych. Reklamy te są dostępne dla reklamodawców dysponujących wyższymi budżetami, konieczne jest także nawiązanie kontaktu z partnerem sprzedaży LinkedIn. Samodzielnie, na początek możemy korzystać z reklam typu: Sponsorowane Aktualizacje i Reklamy Tekstowe.

Przykład reklamy typu – Sponsorowane Aktualizacje 

Przykład reklamy typu – Reklamy Tekstowe 

Jak ustawić targetowanie?
Wchodzimy w zakładkę Odbiorcy w Menedżerze Kampanii.

Pojawia nam się cała lista możliwego targetowania:
- geolokalizacja
- nazwa firmy
- branża
- wielkość firmy
- stanowisko wraz zakresem wykonywanych obowiązków
- skończone uczelnie i kierunki studiów
- zdobyte umiejętności, stopnie naukowe i tytuły
- płeć i wiek

Każdorazowe dodanie nowego targetowania pokazuje nam po prawej stronie w panelu estymowaną liczbę osób, do której dotrzemy z reklamą. 


Określanie stawek
Na koniec pozostaje nam określenie stawek, które w panelu pojawiają się automatycznie sugerując najbardziej optymalne ustawienia. Warto pamiętać, że dla reklam tekstowych minimalny budżet dzienny to 10 dolarów, a minimalna stawka za kliknięcie to 2 dolary, dla 1000 wyświetleń także minimalną stawką będą 2 dolary. Dla reklamy typu sponsorowane aktualizacje minimalny budżet dzienny to także 10 dolarów, minimalne CPC to 2 dolary. Jednak minimalny CPM wynosi już 7,25 dolarów.


Optymalizacja wyników
W panelu możemy obserwować statystyki kampanii pod względem osiągniętego zasięgu, wygenerowanych tzw. akcji społecznościowych (polecenia, obserwacje, komentarze) i wydanego budżetu. 


Możemy analizować także zaangażowanie poszczególnych grup, do których docieramy z kampanią, dzięki czemu będziemy wstrzymywać te, które nie są zaangażowanie w kampanię, poszerzać odbiorców z grup, które generują kliknięcia czy akcje społecznościowe.


W sieci LinkedIn nie ma możliwości generowania jakichkolwiek tagów, dlatego nie będziemy mogli prowadzić działań remarketingowych. Jeśli chcemy mierzyć konwersje (a oczywiście będziemy to robić zawsze i przy jakichkolwiek działaniach), to jedynie za pomocą tagowania url na poziomie kampanii, i analizie wyników np. poprzez Google Analytics. 

Reklamy na LinkedIn wymagają większego budżetu ze względu na wysokie stawki minimalne, które są rozliczane w euro lub dolarach, co jeszcze dodatkowo zwiększa nam ostateczny budżet ze względu na przewalutowanie. Warto natomiast rozważyć przetestowanie możliwości sieci. Dzięki niej możemy precyzyjne dotrzeć z ofertą reklamową do ściśle wybranej grupy docelowej.  Ponadto LinkedIn daje ogromne możliwości wzmocnienia komunikacji marketingowej. Dzięki niemu docieramy z promocją konkretnego produktu lub usługi do sprecyzowanej grupy odbiorców. Poprzez posty sponsorowane umożliwiamy także klientom łatwiejsze znalezienie naszej firmy w Internecie. A Wy, jakie macie doświadczenia związane z prowadzeniem kampanii na LinkedIn? Dajcie znać w komentarzach!

Autor:
Agata Marczewska, Paid Search Manager

21 kwietnia 2016

Eksplorator użytkownika, czyli Google zaczyna odsłaniać karty

Nowy raport w Google Analytics, to kolejny ukłon w stronę odejścia od agregowania danych na poziomie sesji i zwrócenia się w kierunku indywidualnego podejścia do każdego użytkownika. Pierwszą przesłanką było wprowadzenie zmiennej i widoku userID, dzięki którym mogliśmy pozyskać więcej informacji o użytkownikach najbardziej lojalnych. Teraz przyszła pora na raport zachowania w obrębie witryny per każdy użytkownik. 

Niespełna miesiąc temu pisaliśmy o nowym, zorientowanym na konkretnego użytkownika, podejściu do analizy danych. Zaproponowaliśmy wdrożenie wymiarów niestandardowych pod postacią ciasteczka Google Analytics oraz stempla czasu. Dla czytelników chcących odświeżyć sobie temat polecam artykuł.

Eksplorator użytkownika, to raport zlokalizowany w sekcji Odbiorcy i jako zupełna nowość, nadal widnieje pod etykietą Beta.


Rozwiązanie to oferuje nam wgląd w kluczowe wskaźniki skuteczności tj. ilość sesji, współczynnik odrzuceń, przychody czy transakcje na poziomie użytkownika.



Uwagę od razu zwraca fakt, iż do powyższej tabeli nie możemy dodać drugiego wymiaru. Nie możemy również wykorzystać Identyfikatora klienta podczas tworzenia raportu niestandardowego. Na szczęście jest dostępna opcja wyeksportowania tabeli do pliku np. csv czy xlsx.
Po kliknięciu w konkretny identyfikator, otrzymujemy szczegółowe zestawienie interakcji danego użytkownika – ciasteczka w obrębie serwisu.


Jednymi z ciekawszych wymiarów są data pozyskania użytkownika oraz kanał pozyskania. Centralna część panelu, to lista kolejnych kroków, jakie poczyniła dana osoba. Dla przejrzystości, możemy zastosować dostępne, interesujące nas filtry:

Zagłębiając się dalej tzn. klikając w działanie na przykład z sekcji E-commerce, otrzymamy szczegółowe zestawienie informacji o konkretnej transakcji.


Dodatkowo, po wybraniu co najmniej jednego działania użytkownika, uaktywnia się opcja tworzenia segmentu, który możemy zastosować zarówno w analizie na danym widoku, jak i wewnątrz eksploratora użytkownika.


Zdecydowanym plusem są szczegółowe informacje, jakie dostarcza nam raport. Potencjalna użyteczność teoretyczna jest ogromna, ale z drugiej strony, użyteczność praktyczna, kuleje. Mamy możliwość jedynie przeklikiwania się przez tabelę, bez opcji wyeksportowania danych do narzędzia zewnętrznego celem dalszej analizy. Skoro Google zaczyna dzielić się z nami pozyskiwanymi informacjami, to istnieje szansa, że z biegiem czasu, będzie to robił w bardziej przystępnej formie. 

Autor: Weronika Kraszula, Digital Analyst