/// <summary> /// Initialize CSharpAnalytics by restoring the session state and starting the background sender and tracking /// the application lifecycle start event. /// </summary> /// <param name="configuration">Configuration to use, must at a minimum specify your Google Analytics ID and app name.</param> /// <param name="launchKind">Kind of launch this application experienced.</param> /// <param name="uploadInterval">How often to upload to the server. Lower times = more traffic but realtime. Defaults to 5 seconds.</param> /// <example>var analyticsTask = AutoMeasurement.StartAsync(new MeasurementConfiguration("UA-123123123-1", "MyApp", "1.3.0.0"));</example> public async void Start(MeasurementConfiguration configuration, string launchKind, TimeSpan?uploadInterval = null) { if (!isStarted) { isStarted = true; lastUploadInterval = uploadInterval ?? TimeSpan.FromSeconds(5); var sessionState = await Load <SessionState>(SessionStorageName); sessionManager = new SessionManager(sessionState, configuration.SampleRate); await StartRequesterAsync(); if (delayedOptOut != null) { SetOptOut(delayedOptOut.Value); } Client.Configure(configuration, sessionManager, GetEnvironment(), Add); // Sometimes apps crash so preserve at least session number and visitor id on launch await Save(sessionManager.GetState(), SessionStorageName); HookEvents(); } Client.TrackEvent("Start", ApplicationLifecycleEvent, launchKind); }
/// <summary> /// Initialize CSharpAnalytics by restoring the session state and starting the background sender and tracking /// the application lifecycle start event. /// </summary> /// <param name="configuration">Configuration to use, must at a minimum specify your Google Analytics ID and app name.</param> /// <param name="launchKind">Kind of launch this application experienced.</param> /// <param name="uploadInterval">How often to upload to the server. Lower times = more traffic but realtime. Defaults to 5 seconds.</param> /// <example>var analyticsTask = AutoMeasurement.StartAsync(new MeasurementConfiguration("UA-123123123-1", "MyApp", "1.2.0.0"));</example> public async void Start(MeasurementConfiguration configuration, string launchKind, TimeSpan?uploadInterval = null) { if (!isStarted) { isStarted = true; lastUploadInterval = uploadInterval ?? TimeSpan.FromSeconds(5); var sessionState = await Load <SessionState>(SessionStorageName); sessionManager = new SessionManager(sessionState, configuration.SampleRate); await StartRequesterAsync(); // Preserve 'delayedOptOut' value to use in condition checking var hasDelayedOptOut = delayedOptOut; if (hasDelayedOptOut.HasValue) { SetOptOut(delayedOptOut.GetValueOrDefault()); } Client.Configure(configuration, sessionManager, GetEnvironment(), Add); // Sometimes apps crash so preserve at least session number and visitor id on launch // Avoid re-saving if a delayed optout was set (save already occurred in 'SetOptOut') if (!hasDelayedOptOut.HasValue) { await Save(sessionManager.GetState(), SessionStorageName); } HookEvents(); } Client.TrackEvent("Start", ApplicationLifecycleEvent, launchKind); }
public static void Start(MeasurementConfiguration measurementConfiguration, LaunchingEventArgs args, TimeSpan?uploadInterval = null) { var launchKind = args == null ? "" : args.GetType().Name.Replace("LaunchingEventArgs", ""); instance.Start(measurementConfiguration, launchKind, uploadInterval); }
/// <summary> /// Initialize CSharpAnalytics by restoring the session state and starting the background sender and tracking /// the application lifecycle start event. /// </summary> /// <param name="configuration">Configuration to use, must at a minimum specify your Google Analytics ID and app name.</param> /// <param name="launchArgs">Launch arguments from your Application OnLaunched to determine how the app was launched.</param> /// <param name="uploadInterval">How often to upload to the server. Lower times = more traffic but realtime. Defaults to 5 seconds.</param> /// <example>var analyticsTask = AutoMeasurement.StartAsync(new MeasurementConfiguration("UA-123123123-1", "MyApp", "1.0.0.0"));</example> public static async Task StartAsync(MeasurementConfiguration configuration, IActivatedEventArgs launchArgs, TimeSpan?uploadInterval = null) { if (!isStarted) { isStarted = true; lastUploadInterval = uploadInterval ?? TimeSpan.FromSeconds(5); systemUserAgent = await WindowsStoreSystemInformation.GetSystemUserAgent(); await StartRequesterAsync(); var sessionState = await LoadSessionState(); sessionManager = new SessionManager(sessionState, configuration.SampleRate); if (delayedOptOut != null) { SetOptOut(delayedOptOut.Value); } Client.Configure(configuration, sessionManager, new WindowsStoreEnvironment(), Add); HookEvents(); } Client.TrackEvent("Start", ApplicationLifecycleEvent, launchArgs.Kind.ToString()); }
public static void Start(MeasurementConfiguration measurementConfiguration, string launchKind = "", TimeSpan?uploadInterval = null) { Instance.Start(measurementConfiguration, launchKind, uploadInterval); }
public static void Start(MeasurementConfiguration measurementConfiguration, TimeSpan?uploadInterval = null) { instance.Start(measurementConfiguration, "", uploadInterval); }
public static void Start(MeasurementConfiguration measurementConfiguration, LaunchActivatedEventArgs args, TimeSpan?uploadInterval = null) { instance.Start(measurementConfiguration, args.Kind.ToString(), uploadInterval); }