Co jest istotne na ścieżce konwersji? Case z wykorzystaniem Google Analytics.

Co jest istotne na ścieżce konwersji? Case z wykorzystaniem Google Analytics.
5 (100%) 3 votes

Gdy prowadzimy kampanię internetową przy pomocy wielu kanałów mediowych, warto zastanowić się jak duży zysk osiągamy dzięki każdemu z nich. W ten sposób możemy wywnioskować, w które z nich opłaca się inwestować większe środki, a które tak naprawdę przynoszą straty i obniżają wydajność naszego budżetu.

Biorąc jednak pod uwagę fakt, że użytkownik na swojej ścieżce zakupowej może napotykać wiele komunikatów reklamowych na różnych kanałach, trudno jest ocenić, który z nich tak naprawdę przekonał daną osobę do zakupu.

Czytaj dalej

Co nowego w SEM? – Prasówka K2 Search #1

Co nowego w SEM? – Prasówka K2 Search #1
5 (100%) 1 vote

Przed Wami przekrój najciekawszych i zarazem najbardziej istotnych, zdaniem specjalistów z K2, wiadomości z branży search z minionego tygodnia. Nasza prasówka skupia się na informacjach związanych z funkcjonowaniem wyszukiwarki Google oraz nowościach w zakresie optymalizacji serwisów i prowadzenia kampanii Adwords.  Wspominamy również o tematach pokrewnych, satelitach oddziałujących na całą branżę. Zapraszamy do zapoznania się wyselekcjonowanymi materiałami.

1. Google Starts Showcasing ‘Videos From the Web’ in Knowledge Panels

Google ze wsparciem dla „Videos from the Web”! Od teraz materiały wideo będą dostępne również z poziomu Knowledge Graph, co stanowi ciekawe rozszerzenie obecnie udostępnianych treści.

Link do artykułu: https://www.searchenginejournal.com/google-starts-showcasing-videos-web-knowledge-panels/179842/

2. Reklamy typu „kliknij, by wysłać wiadomość” to nowy, łatwy sposób nawiązywania kontaktu z klientami

Google zaoferował reklamodawcom nowe rozszerzenie reklam! „Kliknij by wysłać wiadomość”, to szybki i prosty sposób na nawiązanie kontaktu klienta z usługodawcą.

Link do artykułu: https://adwords-pl.googleblog.com/

3. SEO without SERPs is here with Google Assistant, Home and Amazon Echo. Here’s how to survive

SEO ciągle ewoluuje, czego dowodem są liczne zmiany w sposobie funkcjonowania SERP. Jak jednak wiadomo, na tym SEO się nie kończy, czego dowodem może być Google Assistant, Google Home czy promowane przez Amazon – Echo. Jakie wyzwania stoją przed nowoczesnym SEO w kontekście nowych sposobów wyszukiwania danych i dedykowanych ku temu urządzeń?

Link do artykułu: http://searchengineland.com/seo-without-serps-google-assistant-home-amazon-echo-heres-survive-263763

4. Fun with robots.txt

Prawidłowo funkcjonujący plik robots.txt ważnym elementem optymalizacji jest! Jak jednak prawidłowo podejść do jego tworzenia? Przed wami garść porad od specjalistów branży.

Link do artykułu: http://searchengineland.com/fun-robots-txt-263796

5. 56% Say You Can’t Rank Without Link Building [STUDY]

Czy linkbuilding nadal pozostaje skutecznym sposobem budowania swojej widoczności w wyszukiwarkach? Specjaliści z Search Engine Journal postanowi przyjrzeć się tej sprawie, zapraszamy zatem do zapoznania się z wynikami ich badań.

Link do artykułu: https://www.searchenginejournal.com/56-say-cant-rank-without-link-building-study/179340/

6. Bing Adds Instant Messenger & Chat to Local Business Results

Bing z nowa funkcjonalnością! Użytkownicy mogą kontaktować się teraz z przedstawicielami lokalnych biznesów bezpośrednio z poziomu wyszukiwarki. Zmiany przypominają nowy format reklam od Google, jednak są oferowane bezpośrednio z poziomu knowledge graph.

Link do artykułu: http://www.thesempost.com/bing-adds-instant-messenger-chat-local-business-results/

7. Google drops the Content Keywords feature from Google Search Console

Narzędzie Google Search Console doczekało się kolejnych zmian w swojej funkcjonalności. Po usunięciu możliwości ingerowania w strukturę sitelinków, Google postanowił skasować kolejną funkcję – Słowa kluczowe w treści. Zmiana nie powinna nikogo dziwić, gdyż zmiana była wielokrotnie zapowiadana na przestrzeni ostatnich miesięcy, m.in. przez Johna Muellera.

Link do artykułu: http://searchengineland.com/google-drops-content-keywords-feature-google-search-console-264253

W tym tygodniu to by było na tyle. Po kolejną porcję newsów z branży Search zapraszamy już za tydzień!

O krok przed Facebookiem, czyli o takim jednym zastosowaniu modelu regresyjnego.

Oceń artykuł!

Właśnie policzyłeś średnią ruchomą i jesteś z siebie dumny. My też jesteśmy z Ciebie dumni
🙂 Jednak, jeśli to koniec Twoich obliczeń, to jesteś statystykiem w 2%. Spokojnie, my też nie jesteśmy nimi na maksa. Statystyka, choć to tylko jeden z działów matematyki, jest potężnym zbiorem twierdzeń i ciągle prowadzonych badań. Ważne, by złapać bakcyla, ciągle testować, nie zniechęcać się, aż zobaczymy realny efekt, który z kolei przyczyni się do złapania jeszcze większego bakcyla. 🙂
Bakcyla mamy od zawsze, dlatego zdecydowaliśmy się posunąć z analizami dalej.
Jeden z naszych Klientów – duże przedsiębiorstwo piwowarskie – zawierzył naszym wnioskom budżet potrzebny na wprowadzenie badań w życie, bo prowadzanie kampanii powierzył już dawno. Dzięki temu my zyskaliśmy dane do testowania oraz pewność, że nasze analizy przyniosły rezultaty, a Klient zyski w postaci zoptymalizowanych wydatków. Na czym polegało badanie?

Predykcja optymalnego poziomu inwestycji na wsparcie postów Facebook.

