10

Mam aplikację, która przesyła dane do Google Analytics. Jestem zainteresowany dostępem i przechowywaniem tych danych w klastrze Hadoop. Zgaduję, że te surowe dane będą miały postać dzienników. W szczególności chciałbym zobaczyć user_id, wyszukiwania dokonane przez użytkownika i opcję wyszukiwania, którą zdecydował się zapłacić za aplikację.Google Analytics - Pobieranie nieprzetworzonych dzienników danych

Jak mogę to zrobić? Jestem całkowicie nowy dla GA i nie byłem tym, który skonfigurował GA dla aplikacji. Próbuję tylko sprawdzić, czy istnieje sposób, w jaki mogę uzyskać dostęp do tych nieprzetworzonych danych.

Chciałbym dodać, że nie mogę używać Big Query, ponieważ nie mamy do niego dostępu. Osoby tworzące GA nie są zainteresowane uaktualnieniem do Universal Analytics.

Każda pomoc/przemyślenia/sugestie są mile widziane.

Dzięki!

+0

Jeśli nadal potrzebujesz dostępu do surowych, niespróbkowanych danych GA (bez premium), poniżej możesz zobaczyć moją odpowiedź - nie wiem, dlaczego ktoś ją głosował, ale może to być dla ciebie sposób. –

Odpowiedz

12

Nie ma sposobu, aby dostać się dzienniki, ale ..

Google Analytics API pozwoli wyodrębnić dane z systemu.

Istnieją granice tego, co można zrobić:

  1. jesteś ograniczony do 7 wymiarów i miar na 10 wniosków.
  2. Istnieje również limit 10 000 żądań dziennie na profil (widok).
  3. Niektóre z informacji, o których mówisz, są niedostępne. O ile konto Google Analytics nie jest poprawnie skonfigurowane.
  4. Dane będą nadal agregowane w taki czy inny sposób. Najmniejsza jednostka czasu dostępna w interfejsie API to minuty, więc na przykład nie można uzyskać surowych danych za pomocą znaczników czasu.

Warto zauważyć, że profesjonalny klient Google Analytics mógł eksportować surowe dane z GA do Big Query. Eksport danych z BigQuery jest bezpłatny, ale przetwarzanie pamięci i zapytań jest wyceniane na podstawie użycia.

Premium analytics at a reasonable price for one flat annual fee of $150,000

1

można uzyskać dane zagregowane, tj. dane widoczne na koncie Google Analytics za pomocą interfejsu API Google Analytics. Aby uzyskać nieprzetworzone dane, musisz być użytkownikiem premium (koszty ~ 150 tys. Rocznie). Użytkownicy premium mogą eksportować dane do Google BigQuery, a stamtąd do dowolnego miejsca.

+1

i ta odpowiedź różni się od mojej odpowiedzi w jaki sposób? – DaImTo

+1

Nawet po tym, jak zredagowałeś swój wpis, aby skopiować niektóre informacje z mojego posta (np. 150k - patrz edytowany dziennik twojej odpowiedzi) to różni się ... Np. w następujący sposób: Czytelnik, który nie zna szczegółów Google Analytics, nie wie, co to jest "dziennik", tj. jeśli odnosi się do surowych danych o zdarzeniach lub do jakiegoś rodzaju przetworzonych, np. filtrowane, dane. Wynika to jasno z mojej odpowiedzi, ale nie z twojej. –

+1

Korzystanie z Premium/360 nie daje dostępu do nieprzetworzonych danych, a jedynie zrzut danych z BigQuery, który jest już przetwarzany. –

0

Aby uzyskać dane GA, kliknij je, możesz tworzyć zapytania w sposób umożliwiający łączenie danych.

Najpierw musisz przygotować dane w GA. Tak więc przy każdym hicie, które wyślesz, dodaj jakąś wartość mieszaną lub identyfikatorklienta + znacznik czasu do niestandardowego wymiaru. To da ci możliwość dołączenia do każdego wyniku zapytania.

E.g. (Jest to w jaki sposób możemy to zrobić w Scitylana) Ten skrypt poniżej haki do skryptu śledzenia AH i sprawia, że ​​każde trafienie zawiera klucz do późniejszego ścieg wyników zapytania

<script> 
var BindingsDimensionIndex = CUSTOM DIMENSION INDEX HERE; 
var Version = 1; 

function overrideBuildTask() { 
    var c = window[window['GoogleAnalyticsObject'] || 'ga']; 
    var d = c.getAll(); 
    if (console) { console.log('Found ' + d.length + ' ga trackers') } 
    for (var i = 0; i < d.length; i++) { 
     var e = d[i]; var f = e.get('name'); 
     if (console) { console.log(f + ' modified') } 
     var g = e.get('buildHitTask'); 
     if (!e.buildHitTaskIsModified) { 
      e.set('buildHitTask', function(a) { 
      window['_sc_order'] = typeof window['_sc_order'] == 'undefined' ? 0 : window['_sc_order'] + 1; 
       var b = ['sl=' + Version, 'u=' + e.get('clientId'), 't=' + (new Date().getTime() + window['_sc_order'])].join('&'); 
       a.set('dimension' + BindingsDimensionIndex, b); 
       g(a); 
       if (console) { 
        console.log(f + '.' + a.get('hitType') + '.set.customDimension' + BindingsDimensionIndex + ' = ' + b) 
       } 
      }); 
      e.buildHitTaskIsModified = true 
     } 
    } 
} 
window.ga = window.ga || function() { 
    (ga.q = ga.q || []).push(arguments); 
    if (arguments[0] === 'create') { ga(overrideBuildTask) } 
}; 
ga.l = +new Date(); 

</script> 

Oczywiście teraz trzeba zrobić jakiś skrypt, który dołącza wszystkie wyniki, które zabrałeś z GA.

Darmowa wersja komercyjnego narzędzia o nazwie Scitylana jest dostępna do pobrania.

Disclamer: Mam udziałów w spółce

3

ponieważ my powinniśmy odpowiedzieć na oryginalne pytanie, nie ma sposobu, aby uzyskać rzeczywiste logów Google Analytics inne niż przez powielenie system połączeń serwera.

Innymi słowy, należy użyć zmodyfikowanej kopii skryptu analytics.js, aby wskazać hostowany serwer WWW, który może zbierać połączenia z serwerami.

Krótko mówiąc, chcesz witryny do przechwytywania trafień do http://www.yourdatacollectionserver.com/collect?v=1&t=pageview[...] zamiast http://www.google-analytics.com/collect?v=1&t=pageview[...]

to łatwo instalowany przy użyciu menedżera tagów takich jak GTM Google, wraz z normalnymi tagów Google Analytics.

To będzie skutecznie tworzyć wpisy w dzienniku na serwerze internetowym, które można przetwarzać za pomocą ETL lub Snowplow lub Splunk lub ulubionego mechanizmu analizowania tekstu Python/perl/Ruby.

To od Ciebie zależy, czy rzeczywiście dzienniki surowca będą przetwarzane w coś, co da się zoptymalizować. I zanim zapytasz, to nie działa wstecz.