Sumowanie statystyk Google Analytics
Kodowanie Python Techblog 20 listopada 2009 o 23:30:37 | ☍ trackback
Zawsze mnie ciekawiło jaki jest ruch na naszym firmowym serwerze ale nie chciałem obciążać maszyny dodatkowym oprogramowaniem, które by to zliczało. Zwłaszcza że każda hostowana przez nas strona jest podpięta pod Google Analytics. Nie znalazłem jednak sposobu aby w panelu statystyk wyświetlić sumę odwiedzin z kilku kont. Na szczęście Analytics podobnie jak większość usług Googla ma swoje API. Wystarczyło więc zaprząc do pracy Pythona oraz bibliotekę gdata.
Użytkownikom ArchLinuksa polecam paczkę python-gdata-svn
yaourt -S python-gdata-svn
Skrypt jest dość prosty i działa w konsoli:
#!/usr/bin/python
import datetime
import sys
import gdata.analytics
import gdata.analytics.service
def main(argv):
GOOGLE_ANALYTICS_LOGIN = 'TWOJE@KONTO'
GOOGLE_ANALYTICS_PASSWORD = 'TAJNE_HASLO'
if len(argv) > 1:
d = argv[1].split('-')
data = datetime.date(int(d[0]), int(d[1]), int(d[2]))
else:
data = datetime.datetime.now()
print "\ndata: %d-%d-%d" % (data.year, data.month, data.day)
print "\nodw\tods\tdomena"
print "--------------------------"
dc = gdata.analytics.service.AnalyticsDataService()
dc.ClientLogin(GOOGLE_ANALYTICS_LOGIN, GOOGLE_ANALYTICS_PASSWORD, account_type='GOOGLE')
a = dc.GetAccountList()
odwiedziny, odslony = [], []
for b in a.entry:
tid = b.id.text.replace('http://www.google.com/analytics/feeds/accounts/','')
query = dc.GetData(
ids=tid,
start_date='%.4d-%.2d-%.2d' % (data.year, data.month, data.day),
end_date='%.4d-%.2d-%.2d' % (data.year, data.month, data.day),
metrics='ga:visitors,ga:pageviews',
dimensions='ga:day'
)
odw = int(query.entry[0].visitors.value)
ods = int(query.entry[0].pageviews.value)
odwiedziny.append(odw)
odslony.append(ods)
print "\033[1;31m%d\t%d\033[0m\t\033[33m%s\033[0m" % (odw, ods, b.title.text)
print "--------------------------"
print "%d\t%d\tRazem" % (sum(odwiedziny),sum(odslony))
if __name__ == "__main__":
sys.exit(main(sys.argv))
Jeżeli wywoła się go bez parametrów wówczas pokaże statystyki dla dnia dzisiejszego. Można też podać mu jako parametr datę, np:
python stats.py 2012-12-21
Przykładowy wynik działania wygląda tak:
















