public async Task HandleLoginSubmit(string source) { if (!string.IsNullOrEmpty(_currentSite.GoogleAnalyticsProfileId)) { if (_options.TrackSocialLoginServerSide && source != "Onsite") { var props = _analyticsApi.GetStandardProps(_contextAccessor.HttpContext); var dimensionAndMetrics = new List <KeyValuePair <string, string> >(); dimensionAndMetrics.Add(new KeyValuePair <string, string>("cd" + _options.LoginRegisterSourceDimensionIndex.ToInvariantString(), source)); dimensionAndMetrics.Add(new KeyValuePair <string, string>("cm" + _options.LoginSubmitMetricIndex.ToInvariantString(), "1")); await _analyticsApi.TrackEvent( _currentSite.GoogleAnalyticsProfileId, props.ClientId, null, props.Host, _options.LoginRegisterEventCategory, _options.LoginSubmitEventAction, source, null, props.IpAddress, props.UserAgent, dimensionAndMetrics ); } else { var e = new GoogleAnalyticsEvent(); e.Category = _options.LoginRegisterEventCategory; e.Action = _options.LoginSubmitEventAction; e.Label = source; e.Fields.Add(new KeyValuePair <string, string>("dimension" + _options.LoginRegisterSourceDimensionIndex.ToInvariantString(), source)); e.Fields.Add(new KeyValuePair <string, string>("metric" + _options.LoginSubmitMetricIndex.ToInvariantString(), "1")); _analyticsHelper.AddEvent(e); } } }