W przypadku standardowej licytacji (CPM, CPC) możemy ustalić maksymalną stawkę i wziąć udział w licytacji. W przypadku oCPM płacimy za 1000 wyświetleń, nie ma tutaj możliwości ustalenia maksymalnej stawki – system ustala ją automatycznie. W zamian za to, algorytm wyświetla reklamy tym użytkownikom, którzy są potencjalnie najbardziej zainteresowani spełnieniem celu kampanii. Przykładowo – jeśli celem kampanii jest zaangażowanie pod postem, system będzie wyświetlał reklamę tym użytkownikom, którzy historycznie często angażowali się w treści marek. Efekt można zwiększyć poprzez odpowiednie targetowanie (demografia, zainteresowania, połączenia społecznościowe). Podczas kampanii prowadzonych stosowaliśmy właśnie ten model rozliczenia. Za przeznaczoną kwotę uzyskujemy odpowiedni zasięg, wyświetlenia, kliki oraz najważniejsze – zaangażowanie użytkownika (może to być like, komentarz, udostępnienie czy wyświetlenie zdjęcia).

Pytanie, jaką kwotę przeznaczyć, by uzyskać odpowiednie i większe zaangażowanie użytkownika? Postanowiliśmy przewidzieć te kwoty. To zmienna, którą objaśnialiśmy. Nie posłużyła nam do tego wbrew pozorom szklana kula, a odpowiednio zbudowany model regresyjny.

Dla niewtajemniczonych, analiza regresji to zaawansowane metody statystyczne badające zależności pomiędzy zmiennymi i pozwalające na ich podstawie na przewidywanie nieznanych wartości zmiennych ciągłych dla ustalonych wartości innych zmiennych.
Przykładowo wiedząc, że trzy lata pod rząd 7 lipca w Islandii o 10 nad ranem było +10stopni, na pytanie o temperaturę 7 lipca o 10 nad ranem w Islandii za rok model odpowiedziałby, że 10 stopni. Tym razem udało się znaleźć odpowiedź gołym okiem, ale jaka temperatura byłaby 8 kwietnia o 17? Z mniejszym lub większym prawdopodobieństwem modele statystyczne są w stanie takie rzeczy przewidzieć.

Zebraliśmy więc maksymalnie wiele informacji, które mogłyby pokazywać zależności w stosunku do zmiennej objaśnianej oraz maksymalnie wiele obserwacji historycznych. Obserwacje to rzecz jasna pakiet informacji o publikowanych wcześniej postach wraz z informacją o przeznaczonej na nie kwotą. W przypadku modeli regresyjnych moc statystyczna modelu jest większa, im więcej obserwacji mamy do nauczenia modelu. Jest też pewna zależność związana z ilością uwzględnionych zmiennych. Tu kolejna ważna kwestia, czyli jakie zmienne w modelu uwzględnić? Szereg procesów służy określeniu tego: badanie korelacji, współczynniki istotności w dopasowanym modelu, kryteria eliminacji wstecznej… Nie tylko zmienne włożone do modelu są niewiadomą. Także zależność występująca między zmienną objaśnianą a zmiennymi objaśniającymi nie jest znana. Jak dobrać odpowiedni model?

Screen poniżej przedstawia dane na początku procesowania.

Najłatwiej jak można – podzielić zbiór w stosunku 2:1. Na większej części należy model budować, na mniejszej zaś testować (nigdy nie należy testować modelu na obserwacjach, na których się uczył). R^2, czyli współczynnik determinacji jest wyznacznikiem dopasowania modelu. Im wartość bliższa 1, tym lepszy model. Następnie na zbiorze testowym staraliśmy się uzyskać jak najmniejszy błąd predykcji. Udało nam się osiągnąć R^2 na poziomie 87%, co jest bardzo satysfakcjonującym wynikiem oraz najmniejszy błąd predykcji na poziomie średnio 19% błędu.

Nauczeni doświadczeniem oraz mając na uwadze przeszkody napotkane podczas zbierania i obróbki zbioru danych, wiemy że jest to poziom satysfakcjonujący. Testy błędów predykcji były procesem długim, opiewającym na wiele statystycznych metod. Wszystko po to, by mieć jak największa pewność, że w sposób optymalny zarządzimy budżetem Klienta.

Przygotowaliśmy, więc dla Klienta klika wersji przewidywanych kosztów z ustalonymi na różnych poziomach wartościami zaangażowaniem, wyświetleniami itd. Tym razem nie było to tylko przeczucie, że „na oko najlepiej przeznaczyć kwotę X zł”, choć nadal zgodnie z intuicją, że im większa przeznaczona kwota, tym lepsze efekty. Tym razem wiedzieliśmy więcej na temat tego jak zarządzać zaangażowaniem, jakimi kwotami dysponować, by wydawać pieniędzy w okresie nas nieinteresującym.
Objaśniliśmy Klientowi istotę funkcjonowania całego systemu, po czym dostaliśmy zielone światło do działania.

Częstotliwość publikowania postów zmusiła do trzymiesięcznego oczekiwania na pełną listę wyników, co zmniejszyło wpływ ewentualnej sezonowości. Nie omieszkaliśmy jednak monitorować sytuacji już wcześniej. Po tym czasie można było podsumować przedsięwzięcie. W trakcie trwania analizy nie zmienialiśmy wcześniej ustalonego targetowania użytkowników. Nie chcieliśmy by ten aspekt miał wpływ na rezultaty badania.

Oczywiście, tak jak było wspomniane na początku, nie może powiedzieć Facebook’owi: ‘chcę mieć tyle i tyle zasięgu’, czy wyświetleń. Nadal jedynym polem do wypełnienia jest przeznaczona na wsparcie postu kwota. Dlatego nie łatwo też było efektywność tego modelu zmierzyć w praktyce.

Postanowiliśmy jednak spojrzeć jak przy dokładnie przez nas rekomendowanej kwocie układa się współczynnik Zaangażowanie / Przeznaczona kwota. Dla przypomnienia zaangażowaniem były wszystkie możliwości wejścia w interakcję z postem: like, komentarz, udostępnienie czy wyświetlenie zdjęcia.
Średnio dla danych historycznych wynosił on około 8.04 akcji na 1EUR, teraz wynosi 11.46 akcji za 1EUR, co daje około 42,5% lepsze wyniki.

