public async Task RevertTransaction(CustomerOrder order) { if (order == null) { throw new ArgumentNullException(nameof(order)); } var settings = _settingsManager.Get(order.StoreId); if (!settings.IsActive || !settings.ReverseECommerceTransaction) { return; } using (var tracker = new SimpleTracker(settings.TrackingId, settings.TrackingDomain ?? string.Empty, CreateEnvironment())) { var list = new List <Task <TrackingResult> >(); var task = tracker.TrackAsync(ECommerceConverter.OrderToTransaction(order, true)); list.Add(task); foreach (var lineItem in order.Items) { var lineItemTask = tracker.TrackAsync(ECommerceConverter.LineItemToTransactionItem(order, lineItem, true)); list.Add(lineItemTask); } await Task.WhenAll(list.ToArray()); } }
public TrackerSingleton() { var simpleTrackerEnvironment = new SimpleTrackerEnvironment(Environment.OSVersion.Platform.ToString(), Environment.OSVersion.Version.ToString(), Environment.OSVersion.VersionString); this._tracker = new SimpleTracker(GoogleAnalyticsUserAgent, simpleTrackerEnvironment); }
static Analytics() { #if __PC__ if (Settings.Default.GUID == "00000000-0000-0000-0000-000000000000") { Settings.Default.GUID = Guid.NewGuid().ToString(); Settings.Default.Save(); } GUID = Settings.Default.GUID; OperatingSystem os = Environment.OSVersion; trackerEnvironment = new SimpleTrackerEnvironment(os.Platform.ToString(), os.Version.ToString(), os.VersionString); analyticsSession = new AnalyticsSession(); tracker = new SimpleTracker("UA-125850339-2", analyticsSession, trackerEnvironment); AppVersion = MainForm.VERSION; OSVersion = SetWindowsVersion(os.Version.ToString()); bool windowsStoreApp = Application.ExecutablePath.Contains("WindowsApps"); bool debugging = Application.ExecutablePath.Contains("GitRepo"); DeploymentType = windowsStoreApp ? "Windows Store" : debugging ? "Development" : "Zip File"; string resolution = Screen.PrimaryScreen.Bounds.ToString(); #elif __MACOS__ var userDefaults = new NSUserDefaults(); GUID = userDefaults.StringForKey("AnalyticsKey"); if (string.IsNullOrEmpty(GUID)) { GUID = Guid.NewGuid().ToString(); userDefaults.SetString(GUID, "AnalyticsKey"); userDefaults.Synchronize(); } NSProcessInfo info = new NSProcessInfo(); OSVersion = $"MacOSX {info.OperatingSystemVersionString}"; trackerEnvironment = new SimpleTrackerEnvironment("Mac OSX", info.OperatingSystemVersion.ToString(), OSVersion); analyticsSession = new AnalyticsSession(); tracker = new SimpleTracker("UA-125850339-2", analyticsSession, trackerEnvironment); var app = (AppDelegate)NSApplication.SharedApplication.Delegate; AppVersion = FamilyTree.Instance.Version; DeploymentType = "Mac Website"; string resolution = NSScreen.MainScreen.Frame.ToString(); #elif __IOS__ var userDefaults = new NSUserDefaults(); GUID = userDefaults.StringForKey("AnalyticsKey"); if (string.IsNullOrEmpty(GUID)) { GUID = Guid.NewGuid().ToString(); userDefaults.SetString(GUID, "AnalyticsKey"); userDefaults.Synchronize(); } NSProcessInfo info = new NSProcessInfo(); OSVersion = $"MacOSX {info.OperatingSystemVersionString}"; trackerEnvironment = new SimpleTrackerEnvironment("Mac OSX", info.OperatingSystemVersion.ToString(), OSVersion); analyticsSession = new AnalyticsSession(); tracker = new SimpleTracker("UA-125850339-2", analyticsSession, trackerEnvironment); var app = (AppDelegate)UIApplication.SharedApplication.Delegate; AppVersion = FamilyTree.Instance.Version; DeploymentType = "Mac Website"; string resolution = UIScreen.MainScreen.Bounds.ToString(); #endif Resolution = resolution.Length > 11 ? resolution.Substring(9, resolution.Length - 10) : resolution; }
public static async Task Tracker(string pageTitle, string pageUrl) { SimpleTrackerEnvironment ste = new SimpleTrackerEnvironment(Environment.OSVersion.ToString(), Environment.OSVersion.VersionString, ""); using (SimpleTracker tracker = new SimpleTracker("UA-97814311-2", ste)) { await tracker.TrackPageViewAsync(pageTitle, pageUrl, new Dictionary <int, string>()); } }
private async Task SendHitAsync(HitBuilder hit) { #if RUN_SYNCHRONOUS lock (syncObject) { #endif HitSentEventArgs args = null; var serviceManager = new AnalyticsManager(MockConfig.Current.PlatformInfoProvider) { IsDebug = true }; serviceManager.HitSent += (s, e) => { args = e; Assert.IsFalse(args == null); }; serviceManager.HitMalformed += (s, e) => { Assert.Fail("Malformed: " + e.Hit.Parse()); }; serviceManager.HitFailed += (s, e) => { Assert.Fail("Failed:" + e.Error); }; #if !NATIVESDK_TEST var tracker = new SimpleTracker(MockConfig.Current.PropertyId, serviceManager) { AppName = MockConfig.Current.AppName, ClientId = MockConfig.Current.ClientId, ScreenName = MockConfig.Current.ScreenName }; #else var tracker = new Tracker(MockConfig.Current.PropertyId, MockConfig.Current.PlatformInfoProvider, serviceManager); serviceManager.IsDebug = true; #endif tracker.Send(hit.Build()); #if RUN_SYNCHRONOUS serviceManager.DispatchAsync().AsTask().Wait(); #else await serviceManager.DispatchAsync(); await Task.Delay(200); //HitSent processing is async.. since we need args, let it replicate #endif Assert.IsTrue(args != null, "args != null (" + hit.BuildToString() + ")"); using (var stream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(args.Response))) { if (serviceManager.IsDebug) { var serializer = new DataContractJsonSerializer(typeof(DebugResponse)); var debugResponse = (DebugResponse)serializer.ReadObject(stream); Assert.IsTrue(debugResponse.HitParsingResult.All(r => r.Valid), "Invalid Request: (" + args.Response + ")"); } } #if RUN_SYNCHRONOUS } // lock #endif }
public static SimpleTracker Get() { if (Tracker == null) { OperatingSystem os = System.Environment.OSVersion; SimpleTrackerEnvironment environment = new SimpleTrackerEnvironment(os.Platform.ToString(), os.Version.ToString(), os.VersionString); Tracker = new SimpleTracker("UA-104211362-5", environment); } return(Tracker); }
public TrackUsage(IVersionControl versionControl, ISettingsCollection settingsCollection, InstanceType instanceType) { this.versionControl = versionControl; this.settingsCollection = settingsCollection; this.instanceType = instanceType; tracker = new SimpleTracker("UA-51628201-7", new SimpleTrackerEnvironment(Environment.OSVersion.Platform.ToString(), Environment.OSVersion.Version.ToString(), Environment.OSVersion.VersionString)); TrackAppUsage(TrackingType.AppLoad); heartbeat = new Timer(TimeSpan.FromMinutes(1).TotalMilliseconds); heartbeat.Elapsed += (sender, args) => TrackAppUsage(TrackingType.Heartbeat); heartbeat.Enabled = true; }
public async Task Event(string category, string action, string label) { //NOTE: Custom Dimension numbers are meaningful, but defined within Google Analytics. string odsApiVersion = null; try { odsApiVersion = await InMemoryCache.Instance.GetOrSet("OdsApiVersion", async() => await _inferOdsApiVersion.Version( CloudOdsAdminAppSettings.Instance.ProductionApiUrl)); } catch (Exception e) { _logger.Error("Google Analytics Telemetry failed for ODS API version", e); } var databaseVersion = InMemoryCache.Instance .GetOrSet("DatabaseVersion", DatabaseVersion); var userName = _userContext?.User?.UserName; string domainName = null; if (userName != null && userName.Contains('@')) { domainName = userName.Split('@', 2)[1]; } var hostName = _httpContextAccessor.HttpContext.Request.Host.Value; var customDimensions = new Dictionary <int, string> { [1] = ExplicitWhenNotSet(_informationalVersion), [2] = ExplicitWhenNotSet(odsApiVersion), [3] = ExplicitWhenNotSet(databaseVersion), [4] = ExplicitWhenNotSet(domainName), [5] = ExplicitWhenNotSet(hostName) }; using (var tracker = new SimpleTracker(_measurementId, _environment)) await tracker.TrackEventAsync( ExplicitWhenNotSet(category), ExplicitWhenNotSet(action), ExplicitWhenNotSet(label), customDimensions); string DatabaseVersion() { return("SqlServer".Equals(CloudOdsAdminAppSettings.Instance.DatabaseEngine, StringComparison.InvariantCultureIgnoreCase) ? _database.DatabaseVersionView.FromSqlRaw("SELECT @@VERSION as VersionString").First().VersionString : _database.DatabaseVersionView.FromSqlRaw("SELECT version() as VersionString").First().VersionString); } }
private async void ReportAnalytics(string title, string uri) { if (Settings.Default.Tracking != 1) { return; } try { using (SimpleTracker tracker = new SimpleTracker("UA-50763481-1", "mcutools.com")) { await tracker.TrackPageViewAsync(title, _trackbaseuri + @"/" + uri); } } catch (Exception) { } }
public static async Task <TrackingResult> TrackPageViewAsync(this SimpleTracker tracker, string pageTitle, string pageUrl, IDictionary <int, string?>?customDimensions = null, IDictionary <int, long?>?customMetrics = null) { var pageViewParameters = new PageView { DocumentTitle = pageTitle, DocumentLocationUrl = pageUrl }; pageViewParameters.SetCustomDimensions(customDimensions); if (customMetrics != null) { pageViewParameters.SetCustomMetrics(customMetrics); } return(await tracker.TrackAsync(pageViewParameters)); }
static Analytics() { if (Settings.Default.GUID.ToString() == "00000000-0000-0000-0000-000000000000") { Settings.Default.GUID = Guid.NewGuid(); Settings.Default.Save(); } OperatingSystem os = Environment.OSVersion; trackerEnvironment = new SimpleTrackerEnvironment(os.Platform.ToString(), os.Version.ToString(), os.VersionString); tracker = new SimpleTracker("UA-125850339-2", trackerEnvironment); CustomDimensions = new Dictionary <int, string> { }; AppVersion = MainForm.VERSION; }
public static async Task <TrackingResult> TrackEventAsync(this SimpleTracker tracker, string category, string action, string label, IDictionary <int, string?>?customDimensions = null, IDictionary <int, long?>?customMetrics = null, long value = 1) { var eventTrackingParameters = new EventTracking { Category = category, Action = action, Label = label, Value = value }; eventTrackingParameters.SetCustomDimensions(customDimensions); if (customMetrics != null) { eventTrackingParameters.SetCustomMetrics(customMetrics); } return(await tracker.TrackAsync(eventTrackingParameters)); }
public static async void TrackFeature(string FeatureCustom) { if (!string.IsNullOrEmpty(_GoogleAnayticsPropertyID)) { SimpleTrackerEnvironment trackerEnvironment = new SimpleTrackerEnvironment(Environment.OSVersion.Platform.ToString(), Environment.OSVersion.Version.ToString(), Environment.OSVersion.VersionString); // Overwrite platform details KeyValuePair <string, string> kvpOSSpecs = GetOperatingSystemProductName(); trackerEnvironment.OsPlatform = kvpOSSpecs.Key; trackerEnvironment.OsVersion = kvpOSSpecs.Value; SimpleTracker tracker = new SimpleTracker(_GoogleAnayticsPropertyID, _Session, trackerEnvironment); await tracker.TrackPageViewAsync(System.AppDomain.CurrentDomain.FriendlyName, FeatureCustom, _CustomDimensions); } }
public static async Task <TrackingResult> TrackScreenviewAsync(this SimpleTracker tracker, string screen) { var screenViewTrackingParameters = new ScreenviewTracking { ClientId = Analytics.GUID, UserId = Analytics.GUID, ApplicationName = "FTAnalyzer", ApplicationVersion = Analytics.AppVersion, ScreenName = screen, CacheBuster = tracker.AnalyticsSession.GenerateCacheBuster(), ScreenResolution = Analytics.Resolution, CustomDimension1 = Analytics.DeploymentType, CustomDimension2 = Analytics.OSVersion, CustomDimension3 = Analytics.GUID, GoogleAdWordsId = "201-455-7333", UserLanguage = CultureInfo.CurrentUICulture.EnglishName }; return(await tracker.TrackAsync(screenViewTrackingParameters).ConfigureAwait(false)); }
public static async Task <TrackingResult> TrackScreenviewAsync(this SimpleTracker tracker, string appName, string appId, string appVersion, string appInstallerId, string screenName, IDictionary <int, string?>?customDimensions = null, IDictionary <int, long?>?customMetrics = null) { var screenviewParameters = new ScreenviewTracking { ApplicationName = appName, ApplicationId = appId, ApplicationVersion = appVersion, ApplicationInstallerId = appInstallerId, ScreenName = screenName }; screenviewParameters.SetCustomDimensions(customDimensions); if (customMetrics != null) { screenviewParameters.SetCustomMetrics(customMetrics); } return(await tracker.TrackAsync(screenviewParameters)); }
static Analytics() { var userDefaults = new NSUserDefaults(); GUID = userDefaults.StringForKey("AnalyticsKey"); if (string.IsNullOrEmpty(GUID)) { GUID = Guid.NewGuid().ToString(); userDefaults.SetString(GUID, "AnalyticsKey"); userDefaults.Synchronize(); } NSProcessInfo info = new NSProcessInfo(); OSVersion = $"MacOSX {info.OperatingSystemVersionString}"; trackerEnvironment = new SimpleTrackerEnvironment("Mac OSX", info.OperatingSystemVersion.ToString(), OSVersion); tracker = new SimpleTracker("UA-125850339-2", trackerEnvironment); var app = (AppDelegate)NSApplication.SharedApplication.Delegate; AppVersion = app.Version; }
public static async Task <TrackingResult> TrackScreenviewAsync(this SimpleTracker tracker, string screen) { string resolution = NSScreen.MainScreen.Frame.ToString(); var screenViewTrackingParameters = new ScreenviewTracking { ClientId = Analytics.GUID, UserId = Analytics.GUID, ApplicationName = "FTAnalyzer", ApplicationVersion = Analytics.AppVersion, ScreenName = screen, ScreenResolution = resolution.Length > 11 ? resolution.Substring(9, resolution.Length - 10) : resolution, CacheBuster = tracker.AnalyticsSession.GenerateCacheBuster(), CustomDimension1 = Analytics.DeploymentType, CustomDimension2 = Analytics.OSVersion, GoogleAdWordsId = "201-455-7333", UserLanguage = CultureInfo.CurrentUICulture.EnglishName }; return(await tracker.TrackAsync(screenViewTrackingParameters)); }
public static async Task <TrackingResult> TrackEventAsync(this SimpleTracker tracker, string category, string action, string label, long value = 1) { var eventTrackingParameters = new EventTracking { ClientId = Analytics.GUID, UserId = Analytics.GUID, ApplicationName = "FTAnalyzer", ApplicationVersion = Analytics.AppVersion, Category = category, Action = action, Label = label, Value = value, ScreenName = category, CacheBuster = tracker.AnalyticsSession.GenerateCacheBuster(), ScreenResolution = Analytics.Resolution, CustomDimension1 = Analytics.DeploymentType, CustomDimension2 = Analytics.OSVersion, CustomDimension3 = Analytics.GUID, GoogleAdWordsId = "201-455-7333", UserLanguage = CultureInfo.CurrentUICulture.EnglishName }; return(await tracker.TrackAsync(eventTrackingParameters).ConfigureAwait(false)); }
public static Task TrackEvent(string category, string action, string label) { SimpleTracker tracker = Get(); return(tracker.TrackEventAsync(category, action, label, new Dictionary <int, string>())); }
public static Task TrackPage(string name, string path) { SimpleTracker tracker = Get(); return(tracker.TrackPageViewAsync(name, path, new Dictionary <int, string>())); }