- PVSM.RU - https://www.pvsm.ru -
Для недавно сделанного мной в рамках изучения Flask микросервиса shares.datagreed.ru [1] мне захотелось отслеживать переходы по разным адресам API. Как это сделать, если Google Analytics интегрируется в страницу посредством JS?
Вот и я тоже не знал. Поиск привел меня к официальной библиотеке на PHP для мобильных сайтов, на которых не предполагалось (когда-то) использовать JavaScript.
Дальнейшие мои изыскания вылились в небольшой модуль [2] для питона, который позволяет использовать трекинг страниц (ивенты, увы, не поддерживаются) Google Analytics со стороны сервера. Штатно в библиотеку влючены классы для Django и Flask. Класс для Flask в данный момент развернут и обкатывается у меня на shares.datagreed.ru [1], а класс для Django я пока что не тестировал, так что багрепорты приветствуются.
В Django используется вот так (во views.py):
from pyga import DjangoGATracker
def some_view(request):
ga = DjangoGATracker('UA-xxxx') #ваш ключ для GA
ga.track(request) #записываем посещение текущей страницы
#<...>
Для Flask потребуется передать еще объект сессии:
from flask import request, session #должен быть задан secret_key в параметрах приложения flask, см. документацию по flask
from pyga import FlaskGATracker
#<...>
ga = FlaskGATracker('UA-xxxx') #ключ GA
ga.track(request, session) #регистрируем посещение страницы
Если нужно, то можно использовать все это на чуть более низком уровне:
from pyga import GATracker
ga = GATracker('UA-xxxx')
ga.track('/api/news/', user_session_id, ip_address, useragent)
Проект живет на битбакете [2]. Документация там черновая, если кому-то будет интересно, то могу ее дописать.
Установка с помощью pip:
pip install -e git+https://bitbucket.org/DataGreed/pyga.git#egg=pyga-dev
Автор: loststylus
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/19289
Ссылки в тексте:
[1] shares.datagreed.ru: http://shares.datagreed.ru
[2] небольшой модуль: https://bitbucket.org/DataGreed/pyga
[3] Источник: http://habrahabr.ru/post/157621/
Нажмите здесь для печати.