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);
                }
            }
        }