Nie było problemem bowiem uzyskać większe zaangażowanie za większą kwotę. Ważne, by to zaangażowanie było kupione taniej. Oczywiście w jakimś stopniu rozjechały się przewidywane wartości zasięgu, czy wyświetleń, jednak takich różnic nie da się uniknąć nigdy. Te wyniki usatysfakcjonowały zarówno nas jak i Klienta.
W naszej ocenie cały przedstawiony powyżej proces można zastosować do innych usług jak np. kampanie Adwords.

Czy każda podstrona serwisu została otagowana kodem śledzenia?

Oceń artykuł!

Jako analitykom nie bojącym się wyzwań, zdarza nam się dostać pod opiekę serwis, na którym śledzenie przy pomocy Google Analytics nie jest skonfigurowane poprawnie. Na niektórych podstronach czasem w ogóle brakuje kodu śledzącego. Mogło się tak zdarzyć na przykład dlatego, że na przestrzeni czasu ta podstrona została dodana do już istniejącego serwisu, jednak nikt nie zadbał o jej otagowanie. To jasne, że tak nie może zostać. Nie sposób jednak przeklikiwać się ręcznie przez wszystkie podstrony. Poniżej przedstawimy dwa sposoby, dzięki którym radzimy sobie z tym problem.
Każdy z nich wykrywa w kodzie źródłowym strony obecność fragmentu tekstu. Wystarczy zatem znaleźć fragment jednoznacznie identyfikujący kod śledzenia. Jeśli poszukiwać będziemy standardowo zaimplementowanego kodu Google Analytics, może to być nazwa biblioteki np. ‘analytics.js’, bądź numer UA, jeśli jest znany. Jeżeli śledzenie jest zaimplementowane z poziomu Google Tag Managera należy obrać do poszukiwań fragment jednoznaczny dla kontenera GTM, np. ‘gtm’ lub jego nazwę czy numer.

Czym różnią się wykorzystane narzędzia? Jedno z nich jest darmowe, operacyjnie bardziej skomplikowane i czasochłonne, drugie zaś szybkie, proste w obsłudze, lecz płatne.

Zacznijmy płatnej metody posługując się przykładowym serwisem fundacja.tvn.pl (przeszukiwanie można wykonać dla dowolnego serwisu dostępnego w Internecie). Gwoli wytłumaczenia na serwisie obecny jest jeden kod śledzący Google Analytics (UA-31024193-17) zaimplementowany z poziomu Google Tag Managera o numerze GTM-LTQS, tzn w kodzie strony fizycznie widać tylko kontener GTM.

1. Screaming frog.

Całość rozgrywa się w zakładce Custom. W polu ‘Enter url to spider’ wpisujemy domenę, która chcemy przeszukać, następnie klikamy ‘Configuration’ -> ‘Custom’. Oczom ukaże się okienko ‘Custom Filter Configuration’. Do wyboru opcje ‘zawiera’ i ‘nie zawiera’. Chcąc sprawdzić czy na każdej z podstron serwisu w źródle strony umieszczony jest dany fragment tekstu np. „1111” wykorzystujemy filtr 1: Does not contain: 1111. Klikamy start.

Jeśli program znajdzie nieotagowane podstrony wyrzuci ich adresy na tablicę, z wartością zmiennej Occurrences równą jeden.

Otrzymaliśmy 317 rekordów.

Zastosujmy teraz filtr 2 sprawdzający obecność frazy jednoznacznie identyfikującej zaimplementowany w kod strony kontener GTM.

Jak widać w zaznaczonej kolumnie, program na każdej podstronie serwisu znalazł 5 razy frazę „GTM”.

Łatwo o wniosek, że Screaming Frog nie rozróżnia wielkości liter. Braków tym razem nie zanotowano.

Czas przeszukiwania nie zostawia wiele do życzenia, szczególnie kiedy można narzędzie zestawić dla porównania z innym sposobem, darmowym, opisanym niżej.

2. Xenu + Seo tools for Excel

Oba narzędzia są produktami darmowymi. Xenu pozwala wyszukać wszystkie podstrony serwisu. File -> Check URL otwiera okno, które widać na poniższym screenie. W pierwsze pole wpisujemy nazwę domeny następnie ‘OK’.

Czas przetwarzania danych jest tu zdecydowanie dłuższy ponieważ narzędzie analizuje nie tylko pliki txt/html, ale wiele innych rdzajów np. txt/csss czy image/jpeg. Fie -> Export to TAB separated file zapisze wyniki jako plik .txt który należy następnie wczytać do Excela. Wczytane dane należy przefiltrować jedynie po formacie ‘text/html’.

Do tak otrzymanych danych należy zastosować bezpłatny dodatek do Excela – Seo Tools. Można go pobrać tutaj . Uruchamiać go trzeba każdorazowo po otwarciu pliku Excel. Do jego prawidłowego działania niezbędna jest instalacja .Net Framework.
W zakładce ‘Seo Tools’ klikamy w pierwsze pole paska „Onpage” i tam znajdujemy funkcję „InFoundOnPage”.

Pierwsze pole to URL, po którego kodzie źródłowym przeszukujemy, drugie to fragment tekstu, którego szukamy. Dla przykładu niech to będzie fraza ‘1111’, ’GTM’, ’gtm’, ’UA-’. Jeśli w kodzie nie zostanie znaleziony interesujący tekst to otrzymamy wartość równą zero.

Takie wyniki otrzymaliśmy zgodnie z prawdą w kolumnie B i E. Kolumna B jest adekwatna do wyników otrzymanych przy pomocy Screaming Frog. Warto zauważyć, jak pokazano w kolumnach C i D, że Seo Tools rozróżnia wielkość liter. Potwierdzamy zatem obecność jednego kontenera, z którego poziomu zaimplementowany jest jeden kod GA. Braków kontenera nie zanotowano.

Tym razem otrzymaliśmy 327 rekordów. I tu przyda się spora dawka cierpliwości, gdyż funkcja w Excelu także działa bardzo wolno.

Teraz każdy z Was może już na własną rękę przeprowadzić audyt otagowania kodem śledzenia, nie tylko kodem Google Analytics. Wybór narzędzia należy już do Was 🙂

Szkolenie i egzamin Google Analytics

Oceń artykuł!

W dniach 14 i 15 października miejsce miały warsztaty Google Analytics, których podsumowaniem był egzamin certyfikacyjny. Na miejscu nie mogło zabraknąć oczywiście ludzi reprezentujących K2, pośród których znajdowała się moja skromna osoba. Szkolenia były prowadzone przez Macieja Lewińskiego oraz Lecha Krupę, którzy całość materiału podzielili na dwie części. Pierwszego dnia miejsce miało szkolenie obejmujące podstawowe zagadnienia związane z Google Analytics, podczas gdy dnia następnego przedstawiane były już bardziej zaawansowane informacje.

