Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        /// <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());
        }
Ejemplo n.º 5
0
 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);
 }
Ejemplo n.º 7
0
 public static void Start(MeasurementConfiguration measurementConfiguration, LaunchActivatedEventArgs args, TimeSpan?uploadInterval = null)
 {
     instance.Start(measurementConfiguration, args.Kind.ToString(), uploadInterval);
 }