2014-09-17 8 views
12

Zajmuję się tworzeniem aplikacji gdzie każdy „biznes” ma własną stronę (lub raczej wiele stron):Korzystanie z Google Analytics, aby wyświetlić podzbiór danych dla klientów korzystających z aplikacji internetowej do osadzenia api

na przykład np. com/business/abc/

Tak więc, dla zalogowanych właścicieli firm w systemie chciałbym dać funkcję "Zobacz analitykę strony". Wyświetliłoby to liczbę odwiedzin (i być może kilka innych) danej strony.

Czy istnieje sposób to zrobić przy użyciu interfejsu API Google Analytics z ograniczeniami:

  • Nie ma klientów w celu zapewnienia własnego kodu UA
  • Nie chcę, żeby wymagać mieć konto GA
  • Klienci nie muszą mieć konta e-mail Google
  • Nie chcę budować całego frontendu i zaplecza. Wolałbym używać czegoś istniejącego od

Badam ten temat od wielu godzin, próbując wymyślić rozwiązanie i nie mogę niczego zrozumieć.

Oto co próbowałem i jakie problemy się do mnie:

  • http://ga-dev-tools.appspot.com/demos/embed-api/
    • Jest to w zasadzie dokładnie, czego chcę dla moich klientów, które mają być wyświetlane na moim miejscu (jak w przykładach), z tym że Embed Api próbuje autoryzować użytkowników do swoich (własnych) google analytics. Chcę zamiast tego używać własnych danych Google Analytics (lub raczej ich części).
    • Myślałem o ograniczeniu dostępu do danych dla każdego z moich klientów, aby utworzyć Widok w GA, Dodaj filtr do tego widoku, więc wyświetlane są tam tylko strony klientów, przypisanie użytkownika do widoku i użycie opcji Embed Api do wyświetlania danych tylko z tego widoku. Jest z tym kilka problemów:
      • Aby przypisać użytkownika do widoku, potrzebujemy adresu e-mail. Musi to być poczta e-mail konta Google lub konto z projektu utworzonego za pomocą Google Developers Console (aplikacja).
      • Innymi słowy, nie mogę utworzyć (w żaden sposób, który znam) i konta, które byłoby kontem tarczy dla moich klientów, dla podzbioru danych GA, którymi byliby zainteresowani. Musi to być prawdziwy użytkownik lub prawdziwy adres e-mail aplikacji.
      • Więc starałem się zrobić ... Stworzyłem aplikację w Google Developers Console, Utworzono nowe konto usługi OAuth. Przy użyciu kodu Ruby (który w aplikacji produkcyjnej byłby uruchomiony na zapleczu) uzyskałem token OAuth. Dodałem tę wiadomość e-mail z mojego konta usługi OAuth jako użytkownika do widoku
      • Chciałem, aby ten token wygenerowany przez serwer był wykorzystywany przez Embed Api. Osiągnęłoby to efekt generowania tokena na moim zapleczu, a użytkownik może z niego korzystać bez posiadania konta użytkownika GA w mojej usłudze GA.Więc zmieniłem według dokumentacji podstawowej przykład HTML Api używać
gapi.analytics.auth.authorize({ 
    container: 'auth', 
    clientid: 'xxx.apps.googleusercontent.com', 
    serverAuth: { 
     access_token: 'Server side generated token' 
    } 
}); 

zamiast

gapi.analytics.auth.authorize({ 
    container: 'auth', 
    clientid: 'xxx.apps.googleusercontent.com', 
}); 

Efekty są nie całkiem to, czego się spodziewałem. Przykład już się nie wyświetla (nie widzę moich danych), ale widzę w sekcji Netowrking w Chrome, że faktycznie otrzymuje prawdziwe dane z GA. Ale z nieznanego powodu nic się nie pojawia.

Co staram się ominąć, to budowanie rozwiązania, w którym potrzebuję zbudować kod po stronie serwera, który wysyła zapytanie do GA o dane, dostarczając je do interfejsu, a następnie JS odpowiada za jego wyświetlenie. Wolałbym używać API do umieszczania na stronie, ale wydaje mi się, że nie jest ono odpowiednie dla przypadku użycia, w którym nie chcę, aby użytkownicy korzystali z danych UA, ale raczej z własnych danych UA ograniczonych do pewnego zakresu. Chciałbym, aby przynajmniej część rozwiązania lub backend rozwiązania została rozwiązana. Rozwiązanie nie musi być oparte na Google Analytics. Wszystko, co pozwoliłoby mi łatwo osiągnąć użyteczność i pozwolić właścicielom firm zobaczyć efekty ich marketingu (ruch, sprzedaż) również byłoby interesujące.

pokrewne:

  • stackoverflow .com/pytania/13514775/Korzystanie-google-analytics-api-do-show-podzbiór-of-danych-na-klientów-of-web-applicati
  • stackoverflow .com/pytania/3994708/google-analytics-klient-dane
  • stackoverflow .com/pytania/4245132/google-analytics-api-filter-by-uri
  • embeddedanalytics .com wydaje się coś, co może być przydatne , ale ich strona i wykresy wyglądają jak sprzed kilku lat. Chciałbym coś piękniejszego.
  • oocharts .com wydaje się być interesujące z powodu tego, co ich docs.oocharts .com mówi o zapytaniach. Ale nie pobierają żadnych opłat za swój produkt, więc jestem sceptycznie nastawiony do ich modelu biznesowego i czy jest to dobre długoterminowe rozwiązanie.
  • Nie mam wystarczającej ilości karmy do zamieszczania linków;)