Dzień 1

Szkolenie podstawowe rozpoczęło się od wprowadzenia, mającego na celu uzmysłowienie uczestnikom jak ważne jest osadzenie procesu zbierania i analizy danych w strategii przedsiębiorstwa i w jego celach marketingowych. Można uznać to za truizm, jednak obecnie wiele firm podpina kody śledzące Analyticsa i… na tym koniec. GA stał się już swego rodzaju standardem, chociaż tylko niewielka część jego użytkowników prawidłowo śledzi konwersje, zbiera dane istotne z perspektywy swojej działalności oraz potrafi oddzielić te nieistotne. Pozostała część pierwszego dnia szkolenia upłynęła pod znakiem objaśniania podstawowych funkcjonalności Google Analytics oraz zapoznawania zgromadzonych z jego interfejsem. Szczegółowo omówiony został również sam proces implementacji GA, co było bardzo przydatne dla nowych użytkowników tego produktu Google.

Google Analytics

Dzień 2

Drugi dzień szkolenia wyraźnie różnił się od pierwszego i zawierał już bardziej zaawansowane informacje oraz charakteryzował się problemowym podejściem do tematu. O ile dnia poprzedniego bardziej doświadczeni użytkownicy Analyticsa mogli momentami czuć się znużeni, to dnia drugiego zostało im to wynagrodzone. Informacje na temat segmentów i raportów niestandardowych, modułu e-commerce, atrybucji konwersji, GTM oraz integracji z AdWords były popierane praktycznymi przykładami. Prowadzący zadbali również o aktywne angażowanie uczestników w dyskusje, co w połączeniu z szeregiem anegdot nie pozwoliło zgromadzonym osobom na nudę. Oczywiście Ci najbardziej doświadczeni uczestnicy zapewne nie byli zaskoczeni przeważającą częścią materiału, jednak myślę że nawet dla nich było to cenne doświadczenie i pozwoliło na odkurzenie oraz usystematyzowanie swojej wiedzy. Zaobserwować można to było chociażby po frekwencji, która to dnia drugiego była wyższa

Na zakończenie szkolenia uczestnicy otrzymali możliwość zdawania egzaminu certyfikacyjnego Google Analytics. Oczywiście możliwość taka dla osób zarejestrowanych w Google Partners jest zawsze. Jednak czteroosobowa delegacja z K2 postanowiła skorzystać z okazji i podejść do egzaminu na miejscu.

Egzamin Certyfikacyjny

Sam egzamin jest dostępny wyłącznie po angielsku. Być może kiedyś możliwe będzie zdawanie go w naszym ojczystym języku, jednak w najbliższej przyszłości nie zanosi się na to. Składa się on z 70 pytań, na które do dyspozycji mamy 90 minut. Czy to dużo? Osobiście uważam, że jak najbardziej wystarczająco. Oczywiście wiele zależy od naszej znajomości angielskiego, ale osoby, które rozwiązują go samodzielnie nie powinny mieć problemów z wyrobieniem się w limicie czasowym. Wynikiem zaliczającym egzamin jest próg 80%.

Materiały Google AnalyticsPytania obejmują materiały udostępnione w Google Partners, przydatne również okazały się tematy poruszane na szkoleniu. Nie mamy gwarancji, że te dwa źródła będą obejmowały wszystkie 70 pytań, z jakimi będzie dane nam się zmierzyć, jednak jest na to bardzo duża szansa. Dobra wiadomość dla osób aktywnie i systematycznie korzystających z Google AdWords – duża ilość pytań jest „problemowa”. Co to oznacza? Czasami możemy otrzymać konkretny przykład z danymi z Analyticsa. Mogą to być chociażby cztery produkty w module e-commerce, a my mamy wybrać najbardziej dochodowy. Oczywiście zdarzają się również pytania typowo teorytyczne i wymagające od nas znajomości interfejsu Analyticsa oraz sposobu, w jaki zbiera i segreguje on dane. Osobiście uważam egzamin za umiarkowanie trudny, z którym osoby związane zawodowo z marketingiem internetowym powinny sobie poradzić. Jeżeli nie uda się za pierwszym razem – nic straconego! Do egzaminu można podchodzić ponownie. Sam certyfikat ważny jest na okres 18 miesięcy, po tym czasie trzeba go odnowić.

Oczywiście wszyscy z K2 zdali egzamin śpiewająco i od tej pory formalnie posiadają certyfikat Google Analytics. Wygląda on tak:

Certyfikat Google Analytics

