昨日の続きで、単に、CSVの形にして出す。
昨日のところの、metricを複数にして、csv書き込み、google-docsにuploadをするまで。
analyticsを解析するアイデアも浮かばないし、何より分析するようなデ-タがないので、これでdata apiはしまいにして、google analytics自体の勉強にもどろうと思う。下に書いたコ-ドを張っておく。
import gdata.docs
import datetime
def getGaData():
gas = gdata.analytics.service.AnalyticsDataService()
gas.ClientLogin("hoge", "pwd")
# profileを集めてくる。
lt = gas.GetAccountList()
# そのprofileのtableIdを取る。tableIdが複数の場合は知らない
id = [x.tableId[0].text for x in lt.entry][2]
# このtableIdを元に、metricsとdimensionを指定する(10こずつ取れるようだけど、とりあえず一個,hour,pageviews)
# for metrics
metrics = ["ga:bounces", "ga:newVisits", "ga:pageviews", "ga:timeOnSite", "ga:visits"]
dimensions = ["ga:hour"]
data = gas.GetData(id, ".".join(dimensions), ",".join(metrics), "", "", datetime.date(2009,8,11), datetime.date(2009,8,30), 1, 1000)
data = [x.metric for x in data.entry]
hour = [x for x in range(24)]
for (x,y) in zip(hour, data):
y.insert(0, x)
dimensions.extend(metrics)
header = [[x.replace("ga:","") for x in dimensions]]
header.extend(data)
return header
def writeCSV(iter):
import csv
filename = "GoogleAnalytics-" + datetime.date.today().strftime("%Y%m%d") + ".csv"
writer = csv.writer(file(filename,"wb"))
writer.writerows(iter)
return filename
def putSpData(data):
filename = writeCSV(data)
f, ext = filename.split(".")
tp = gdata.docs.service.DOCUMENT_LABEL
cl = gdata.docs.service.DocsService()
cl.ClientLogin('hoge', 'pw')
checkFilename(f, cl)
ms = gdata.MediaSource(file_path=filename,
content_type=gdata.docs.service.SUPPORTED_FILETYPES[ext.upper()])
cl.Upload(ms, f)
def checkFilename(filename, cl):
lt = cl.GetDocumentListFeed()
import pdb; pdb.set_trace()
item = [x for x in lt.entry if x.title.text==filename]
if len(item) > 0:
cl.Delete(item[0].GetEditLink().href)
if __name__ == "__main__":
data = getGaData()
putSpData(data)
0 comments:
Post a Comment