def send_ga_event(event, user): session = FuturesSession() payload = { 'v': 1, 'tid': settings.GOOGLE_TRACKING_ID, 'uid': google_user_id(user), 't': 'event', 'ec': 'email', 'ea': event.event_type, 'cm': 'email', } if event.esp_event: payload['ua'] = event.esp_event.get('user-agent') payload['dt'] = event.esp_event.get('subject', [None])[0] payload['cn'] = event.esp_event.get('campaign_name', None) payload['cs'] = event.esp_event.get('campaign_source', None) payload['cc'] = payload['el'] = event.esp_event.get( 'email_id', None) payload['dp'] = "%s/%s" % ( payload['cc'], event.event_type) else: logger.warn("No ESP event found for event: %s" % event.__dict__) logger.info("Sending mail event data Analytics: %s" % payload) session.post( 'https://www.google-analytics.com/collect', data=payload)
def google_user_id(request): return {'GOOGLE_USER_ID': utils.google_user_id(request.user)}