def unique_widget_views(): """ Number of unique widget views over time. """ reader = get_ga_reader() account_id = app.config.get('GA_ACCOUNT_ID') property_id = app.config.get('GA_WIDGET_PROPERTY_ID') metrics = ['uniquePageviews'] dimensions = ['date'] start_date = '2015-01-01' end_date = date.today() df = reader.get_data(metrics=metrics, dimensions=dimensions, start_date=start_date, end_date=end_date, account_id=account_id, property_id=property_id, index_col=0) widget_counts = df.uniquePageviews.resample('w', how='sum') dates = ['{}'.format(d.date()) for d in widget_counts.index] return {'series': [{'data': widget_counts.values.tolist()[:-1], 'name': 'Widget Views'}], 'x_axis': {'labels': dates[:-1], 'type': 'datetime'}}
def most_visited_app_urls(): """ List of most visited app views and the average time spent on each. """ reader = get_ga_reader() account_id = app.config.get('GA_ACCOUNT_ID') property_id = app.config.get('GA_APP_PROPERY_ID') metrics = ['pageviews', 'avgTimeOnSite'] dimensions = ['pagePathLevel2', 'pagePathLevel3'] start_date = '2015-01-01' end_date = date.today() df = reader.get_data(metrics=metrics, dimensions=dimensions, start_date=start_date, end_date=end_date, account_id=account_id, property_id=property_id, index_col=0) sorted_df = df.sort('pageviews', ascending=False) paths = map(lambda p1, p2: p1[:-1] + p2, sorted_df.index, sorted_df.pagePathLevel3) labels = map(lambda p, v: '{} (views: {})'.format( p.encode('ascii', 'ignore'), v), paths, sorted_df.pageviews) return labels[:10], sorted_df.avgTimeOnSite.values[:10]