Jeden ze sposobów śledzenia adresów URL po hashu (#).

Oceń artykuł!

Standardowo, tzn. bez dodatkowych konfiguracji i zmian kodowych, Google Analytics nie śledzi tego co w adresach URL znajduje się po hashu (#). Innymi słowy GA ma problemy ze śledzeniem dynamicznie zmieniającej się treści strony. Dla zobrazowania podstrona o adresie www.domena.pl będzie odbierana w widoku konta Google Analytics bez filtrów jako Strona Główna „/”. Podstrony o adresach:

www.domena.pl/#podstrona1
www.domena.pl/#podstrona2

także będą w GA odbierane jako „/”, co mocno zaburza ważne statystyki. Do rozwiązania tego problemu należy podejść różnie w zależności od implementacji kodowej. Dla GATC (Google Analytics Tracking Code) umieszczanego standardowo w kodzie strony znajdujemy już setki porad w Internecie. Dla nowszych rozwiązań typu implementacja Google Analytics z poziomu Google Tag Managera jest ich już znacznie mniej, dlatego zaprezentujemy niżej jedno z nich. Jego zaletą jest niewątpliwa prostota, ponieważ nie wymaga implementacji żadnych dodatkowych niestandardowych tagów html czy javascript.

Mogliście się już spotkać z dedykowanym do tego typu problemów odbiornikiem historii. Czym on jest? Krótko mówiąc, zadaniem odbiornika historii jest wykrywanie zmian w URL, które dzieją się w związku z # w adresie i przekazywanie ich odpowiednio w wartościach zmiennych newUrlfragment (przyjmuje wartości na jakie zmienił się fragment URL po #) oraz oldUrlfragment (przyjmuje wartości z jakich zmienił się fragment URL po #). Nie szukalibyśmy jednak udoskonaleń, gdyby użycie samego odbiornika zawsze było wystarczające.

Mieliśmy do czynienia z trzema przypadkami:

1. Odbiornik nie rejestrował pojawiania się pierwszego adresu z hashem, a dopiero każdą kolejną zmianę. Jaśniej mówiąc przejście z www.domena.pl/ na www.domena.pl/#podstrona1 nie było rejestrowane przez odbiornik. Dopiero przejście z www.domena.pl/#podstrona1 na www.domena.pl/#podstrona2 było.

2. Przeładowanie podstrony www.domena.pl/#podstrona także nie było zarejestrowane przez odbiornik.

3. Strony zmieniały się dynamicznie, jednak fizycznie # w adresie nie było tego widać. Odbiornik działał, ale żadne zmiany nie były przekazywane do zmiennych newUrlfragment oraz oldUrlfragment.

Rozwiązaniem powyższych przypadków jest stworzenie nowego makra {{URL fragment}} i wykorzystanie go w odpowiedniej kombinacji dwóch tagów.

Pierwszym tagiem będzie implementacja odbiornika historii. W Google Tag Manager wybieramy odpowiedni tag i ustawiamy regułę dla wszystkich stron (opcjonalnie dla stron odpowiedniej domeny).

Następny tag będzie służył rejestracji wszystkich odsłon. Makro {{id GA}} to oczywiście numer usługi jednoznacznie identyfikujący, gdzie do Google Analytics mają wpadać dane. Ważną czynnością jest dokonanie zmian w sekcji Więcej ustawień -> Podstawowa konfiguracja, gdzie w polu Ścieżka dokumentu należy wpisać w zależności od struktury URLi serwisu {{url path}}/{{url fragment}} lub {{url}}/{{url fragment}}.

W ścieżce pierwsze makro {{URL}} lub {{URL path}} będzie zawsze odpowiadało za adres URL poprzedzający hash. Definicje można znaleźć w samym interfejsie Google Tag Managera, jak pokazano na zrzutach niżej.

{{URL}}

{{URL path}}

Drugie makro w ścieżce do dokumentu {{URL fragment}} (screen poniżej) odpowiada za przekazywanie wartości po hashu i tym samym rozwiązuje problem nr 3, ponieważ nie wykorzystuje zmiennych newUrlfragment oraz oldUrlfragment.

Ważne, by odpowiednio zdefiniować także reguły mówiące o tym, w jakich warunkach ten tag powinien zadziałać. Na jednym z powyższych zrzutów te reguły zaznaczone są numerami 1 i 2. Pierwsza będzie uruchamiała tag dla zmian bez przeładowań strony. Opiera się ona na działaniu wcześniej zaimplementowanego odbiornika historii.

Reguła z numerem 2 to reguła ‘All pages’. Wysyła ona hity odsłon dla każdej strony z przeładowaniem i jest defaultowa. Używaliśmy jej już wcześniej. Jednak teraz adresy podstron wysyłane do GA będą już zawierały także fragment adresu z hashem. W ten sposób rozwiązaliśmy problem 1 i 2.

Dobrnęliśmy właśnie do końca implementacji śledzenia podstron po hashu. Proste rozwiązanie wielu problemów. 🙂

Generowanie niestandardowych raportów przy pomocy API Google Analytics

Oceń artykuł!

Wymagający analitycy webowi często napotykają sytuacje, w których ‘kończą’ się standardowe możliwości przeglądarkowej aplikacji Google Analytics. Raporty niestandardowe nie zawsze pozwalają na zestawienie takiej kombinacji wymiarów i metryk jaką byśmy chcieli. Eksportować do plików można tylko to, co widać w interfejsie, przykładowo maksymalnie 5000 wierszy. Nie pomagają już żadne działające niegdyś sztuczki zwiększające tę ilość.

W takim wypadku pozostaje jedynie uciec się do interfejsu API eksportu danych. Jest on obsługiwany przed kilka języków programowania (Java, PHP, Python, JavaScript) i bez pomocy doświadczonego programisty faktycznie się nie obejdzie. Jeśli nie dysponujemy doświadczonym programistą należy szukać rozwiązania na własną rękę. Co poniektórym wystarczy korzystanie z narzędzi typu http://ga-dev-tools.appspot.com/explorer/, które pozwala na swobodne łączenie wymiarów i metryk, lecz z ograniczeniem do 10 tys. wierszy.

Przedstawiamy zatem lepsze rozwiązanie, które takich ograniczeń nie posiada – pakiety do R. Zachęcając tym samym do poznania tej darmowej platformy pełnej zalet.

Dla części analityków znana jest już pewnie się dźwięczna nazwa „R”. Dla pozostałych – R jest de facto także językiem programowania lecz o niezwykle niskim progu wejścia, co daje duże możliwości już z wykorzystaniem prostej składni. Duża liczba dostępnych funkcji statystycznych czyni R podstawowym językiem bioinformatyki lecz z powodzeniem wykorzystywany jest też do obróbki danych, automatycznego raportowania oraz zaawansowanych wizualizacji.
Instalacja z linku http://cran.r-project.org/mirrors.html to tzw. poziom ‘base’,który daje dostęp do wielu pakietów. Potrzeba użycia dodatkowej funkcji skłania do instalacji kolejnych pakietów. Polecam podczas instalacji odznaczenie opcji automatycznego tłumacza, ponieważ nie jest on precyzyjny. Dodatkowo Internet dysponuje szerszym spektrum pomocy anglojęzycznej.

Aby wygenerować dane z Google Analytics przez API będziemy musieli zainstalować kilka nowych pakietów. Jednak bez strachu. Zwykłe kopiowanie poleceń wystarczy, by sobie poradzić ze sprawą. Tymczasem zainteresowanych odsyłam do szerokiej gamy literatury, także elektronicznej, wprowadzającej oraz rozwijającej możliwości wykorzystania platformy. Szczególnie polecam pozycję „Przewodnik po pakiecie R”dr Przemysława Biecka (http://www.biecek.pl/), mojego ówczesnego wykładowcy Politechniki Warszawskiej programowania w tym języku.

File -> New Script otwiera notatnik, do którego będziemy wklejać kody.

Najważniejsze – kod z poziomu notatnika wykona się na Windowsach po zaznaczeniu odpowiedniego fragmentu lub umieszczeniu kursora w odpowiedniej linii, a następnie jednoczesnym naciśnięciu Ctrl+R.

Ten wstęp był nam potrzebny, by przejść do instalacji właściwych pakietów. Większość takich instalacji odbywa się z wykorzystaniem polecenia

install.packages(„nazwa pakietu”)

i jest jednorazowa dla wersji platformy. Jednak każdorazowe uruchomienie R wymaga ponownego załadowania pakietu poleceniem

library(„nazwa pakietu”).

Potrzebne nam pakiety instalujemy i ładujemy poleceniami

install.packages(„devtools”)
library(devtools)
install_github(„rga”, „skardhamar”)
library(rga)

Teraz kolej na autoryzację. Podczas wykonywania zamieszczonych niżej linijek kodu trzeba być zalogowanym do swojego konta Google Analytics.

options(RCurlOptions = list(cainfo = system.file(„CurlSSL”, „cacert.pem”, package = „RCurl”)))
rga.open(instance=”ga”)

Akceptacja wygeneruje specjalny token,

który należy wkleić do konsoli. Klawisz Enter nada dostęp do danych w naszym koncie Google Analytics.

Dalej potrzebny będzie identyfikator widoku danych, do którego chcemy się odwołać. Można go znaleźć w panelu Administratora -> Ustawienia Widoku lub znaleźć go dzięki poleceniu

ga$getProfiles()

wykonanym w R.

Na podstawie wspomnianego identyfikatora tworzymy obiekt np. o nazwie id

id=”identyfikator widoku danych”

i możemy już skonstruować interesujące zapytanie. Poniższy kod to przykład bardzo dobrze obrazujący strukturę funkcji.

zbior<- ga$getData(id, start.date=”2014-07-01″, end.date=”2014-07-31″,
metrics = „ga:pageviews,ga:bounceRate”,
dimensions = „ga:pagePath,ga:medium,ga:source,ga:hour”,
sort=”-ga:pageviews”,
filter=”ga:medium==organic”,
start = 1,
max = 10 )

Argumenty funkcji są intuicyjne. Przykład ukazuje łatwość z jaką zestawiamy dowolne metryki i wymiary. Zapytanie określone jest dla miesiąca lipca 2014. Pokazuje liczbę odsłon oraz współczynnik odrzuceń dla adresów podstron powiązanych ze źródłem, medium i godziną. Filtr ogranicza medium do organica. Maksymalna liczba obserwacji to 10 pierwszych pozycji posortowanych malejąco. Łatwo przerobić kod na własne potrzeby, dodać lub usunąć elementy składowe. Dane przypisywane są do obiektu o nazwie ‘zbior’.

Wywołanie nazwy obiektu ‘zbior’ pokaże dane jak pokazano niżej.

Inny przykład na pokonanie problemu ograniczenia wymiaru obserwacji. Na przykład: okazało się, że w owym miesiącu mamy aż 393 369 różnych adresów URL podstron.

Nas jednak interesuje jedynie 55 500 pierwszych adresów. Musimy kod wzbogacić o argument batch = TRUE. Funkcja działa wtedy na zasadzie tworzenia dziesięciotysięcznych przedziałów. Zwrócona liczba obserwacji będzie górnym krańcem dziesięciotysięcznego przedziału, w jakim mieści się szukana wartość argumentu max. W naszym przypadku będzie to 60 000. By wydobyć wszystkie obserwacje argument max najłatwiej pominąć.

zbior<- ga$getData(id, start.date=”2014-07-01″, end.date=”2014-07-31″,
metrics = „ga:pageviews”,
dimensions = „ga:pagePath”,
sort=”-ga:pageviews”,
max=55500,
batch = TRUE)

Polecenie

dim(zbior)

pokazuje w konsoli wymiar obiektu. Widać, że uzyskaliśmy spodziewane 60 000 obserwacji.

Polecenie

write.table(zbior,file=”ŚcieżkaDoFolderuDoKtóregoZostanieWurzuconyPlikZdanymiZOdwróconymiSlashami/zbior.txt”,row.names = FALSE)

zapisze zbiór danych do pliku .txt, którym możemy się posługiwać już poza platformą R.

Zwracam uwagę na odwrócenie „” na „/” w ścieżce do folderu.

Posługując się nazwą obiektu można wykonywać na nim dowolne operacje wedle potrzeby i oczywiście umiejętności. Można chociażby stworzyć wykres funkcją barplot. Składnię tej, jak i każdej innej funkcji można sprawdzić w pomocy R wywołując nazwę danej funkcji poprzedzonej znakiem zapytania. W naszym przypadku zatem wykonując polecenie ?barplot. Taki wykres można zaś w dowolnej formie eksportować poza R. Poniżej bardzo prosty przykład. Wykres najlepiej zastępuje opis kodu.

zbior <- ga$getData(id, start.date=”2013-01-01″, end.date=”2013-12-31″,
metrics = „ga:visits”,
dimensions = „ga:month” )

barplot(zbior$visits, main=”Wizyty w 2013 w ujęciu miesięcznym”,
names.arg=c(„styczeń”,”luty”,”marzec”,”kwiecień”,”maj”,”czerwiec”,
„lipiec”,”sierpień”,”wrzesień”,’październik’,”listopad”,”grudzień”),
las=2, col=rainbow(12))

By opisać w całości możliwości R w odniesieniu do Google Analytics potrzeba by napisać książkę, dlatego jeszcze raz odsyłam do literatury poświęconej tej platformie. Kilka godzin zabawy z programem wystarczy, by poczuć się pewniej w jego obsłudze. Jeśli dotrwaliście do końca tego posta tzn., że poczyniliście pierwsze kroki w posługiwaniu się API Google Analytics 🙂

Pomiar ruchu w ramce iFrame

Oceń artykuł!

Ramki iFrame oraz konta zbiorcze (tzw. roll up) – dwa tematy, których konfiguracja niejednego, szczególnie początkującego analityka webowego, przyprawia o przyspieszone tętno. I wcale nas to nie dziwi, szczególnie, że od jakiegoś czasu ‘stare’ instrukcje, tzn. dotyczące konfiguracji Google Analytics z kodem śledzenia ga.js oraz jego wariacji dc.js, przestają być użyteczne. Dzieje się tak z powodu wszechogarniającej migracji usług do najnowszej wersji Universal Analytics. Osoby, które o tym nie słyszały, zachęcamy do zapoznana się z tematem, zanim nastąpi straszny dzień, w którym dane przestaną się zbierać. Usługę Universal Analytics, można zaimplementować standardowo – umieszczając tracker biblioteki analytics.js w źródle strony lub z poziomu kolejnej nowości – Google Tag Managera.

Nierzadko mamy do czynienia z ramkami iFrame umieszczonymi na naszych serwisach, łopatologicznie mówiąc, ze stroną umieszczoną w stronie. Takimi ramkami są najczęściej formularze, a jeśli coś innego, to i tak sprowadza się to do jednego problemu: jak monitorować zachowanie użytkonika w tej ramce, nie umieszczając w GA błędnych informacji. Poradzimy sobie z tym dzięki konfiguracji konta zbiorczego. Poniżej przedstawimy taką konfigurację z opcją otagowania przycisku Wyślij w formularzu iFrame zarówno dla standardowego osadzenia kodu Universal Analytics, jak i dla kodu wstawianego poprzez Google Tag Managera.

Iframe w tej samej domenie co serwis.

Zaczynijmy od mniejszego zła, tzn. ramek w tej samej domenie co nasza witryna. Pomoc Googla nakazuje podstawowy kod śledzący GA umieścić na każdej podstronie naszego serwisu (podstawowy – wygenerowany z poziomu Administratora Analyticsa, niezmodyfikowany). Umieszczenie dodatkowo w kodzie ramki dokładnie takiego samego trackera GA prawie załatwia sprawę. Dla przypadku implementacji via GTM zamieszczamy w kodzie ramki kontener GTM, a następnie dopasowujemy regułę tagu Universal Analytics, tak by odpalał się na każdej stronie posiadającej ten kontener. Ta sama domena niweluje problem przekazywania informacji na temat źródeł ruchu. Jednak popełniamy tu znaczący błąd. Podczas załadowania stronki z ramką, GA fizycznie zarejestruje dwie odsłony, podczas gdy faktycznie dla nas to tylko jedna odsłona.

Rozwiązanie dla obu opcji jest proste – zapobiec wywoływaniu się odsłony w ramce.

W standardowej implementacji, należy usunąć z tracker ramki linijkę odpowiedzialną na wywoływanie odsłony, jak poniżej pokazano:

Dla implementacji poprzez GTM, należy usunąć tę podstronę z reguły tagu aktywującego kod z odsłoną GA, jak poniżej:

Teraz wystarczy odpowiednio otagować wypełnienie forlumarza zdarzeniem (dla każdej z metod implementacji GA wygląda to inaczej, co stanowi materiał na oddzielnego posta) i gotowe.

Pora na drugi przypadek..

IFrame w innej domenie niż serwis.

Otagowanie buttona ‚Wyślij‘ jak wyżej nie przekaże prawidłowego źródła pochodzenia użytkownika a jedynie domemę, w której umieszczona jest ramka. Chcielibyśmy traktować te domeny jak jedność, tzn poruszając się między nimi przekazywać informację o pierwotnych źródłach ruchu. Oto jak podejść do tego technicznie.

Standardowa implemenatcja Universal Analytics wymaga następującej modyfikacji kodu:

Zwracam uwagę na brak linijki odpowiadającej za wywoływanie odsłony w ramce. Uważać też należy, by nie przekleić bezmyślnie numeru UA-XXXXXX-X. To jest numer usługi, który jednoznacznie identyfikuje, do której usługi mają wpadać dane w narzędziu Google Analytics. Identyfikator ten znajdziemy w panelu Administratora, w zakładce Ustawienia Usługi. Numer UA nie zmienia się na każdej z witryn, ponieważ chcemy, by dane z różnych domen zbierały się w jednym miejscu.

Sama modyfikacja kodowa to za mało. Należy także wykluczyć owe domeny z poziomu samego Analyticsa odwiedzająć zakładkę Administrator -> Odsyłająca lista wykluczeń:

Konfiguracja z poziomu GTM, to także wykluczenia z poziomu Administratora Google Analyticsa, ale przede wszystkim następująca konfiguracja z poziomu interfejsu narzędzia:

Zdarzenia konfigurujemy zmieniając w nich jedynie domenę pliku cookie na ‚auto’ analogicznie jak powyżej. Należy nadal pamiętać o wykluczeniu z reguły adresu ramki.

Tym samym poradziliśmy sobie nie tylko z tagowaiem iFrame, ale także z tworzeniem konta zbiorczego. Samo konto zbiorcze pozwala patrzeć na dane w ujęciu całościowym, np kiedy jesteśmy właścicielami domena.pl, sub.domena.pl, sub2.domena.pl i każda z nich linkuje do każdej. Ważne, by wiedzieć skąd użytkownik przybył na którąś z nich (np. z google, cpc) niż jak przechodził pomiędzy nimi. Prawidłowo skonfigurowane konto zbiorcze daje takie informacje.


UWAGA:

To co zaimplementujemy niezwłocznie sprawdzamy w raportach Czasu Rzeczywistego. Google Analytics zachowuje się jednak w tym przypadku dość nietypowo. W momencie, kiedy uruchomiony zostaje tag w ramce, nie zanotujemy odsłony, natomiast w Raportach Zawartości Czasu Rzeczywistego pojawią się adresy URL ramek, które nie trafią do raportów.

W testowaniu pomoże filtr dodający nazwę hosta do adresu URI, skonfigurowany jak poniżej. Taki filtr jest niezbędny dla kont zbiorczych śledzących domeny, z których chcemy rejestrować wszystkie odsłony. Pozwala on odróżniać domeny w raportach.

To nie wszystkie anomalia. Podobnie dzieję sie w przypadku źródeł i mediów ruchu. Zrzut poniżej jest tego dowodem. Do Raportów ruchu trafiają już prawidłowe źródła.

Ciężko wyjaśnić czemu Analytics tak się zachowuje. Pracy to nie ułatwia, ale warto mieć świadomość takiego zachowania. Sprawdzając wyniki za jakiś czas będziemy mogli się przekonać, że wszystko jest w porządku.

Dziwne źródło konwersji

Oceń artykuł!

Czy zdarzyło się Wam, że patrząc na źródło konwersji – rejestracji w Google Analytics mieliście nietypowe wyniki w postaci nieoczekiwanie dużej ilości konwersji z direct (strona bezpośrednio wpisywana do przeglądarki)? Jednocześnie ilość konwersji z pozostałych źródeł był niższy niż oczekiwaliście?

Pewnie pomyśleliście wówczas, że należy zrezygnować z kampanii skoro siła Waszej marki (ruch direct) daje lepsze rezultaty. Zanim to zrobicie przyjrzyjcie się dokładniej jak generowane są w danym profilu konwersje.

Najczęstszy scenariusz rejestracji wygląda następująco:

Użytkownik wypełnia formularz -> Klika w przycisk Rejestruj -> Otwierana jest strona z informacją o wysłaniu na adres e-mail linka potwierdzającego rejestrację -> Użytkownik klika w link z maila -> Otwierana jest strona podziękowania informująca o zarejestrowaniu

Najczęściej celem liczenia rejestracji w konwersjach wstawiamy ostatni adres URL – strona podziękowania za rejestrację.

Załóżmy, że użytkownik korzysta z przeglądarki Firefox oraz używa Outlooka do odczytywania maili (dosyć popularna konfiguracja). Na stronę trafił z kampanii Google Adwords. Klikając w link aktywacyjny otwiera mu się wówczas domyślnie strona z podziękowaniem w Internet Explorerze. W związku z tym (różne przeglądarki dla wypełnianego formularza oraz otwieranej strony podziękowania za rejestrację) w Google Analytics tworzona jest nowa wizyta ze źródłem direct. Tak traktowane są wizyty z adresów URL otwieranych w programach pocztowych o ile adresy te nie są w odpowiedni sposób otagowane.

Zatem pomimo, że realnie, w powyższym przykładzie konwersja została wygenerowana przez Adwords, w Google Analytics będzie ona przypisana wizycie bezpośredniej.

Jak sobie z tym poradzić?

Jeżeli jest taka możliwość to można przekazywać źródło wizyty użytkownika do treści maila potwierdzającego rejestrację (konkretnie wstawić odpowiednie UTMy w adresie URL linka aktywującego).
Innym sposobem jest dodanie do funkcji onclick przycisku „Rejestruj” wirtualnej odsłony lub zdarzenia (tylko wówczas gdy formularz jest poprawnie zwalidowany), a następnie przypisanie ich w celach. Wówczas jednak musimy pamiętać o tym, że liczymy w konwersjach liczbę wysłanych maili z linkiem aktywacyjnym, a nie liczbę potwierdzonych rejestracji.

Modelowanie atrybucji w Google Analytics

Oceń artykuł!

Wczoraj w Warszawie odbył się XIII SEMcamp, na którym jak zwykle działo się dużo i ciekawie.

Prelekcja Przemka Modrzewskiego zainspirowała mnie do napisania kilku słów o nowej  funkcjonalności Google Analytics – modelowaniu atrybucji.

Jest to narzędzie do badania skuteczności podejmowanych przez nas działań marketingowych. Do tej pory była to funkcja dostępna jedynie w wersji Premium, jednak teraz Google zdecydował się na udostępnienie jej szerszemu gronu odbiorców.

Modelowanie atrybucji rzuca nowe spojrzenie na analizę kanałów dystrubcji. Jak wiadomo Google Analytics przypisuje konwersję do ostatniego źródła. Jednak zanim do niej dojdzie użytkownik często wykonuje serię wizyt na naszej stronie, a każda z nich może pochodzić z innego źródła. Jak zatem rozstrzygnąć, która z wizyt jest dla nas najważniejsza? Pierwsza, dzięki, której klient zapoznaje się z witryną,  czy ostatnia, po której następuje konwersja? A może wszystkie są równie istotne?

Tu z pomocą przychodzi modelowanie atrybucji. Daje ono możliwość tworzenia, dostosowania i porównania modeli z wykorzystaniem wszystkich kanałów marketingu internetowego, z  jakich korzystamy m.in.: w płatnych i bezpłatnych wynikach wyszukiwania, mailingu, marketingu afiliacyjnym, reklamach displayowych, mobilnych miejscach docelowych itp. Pozwala to na wnikliwą ocenę efektywności źródeł ruchu.

Google Ananytics daje nam do wyboru kilka domyślnych modeli atrybucji:

  • Ostatnia interakcja – przydziela 100% udziału w wartości konwersji ostatniemu kanałowi, z którym klient wchodził w interakcję przed zakupem lub konwersją.
  • Ostanie kliknięcie niebezpośrednie – ignoruje odwiedziny bezpośrednie i przydziela 100% udziału w wartości konwersji ostatniemu kanałowi, w którym klient kliknął przed zakupem lub konwersją.
  • Ostanie kliknięcie AdWords – przydziela 100% udziału w wartości konwersji ostatniej reklamie AdWords, którą klient kliknął przed zakupem czy konwersją.
  • Pierwsza interakcja – przydziela 100% udziału w wartości konwersji pierwszemu kanałowi, z którym klient wchodził w interakcję przed zakupem lub konwersją.
  • Liniowy – przydziela taki sam udział wszystkim kanałom interakcji na drodze do konwersji.
  • Rozkład czasowy – Ten model przypisuje największy udział punktom styku najbliżej czasu konwersji.
  • Uwzględnienie pozycji – Zamiast przydzielać cały udział pierwszej lub ostatniej interakcji, możemy go podzielić między nie.

Istnieje też możliwość tworzenia niestandardowych modeli, gdzie sami określamy reguły udziału w wartości konwersji.

Jak wykorzystać to narzędzie w praktyce?

Na powyższym screenie doskonale widać jak wiele zależy od modelu atrybucji, z którego będziemy korzystać. W przypadku modelu ostatniej interakcji wartość konwersji z wyszukiwania płatnego wynosi 16 055 zł, natomiast w modelu pierwszej interakcji wartość konwersji dla tego samego kanału wynosi 20 195 zł.

Wyszukiwanie płatne w przypadku tej kampanii jest więc wartościowym medium inicjującym proces zakupu, który domykają inne kanały.

Analizując dane uzyskane za pomocą narzędzia modelowania atrybucji możemy w łatwy sposób zweryfikować opłacalność i zgodność z naszymi celami wykorzystywanych przez nas kanałów marketingowych. Dużo łatwiej i efektywniej możemy zarządzać budżetem marketingowym, co z w efekcie powinno przełożyć się na wzrost zwrotu z inwestycji.

Strona: 1 z 2