--- a/ckanext/ga_report/download_analytics.py
+++ b/ckanext/ga_report/download_analytics.py
@@ -126,7 +126,7 @@
ga_model.update_publisher_stats(period_name) # about 30 seconds.
log.info('Downloading and storing analytics for site-wide stats')
- self.sitewide_stats( period_name, period_complete_day )
+ self.sitewide_stats( period_name )
log.info('Downloading and storing analytics for social networks')
self.update_social_info(period_name, start_date, end_date)
@@ -153,8 +153,7 @@
data = collections.defaultdict(list)
rows = results.get('rows',[])
for row in rows:
- url = _normalize_url('http:/' + row[0])
- data[url].append( (row[1], int(row[2]),) )
+ data[_normalize_url(row[0])].append( (row[1], int(row[2]),) )
ga_model.update_social(period_name, data)
@@ -195,7 +194,7 @@
if 'url' in data:
ga_model.update_url_stats(period_name, period_complete_day, data['url'])
- def sitewide_stats(self, period_name, period_complete_day):
+ def sitewide_stats(self, period_name):
import calendar
year, month = period_name.split('-')
_, last_day_of_month = calendar.monthrange(int(year), int(month))
@@ -206,7 +205,7 @@
'_locale_stats', '_browser_stats', '_mobile_stats']
for f in funcs:
log.info('Downloading analytics for %s' % f.split('_')[1])
- getattr(self, f)(start_date, end_date, period_name, period_complete_day)
+ getattr(self, f)(start_date, end_date, period_name)
def _get_results(result_data, f):
data = {}
@@ -215,7 +214,7 @@
data[key] = data.get(key,0) + result[1]
return data
- def _totals_stats(self, start_date, end_date, period_name, period_complete_day):
+ def _totals_stats(self, start_date, end_date, period_name):
""" Fetches distinct totals, total pageviews etc """
results = self.service.data().ga().get(
ids='ga:' + self.profile_id,
@@ -225,8 +224,7 @@
max_results=10000,
end_date=end_date).execute()
result_data = results.get('rows')
- ga_model.update_sitewide_stats(period_name, "Totals", {'Total page views': result_data[0][0]},
- period_complete_day)
+ ga_model.update_sitewide_stats(period_name, "Totals", {'Total page views': result_data[0][0]})
results = self.service.data().ga().get(
ids='ga:' + self.profile_id,
@@ -241,7 +239,7 @@
'New visits': result_data[0][2],
'Total visits': result_data[0][3],
}
- ga_model.update_sitewide_stats(period_name, "Totals", data, period_complete_day)
+ ga_model.update_sitewide_stats(period_name, "Totals", data)
# Bounces from / or another configurable page.
path = '/%s%s' % (config.get('googleanalytics.account'),
@@ -263,11 +261,10 @@
bounces, total = [float(x) for x in result_data[0][1:]]
pct = 100 * bounces/total
log.info('%d bounces from %d total == %s', bounces, total, pct)
- ga_model.update_sitewide_stats(period_name, "Totals", {'Bounce rate (home page)': pct},
- period_complete_day)
-
-
- def _locale_stats(self, start_date, end_date, period_name, period_complete_day):
+ ga_model.update_sitewide_stats(period_name, "Totals", {'Bounce rate (home page)': pct})
+
+
+ def _locale_stats(self, start_date, end_date, period_name):
""" Fetches stats about language and country """
results = self.service.data().ga().get(
ids='ga:' + self.profile_id,
@@ -282,16 +279,16 @@
for result in result_data:
data[result[0]] = data.get(result[0], 0) + int(result[2])
self._filter_out_long_tail(data, MIN_VIEWS)
- ga_model.update_sitewide_stats(period_name, "Languages", data, period_complete_day)
+ ga_model.update_sitewide_stats(period_name, "Languages", data)
data = {}
for result in result_data:
data[result[1]] = data.get(result[1], 0) + int(result[2])
self._filter_out_long_tail(data, MIN_VIEWS)
- ga_model.update_sitewide_stats(period_name, "Country", data, period_complete_day)
-
-
- def _social_stats(self, start_date, end_date, period_name, period_complete_day):
+ ga_model.update_sitewide_stats(period_name, "Country", data)
+
+
+ def _social_stats(self, start_date, end_date, period_name):
""" Finds out which social sites people are referred from """
results = self.service.data().ga().get(
ids='ga:' + self.profile_id,
@@ -307,10 +304,10 @@
if not result[0] == '(not set)':
data[result[0]] = data.get(result[0], 0) + int(result[2])
self._filter_out_long_tail(data, 3)
- ga_model.update_sitewide_stats(period_name, "Social sources", data, period_complete_day)
-
-
- def _os_stats(self, start_date, end_date, period_name, period_complete_day):
+ ga_model.update_sitewide_stats(period_name, "Social sources", data)
+
+
+ def _os_stats(self, start_date, end_date, period_name):
""" Operating system stats """
results = self.service.data().ga().get(
ids='ga:' + self.profile_id,
@@ -325,17 +322,17 @@
for result in result_data:
data[result[0]] = data.get(result[0], 0) + int(result[2])
self._filter_out_long_tail(data, MIN_VIEWS)
- ga_model.update_sitewide_stats(period_name, "Operating Systems", data, period_complete_day)
+ ga_model.update_sitewide_stats(period_name, "Operating Systems", data)
data = {}
for result in result_data:
if int(result[2]) >= MIN_VIEWS:
key = "%s %s" % (result[0],result[1])
data[key] = result[2]
- ga_model.update_sitewide_stats(period_name, "Operating Systems versions", data, period_complete_day)
-
-
- def _browser_stats(self, start_date, end_date, period_name, period_complete_day):
+ ga_model.update_sitewide_stats(period_name, "Operating Systems versions", data)
+
+
+ def _browser_stats(self, start_date, end_date, period_name):
""" Information about browsers and browser versions """
results = self.service.data().ga().get(
ids='ga:' + self.profile_id,
@@ -352,14 +349,14 @@
for result in result_data:
data[result[0]] = data.get(result[0], 0) + int(result[2])
self._filter_out_long_tail(data, MIN_VIEWS)
- ga_model.update_sitewide_stats(period_name, "Browsers", data, period_complete_day)
+ ga_model.update_sitewide_stats(period_name, "Browsers", data)
data = {}
for result in result_data:
key = "%s %s" % (result[0], self._filter_browser_version(result[0], result[1]))
data[key] = data.get(key, 0) + int(result[2])
self._filter_out_long_tail(data, MIN_VIEWS)
- ga_model.update_sitewide_stats(period_name, "Browser versions", data, period_complete_day)
+ ga_model.update_sitewide_stats(period_name, "Browser versions", data)
@classmethod
def _filter_browser_version(cls, browser, version_str):
@@ -383,7 +380,7 @@
ver = ver[0] + ver[1] + 'X' * num_hidden_digits
return ver
- def _mobile_stats(self, start_date, end_date, period_name, period_complete_day):
+ def _mobile_stats(self, start_date, end_date, period_name):
""" Info about mobile devices """
results = self.service.data().ga().get(
@@ -400,13 +397,13 @@
for result in result_data:
data[result[0]] = data.get(result[0], 0) + int(result[2])
self._filter_out_long_tail(data, MIN_VIEWS)
- ga_model.update_sitewide_stats(period_name, "Mobile brands", data, period_complete_day)
+ ga_model.update_sitewide_stats(period_name, "Mobile brands", data)
data = {}
for result in result_data:
data[result[1]] = data.get(result[1], 0) + int(result[2])
self._filter_out_long_tail(data, MIN_VIEWS)
- ga_model.update_sitewide_stats(period_name, "Mobile devices", data, period_complete_day)
+ ga_model.update_sitewide_stats(period_name, "Mobile devices", data)
@classmethod
def _filter_out_long_tail(cls, data, threshold=10):