レポ-トで表示される内容をメ-ル送信してくれる機能がある どういう設定ができるのか?
しかし、僕の中では意外に使いにくい印象。 使いにくい理由としては、
Data Export API で、昨日のトラフィックレポ-トの数字のみを出すスクリプトを書いた。
ちょっと、余分な情報(csv, docs-spreadsheet)が付いてるけど。 # -*- coding: utf-8 -*- import gdata.analytics import gdata.analytics.service #import gdata.docs #import gdata.spreadsheet import datetime import os import re import urllib def getGaData(id, email, pw, dimensions, metrics, sort, flt, sdate, edate): gas = gdata.analytics.service.AnalyticsDataService() gas.ClientLogin(email, pw) # profileを集めてくる。 #lt = gas.GetAccountList() # そのprofileのtableIdを取る。 #id = [x.tableId[0].text for x in lt.entry][2] # このtableIdを元に、metricsとdimensionを指定する # for metrics data = gas.GetData(id, ','.join(dimensions).rstrip(), ','.join(metrics).rstrip(), sort, flt, sdate, edate, 1, 1000) ret = [] def f(x): #import pdb;pdb.set_trace() return urllib.unquote(x.value) for x in data.entry: y = x.dimension + x.metric ret.append(filter(f, y)) #data = [[x.dimension , x.metric] for x in data.entry] header = [x.replace("ga:","") for x in dimensions + metrics] ret.insert(0,header) return ret def writeCSV(iter,filename): import csv writer = csv.writer(file(filename,"a")) writer.writerows(iter) writer.writerow(["\n"]) return filename import smtplib from email.MIMEText import MIMEText from email.Utils import formatdate def create_message(from_addr, to_addr, subject, body): msg = MIMEText(body) msg['Subject'] = subject msg['From'] = from_addr msg['To'] = to_addr msg['Date'] = formatdate() return msg def send_via_gmail(from_addr, to_addr, msg, id, pw): s = smtplib.SMTP('smtp.gmail.com', 587) s.ehlo() s.starttls() s.ehlo() s.login(id, pw) s.sendmail(from_addr, [to_addr], msg.as_string()) s.close() if __name__ == "__main__": #set for configuration gaids = ["ga:xxxxxxx","ga:xxxxxxx"] email_for_login = "[email protected]" password = "xxxxxxxx" from_addr = "[email protected]" to_addr = "[email protected]" #set for query dimensions = [] data = [] dimensions.append(["ga:pageTitle", "ga:landingPagePath", "ga:keyword", "ga:source"]) dimensions.append(["ga:pageTitle", "ga:landingPagePath", "ga:campaign", "ga:source"]) dimensions.append(["ga:pageTitle", "ga:landingPagePath", "ga:referralPath", "ga:source"]) metrics = ["ga:entrances", "ga:uniquePageviews"] flt = "ga:entrances>0" sort = "-ga:entrances" from datetime import datetime, timedelta day_end = (datetime.today() - timedelta(1)).date() day_start = day_end # - datetime.delta(1).date() # data = compare(d1_sd, d1_ed, d2_sd, d2_ed, dimensions, metrics, flt, sort) # filename = writeCSV(data,[d1_sd,d1_ed,d2_sd,d2_ed]) # postSpData(filename, email2, pw2) for gaid in gaids: filename = os.getenv("HOME") filename += "/ga_data/" + gaid filename += "-" + day_end.strftime("%Y%m%d") filename += ".csv" if os.path.isfile(filename): os.remove(filename) for dms in dimensions: data = getGaData(gaid,email_for_login,password,dms,metrics,sort,flt,day_start,day_end) filename = writeCSV(data,filename) a = '' for line in open(filename, 'r'): if not re.search(r'not set', line): a += urllib.unquote(line)+"\n\n" msg = create_message(from_addr, to_addr, 'daily traffic'+day_end.strftime("%Y%m%d"), a) send_via_gmail(from_addr, to_addr, msg, email_for_login, password) |
aレポート画面(report) >