TLDR: Wyświetlanie podzbioru moich danych GA do moich klientów, nie zmuszając ich do użytkowników GA i dodając je do mojego konta GA.

Każda pomoc doceniona!

+0

To pytanie jest naprawdę duże, ale. Jeśli zarejestrujesz wszystkie dane na jednym koncie Google Analytics, istnieje limit 10 tys. Żądań, które możesz zastosować w stosunku do interfejsu API GA dziennie na widok, którego nie można rozszerzyć. Osadzone API używa Javascriptu Nie możesz używać konta usługi z Javascriptem. – DaImTo

+0

Używanie API Embed z parametrem 'serverAuth' jest zalecanym sposobem wykonania dokładnie tego, co chcesz. Nie wiem, dlaczego to nie działa. Czy możesz omówić problemy, które masz, lub [zgłosić problem] (https://code.google.com/p/analytics-issues/issues/entry?template=Embed%20API%20-%20Defect) ? –

+0

@PhilipWalton Dziękuję, że upewniłeś mnie, że jest to właściwy sposób podejścia do tego rodzaju problemów. Złożyłem błąd https://code.google.com/p/analytics-issues/issues/detail?id=496 zgodnie z Twoimi żądaniami. –

Odpowiedz

3

Nie widząc kodu, trudno jest ustalić, gdzie leży problem, ale użycie opcji serverAuth zdecydowanie działa. A gdy za pomocą opcji serverAuth, nie trzeba określać identyfikator klienta lub pojemnik, wystarczy wpisać to:

gapi.analytics.auth.authorize({ 
    serverAuth: { 
    access_token: 'Server side generated token' 
    } 
}); 

Oto przykład, że będzie działać, jeśli wchodzi w ważnej tokenu dostępu a ids za widok, do którego masz dostęp:

http://jsbin.com/vukezoheyeco/3/edit

Uwaga: gdy robi uwierzytelniania tak, zdarza synchronizację.Może to być przyzwyczajenie, jeśli jesteś przyzwyczajony do asynchronicznego przepływu uwierzytelniania (tak jak normalnie) i dodajesz obsługę zdarzenia nasłuchującego zdarzenia "powodzenia" po wywołaniu .authorize, ponieważ wtedy twój przewodnik nigdy się nie uruchomi.

+0

Działa, dzięki! – emaxi

0

myślę, że trzeba się Google Analytics Super Proxy

pobrać pakiet GitHub i przesłać do własnego projektu App Engine, zrobić kilka minimalnej konfiguracji, a następnie masz interfejs, gdzie można konfiguracji Google Analytics wywołania API, które nie wymagają użytkownika Zaloguj Się.

Udostępnia adresy URL użytkowników końcowych, które można wykorzystać do tworzenia tabel danych w interfejsie użytkownika, a także zapewnia format tabeli danych, dzięki czemu można je bezpośrednio przeglądać w Google Chart.

Tak na przykład, masz użytkownika, który potrzebuje dostępu do odwiedzin, przychodami sekcji witryny/sectionA/

skonfigurować super proxy GA służyć im URL, który obejmuje tylko dane dla tej sekcji - ty można wypróbować zapytania tutaj w GA query explorer. W takim przypadku dane = ga: odwiedziny, ga: productRevenue i filter ~ = ga: page =/sectionA/

Powoduje to utworzenie końcowego adresu URL z danymi JSON, który odświeża codziennie/godzinę - Twój wybór. Zaimportujesz ten adres URL do swojej aplikacji.

Użytkownik końcowy loguje się następnie do aplikacji i widzi dane wykresu wygenerowane z adresu końcowego dla swojego loginu. Nie muszą wiedzieć o super proxy GA, widzą tylko wynikowy wykres końcowy.

Możesz uzyskać bardziej wyrafinowane opcje dzięki menu rozwijanym, aby wybrać wykres danych, który widzą, co zmienia żądany superautorski adres URL GA.

+0

Nie sądzę, że rozwiązałoby to mój problem. Nie widzę wbudowanego uwierzytelniania/autoryzacji ani żadnych filtrów, które można skonfigurować. Oznacza to, że moi klienci mogą edytować JS frontendu (lub wysyłać zapytania HTTP bezpośrednio do GASP) i uzyskiwać dane analityczne o stronach obsługiwanych przez innych klientów. –

+0

Możesz wstępnie uwierzytelnić się przed czasem dla konta administratora GA, a następnie zbudować adresy URL z wymaganymi filtrami. Wtedy Twoja aplikacja wyświetla tylko poprawne adresy URL JSON z danymi potrzebnymi, gdy żąda tego użytkownik końcowy, być może podpowiadany przez menu rozwijane lub podobne. – MarkeD

Powiązane problemy