def track_notification(self, notification_type_enum, num_keys): """ For more information about GAnalytics Protocol Parameters, visit https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters """ from sitevars.google_analytics_id import GoogleAnalyticsID google_analytics_id = GoogleAnalyticsID.google_analytics_id() if not google_analytics_id: logging.warning("Missing sitevar: google_analytics.id. Can't track API usage.") else: import uuid cid = uuid.uuid3(uuid.NAMESPACE_X500, str('tba-notification-tracking')) from urllib import urlencode params = urlencode({ 'v': 1, 'tid': google_analytics_id, 'cid': cid, 't': 'event', 'ec': 'notification', 'ea': NotificationType.type_names[notification_type_enum], 'ev': num_keys, 'ni': 1, 'sc': 'end', # forces tracking session to end }) from google.appengine.api import urlfetch analytics_url = 'http://www.google-analytics.com/collect?%s' % params urlfetch.fetch( url=analytics_url, method=urlfetch.GET, deadline=10, )
def test_default_sitevar(self): default_sitevar = GoogleAnalyticsID._default_sitevar() self.assertIsNotNone(default_sitevar) default_json = {'GOOGLE_ANALYTICS_ID': ''} self.assertEqual(default_sitevar.values_json, json.dumps(default_json)) self.assertEqual(default_sitevar.contents, default_json)
def track_call(api_action, api_label, auth_owner, request_time): """ For more information about GAnalytics Protocol Parameters, visit https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters """ from sitevars.google_analytics_id import GoogleAnalyticsID google_analytics_id = GoogleAnalyticsID.google_analytics_id() if not google_analytics_id: logging.warning( "Missing sitevar: google_analytics.id. Can't track API usage.") else: import uuid cid = uuid.uuid3(uuid.NAMESPACE_X500, str(auth_owner)) from urllib import urlencode payloads = [ urlencode({ 'v': 1, 'tid': google_analytics_id, 'cid': cid, 't': 'event', 'ec': 'api-v03', 'ea': api_action, 'el': api_label, 'cd1': auth_owner, # custom dimension 1 'ni': 1, 'sc': 'end', # forces tracking session to end }), # urlencode({ # 'v': 1, # 'tid': google_analytics_id, # 'cid': cid, # 't': 'timing', # 'utc': 'api-v03', # 'utv': api_action, # 'utt': request_time, # }), ] payload = '\n'.join(payloads) from google.appengine.api import urlfetch urlfetch.fetch( url='https://www.google-analytics.com/batch', validate_certificate=True, method=urlfetch.POST, deadline=30, payload=payload, )
def test_google_analytics_id_set(self): test_id = 'abc' Sitevar.get_or_insert('google_analytics.id', values_json=json.dumps( {'GOOGLE_ANALYTICS_ID': test_id})) self.assertEqual(GoogleAnalyticsID.google_analytics_id(), test_id)
def test_google_analytics_id(self): self.assertEqual(GoogleAnalyticsID.google_analytics_id(), '')