Wednesday, September 2, 2009

Google Analytics Data APIを試す。続き

昨日の続きで、単に、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: