Exemplo n.º 1
0
        public TrackerBase(string trackingAccount, IAnalyticsSession analyticsSession, ITrackerEnvironment trackerEnvironment)
        {
            TrackingAccount  = trackingAccount;
            AnalyticsSession = analyticsSession;

            EndpointUrl = GoogleAnalyticsEndpoints.Default;
            UserAgent   = string.Format("GoogleAnalyticsTracker/3.0 ({0}; {1}; {2})", trackerEnvironment.OsPlatform, trackerEnvironment.OsVersion, trackerEnvironment.OsVersionString);
        }
Exemplo n.º 2
0
        public Tracker(string trackingAccount, string trackingDomain, IAnalyticsSession analyticsSession)
        {
            TrackingAccount = trackingAccount;
            TrackingDomain = trackingDomain;
            AnalyticsSession = analyticsSession;

            CookieContainer = new CookieContainer();
            ThrowOnErrors = false;
            CustomVariables = new CustomVariable[5];
            _utmeGenerator = new UtmeGenerator(this);
        }
Exemplo n.º 3
0
        public TrackerBase(string trackingAccount, string trackingDomain, IAnalyticsSession analyticsSession, ITrackerEnvironment trackerEnvironment)
        {
            TrackingAccount  = trackingAccount;
            TrackingDomain   = trackingDomain;
            AnalyticsSession = analyticsSession;

            Hostname  = trackerEnvironment.Hostname;
            Language  = "en";
            UserAgent = string.Format("GoogleAnalyticsTracker/3.0 ({0}; {1}; {2})", trackerEnvironment.OsPlatform, trackerEnvironment.OsVersion, trackerEnvironment.OsVersionString);

            InitializeCharset();
        }
        public TrackerBase(string trackingAccount, string trackingDomain, IAnalyticsSession analyticsSession, ITrackerEnvironment trackerEnvironment)
        {
            TrackingAccount = trackingAccount;
            TrackingDomain = trackingDomain;
            AnalyticsSession = analyticsSession;

            Hostname = trackerEnvironment.Hostname;
            Language = "en";
            UserAgent = string.Format("GoogleAnalyticsTracker/3.0 ({0}; {1}; {2})", trackerEnvironment.OsPlatform, trackerEnvironment.OsVersion, trackerEnvironment.OsVersionString);

            InitializeCharset();                  
        }
Exemplo n.º 5
0
        public Tracker(string trackingAccount, string trackingDomain, IAnalyticsSession analyticsSession)
        {
            TrackingAccount  = trackingAccount;
            TrackingDomain   = trackingDomain;
            AnalyticsSession = analyticsSession;

#if !WINDOWS_PHONE && !NETFX_CORE
            string hostname        = Dns.GetHostName();
            string osversionstring = Environment.OSVersion.VersionString;
            string osplatform      = Environment.OSVersion.Platform.ToString();
            string osversion       = Environment.OSVersion.Version.ToString();
#elif WINDOWS_PHONE
            string hostname        = "Windows Phone";
            string osversionstring = "Windows Phone";
            string osplatform      = "Windows Phone";
            string osversion       = Environment.OSVersion.Version.ToString();
#else
            string hostname        = "Windows";
            string osversionstring = "RT";
            string osplatform      = "Windows RT";
            string osversion       = "8";
#endif

            Hostname  = hostname;
            Language  = "en";
            UserAgent = string.Format("Tracker/1.0 ({0}; {1}; {2})", osplatform, osversion, osversionstring);

#if !WINDOWS_PHONE && !NETFX_CORE
            if (IsHttpRequestAvailable())
            {
                Hostname  = System.Web.HttpContext.Current.Request.Url.Host;
                UserAgent = System.Web.HttpContext.Current.Request.UserAgent;
                Language  = System.Web.HttpContext.Current.Request.UserLanguages != null?string.Join(";", System.Web.HttpContext.Current.Request.UserLanguages) : "";
            }
#endif

            CookieContainer = new CookieContainer();

            ThrowOnErrors = false;

            InitializeCharset();

            CustomVariables = new CustomVariable[5];

            _utmeGenerator = new UtmeGenerator(this);
        }
        public Tracker(string trackingAccount, string trackingDomain, IAnalyticsSession analyticsSession)
        {
            TrackingAccount = trackingAccount;
            TrackingDomain = trackingDomain;
            AnalyticsSession = analyticsSession;

            #if !WINDOWS_PHONE && !NETFX_CORE
            string hostname = Dns.GetHostName();
            string osversionstring = Environment.OSVersion.VersionString;
            string osplatform = Environment.OSVersion.Platform.ToString();
            string osversion = Environment.OSVersion.Version.ToString();
            #elif WINDOWS_PHONE
            string hostname = "Windows Phone";
            string osversionstring = "Windows Phone";
            string osplatform = "Windows Phone";
            string osversion = Environment.OSVersion.Version.ToString();
            #else
            string hostname = "Windows";
            string osversionstring = "RT";
            string osplatform = "Windows RT";
            string osversion = "8";
            #endif

            Hostname = hostname;
            Language = "en";
            UserAgent = string.Format("Tracker/1.0 ({0}; {1}; {2})", osplatform, osversion, osversionstring);

            #if !WINDOWS_PHONE && !NETFX_CORE
            if (IsHttpRequestAvailable())
            {
                Hostname = System.Web.HttpContext.Current.Request.Url.Host;
                UserAgent = System.Web.HttpContext.Current.Request.UserAgent;
                Language = System.Web.HttpContext.Current.Request.UserLanguages != null ? string.Join(";", System.Web.HttpContext.Current.Request.UserLanguages) : "";
            }
            #endif

            CookieContainer = new CookieContainer();

            ThrowOnErrors = false;

            InitializeCharset();

            CustomVariables = new CustomVariable[5];

            _utmeGenerator = new UtmeGenerator(this);
        }
Exemplo n.º 7
0
        public Tracker(string trackingAccount, string trackingDomain, IAnalyticsSession analyticsSession)
        {
            TrackingAccount = trackingAccount;
            TrackingDomain = trackingDomain;
            AnalyticsSession = analyticsSession;

            Language = CultureInfo.CurrentCulture.ToString();
            #if !WINDOWS_PHONE
            UserAgent = string.Format("Tracker/1.0 ({0}; {1}; {2})", Environment.OSVersion.Platform, Environment.OSVersion.Version, Environment.OSVersion.VersionString);
            Hostname = Dns.GetHostName();
            #else
            Hostname = "Windows Phone";
            /* This was my first try, reconstructing the same user agent that google analytics for android sdk was sending. It didn't recognized other info that
             * OS Windows Phone.
            // Version ver = new Version(System.Reflection.Assembly.GetExecutingAssembly().FullName.Split(',')[1].Split('=')[1]);
            UserAgent = string.Format("GoogleAnalytics/1.4.2 ({0}; U; {1}; {2}; {3} Build/{4})",
                                      Environment.OSVersion.Platform.ToString(),
                                      osversionstring + " " + Environment.OSVersion.Version.ToString(),
                                      CultureInfo.CurrentCulture.ToString(), DeviceStatus.DeviceManufacturer + " " + DeviceStatus.DeviceName,
                                      Environment.OSVersion.Version.Build);
             */

            /* This is my second and working solution: we reconstruct the exact same useragent that IE9 is sending. In that way
             * Google Analytics recognize OS, Manufacturer and device model: wonderful!
             */
            string osver;
            // Windows Phone 7.5, as we usually call Mango, in reality is 7.10... So we change that string.
            if (Environment.OSVersion.Version.Major == 7 && Environment.OSVersion.Version.Minor == 10) osver = "7.5";
            else osver = string.Format("{0}.{1}", Environment.OSVersion.Version.Major,Environment.OSVersion.Version.Minor) ;

            UserAgent = string.Format("Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS {0}; Trident/5.0; IEMobile/9.0; {1}; {2})",
                                      osver, Microsoft.Phone.Info.DeviceStatus.DeviceManufacturer, Microsoft.Phone.Info.DeviceStatus.DeviceName);
            #endif
            CookieContainer = new CookieContainer();

            ThrowOnErrors = false;

            InitializeCharset();

            CustomVariables = new CustomVariable[5];

            _utmeGenerator = new UtmeGenerator(this);
        }
        public TrackerBase(string trackingAccount, string trackingDomain, IAnalyticsSession analyticsSession, ITrackerEnvironment trackerEnvironment)
        {
            TrackingAccount = trackingAccount;
            TrackingDomain = trackingDomain;
            AnalyticsSession = analyticsSession;

            Hostname = trackerEnvironment.Hostname;
            Language = "en";
            UserAgent = string.Format("GoogleAnalyticsTracker/2.0 ({0}; {1}; {2})", trackerEnvironment.OsPlatform, trackerEnvironment.OsVersion, trackerEnvironment.OsVersionString);

            CookieContainer = new CookieContainer();

            ThrowOnErrors = false;

            InitializeCharset();

            CustomVariables = new CustomVariable[5];

            _utmeGenerator = new UtmeGenerator(this);
        }
        public TrackerBase(string trackingAccount, string trackingDomain, IAnalyticsSession analyticsSession, ITrackerEnvironment trackerEnvironment)
        {
            TrackingAccount  = trackingAccount;
            TrackingDomain   = trackingDomain;
            AnalyticsSession = analyticsSession;

            Hostname  = trackerEnvironment.Hostname;
            Language  = "en";
            UserAgent = string.Format("GoogleAnalyticsTracker/2.0 ({0}; {1}; {2})", trackerEnvironment.OsPlatform, trackerEnvironment.OsVersion, trackerEnvironment.OsVersionString);

            CookieContainer = new CookieContainer();

            ThrowOnErrors = false;

            InitializeCharset();

            CustomVariables = new CustomVariable[5];

            _utmeGenerator = new UtmeGenerator(this);
        }
Exemplo n.º 10
0
        public Tracker(string trackingAccount, string trackingDomain, IAnalyticsSession analyticsSession)
        {
            TrackingAccount = trackingAccount;
            TrackingDomain = trackingDomain;
            AnalyticsSession = analyticsSession;

            #if !WINDOWS_PHONE && !NETFX_CORE && !UNITY3D
            string hostname = Dns.GetHostName();
            string osversionstring = Environment.OSVersion.VersionString;
            string osplatform = Environment.OSVersion.Platform.ToString();
            string osversion = Environment.OSVersion.Version.ToString();
            #elif WINDOWS_PHONE
            string hostname = "Windows Phone";
            string osversionstring = "Windows Phone";
            string osplatform = "Windows Phone";
            string osversion = Environment.OSVersion.Version.ToString();
            #else
            string hostname = "Windows";
            string osversionstring = "RT";
            string osplatform = "Windows RT";
            string osversion = "8";
            #endif

            Hostname = hostname;
            Language = "en";
            UserAgent = string.Format("Tracker/1.0 ({0}; {1}; {2})", osplatform, osversion, osversionstring);
            CookieContainer = new CookieContainer();

            ThrowOnErrors = false;

            InitializeCharset();

            CustomVariables = new CustomVariable[5];

            _utmeGenerator = new UtmeGenerator(this);
        }
Exemplo n.º 11
0
        public Tracker(string trackingId, IAnalyticsSession analyticsSession)
        {
            TrackingId = trackingId;
            UseHttps = true;
            SessionStart = true;
            AnalyticsSession = analyticsSession;

            ClientId = AnalyticsSession.GetClientId();
            AppName = AnalyticsSession.GetAppName();
            AppVersion = AnalyticsSession.GetAppVersion();
            ScreenResolution = AnalyticsSession.GetScreenResolution();
            ScreenColors = AnalyticsSession.GetScreenColors();
            OsPlatform = AnalyticsSession.GetOsPlatform();
            OsVersion = AnalyticsSession.GetOsVersion();
            DeviceName = AnalyticsSession.GetDeviceName();

            Language = CultureInfo.CurrentUICulture.Name;
            UserAgent = string.Format("GoogleAnalytics/2.0 ({0}; U; {1}; {2}; {3})", OsPlatform, OsVersion, Language, DeviceName);

            ThrowOnErrors = false;

            CustomDimensions = new List<string>();
            CustomMetrics = new List<Int64?>();
        }
Exemplo n.º 12
0
        public Tracker(string trackingAccount, string trackingDomain, IAnalyticsSession analyticsSession)
        {
            TrackingAccount = trackingAccount;
            TrackingDomain = trackingDomain;
            AnalyticsSession = analyticsSession;

            #if !WINDOWS_PHONE
            string hostname = Dns.GetHostName().ToLower();
            string osversionstring = Environment.OSVersion.VersionString;
            #else
            string hostname = "Windows Phone";
            string osversionstring = "Windows Phone";
            #endif
            Hostname = hostname;
            Language = "en";
            UserAgent = string.Format("Tracker/1.0 ({0}; {1}; {2})", Environment.OSVersion.Platform, Environment.OSVersion.Version, osversionstring);
            CookieContainer = new CookieContainer();

            InitializeCharset();

            CustomVariables = new CustomVariable[5];

            _utmeGenerator = new UtmeGenerator(this);
        }
        public TTelemetry DecorateTelemetry <TTelemetry>(TTelemetry telemetry,
                                                         string className,
                                                         string callerMemberName,
                                                         IAnalyticsOperation?currentOperation,
                                                         IAnalyticsSession currentSession,
                                                         Dictionary <string, object> properties)
            where TTelemetry : ITelemetry, ISupportProperties
        {
            telemetry.Context.Cloud.RoleName     = _config.RoleName;
            telemetry.Context.InstrumentationKey = _config.InstrumentationKey;


            if (currentOperation != null)
            {
                telemetry.Context.Operation.Id   = currentOperation.Id;
                telemetry.Context.Operation.Name = currentOperation.Name;
            }

            telemetry.Context.Session.Id = currentSession.Id;

            if (currentSession.AppVersion != null)
            {
                telemetry.Context.Component.Version = currentSession.AppVersion;
            }

            if (currentSession.AccountId != null)
            {
                telemetry.Context.User.AccountId = currentSession.AccountId;
            }

            if (currentSession.UserId != null)
            {
                telemetry.Context.User.AuthenticatedUserId = currentSession.UserId;
            }

            if (currentSession.DeviceId != null)
            {
                telemetry.Context.Device.Id = currentSession.DeviceId;
                telemetry.Properties["DeviceIdentifier"] = currentSession.DeviceId;
            }

            if (currentSession.DeviceType != null)
            {
                telemetry.Context.Device.Type = currentSession.DeviceType.Value;
            }

            if (currentSession.Platform != null)
            {
                telemetry.Context.Device.OperatingSystem = currentSession.Platform.Value;
            }

            if (currentSession.OperatingSystemVersion != null)
            {
                telemetry.Properties["OperatingSystemVersion"] = currentSession.OperatingSystemVersion;
            }

            if (currentSession.Manufacturer != null)
            {
                telemetry.Context.Device.OemName = currentSession.Manufacturer;
            }

            if (currentSession.Model != null)
            {
                telemetry.Context.Device.Model = currentSession.Model;
            }

            if (currentSession.Properties != null)
            {
                foreach (var sessionProperty in currentSession.Properties)
                {
                    telemetry.Properties[sessionProperty.Key] = sessionProperty.Value;
                }
            }

            if (properties != null)
            {
                foreach (var property in properties)
                {
                    if (!property.Value.GetType().IsValueType&& property.Value.GetType() != typeof(string))
                    {
                        telemetry.Properties[property.Key] = JsonConvert.SerializeObject(property.Value, new JsonSerializerSettings
                        {
                            Culture = CultureInfo.InvariantCulture
                        });
                    }
                    else
                    {
                        telemetry.Properties[property.Key] = property.Value.ToString();
                    }
                }
            }

            telemetry.Properties["Class"]  = className;
            telemetry.Properties["Method"] = callerMemberName;

            return(telemetry);
        }
 public Tracker(IAnalyticsSession analyticsSession)
     : this(ConfigurationManager.AppSettings[TrackingAccountConfigurationKey], ConfigurationManager.AppSettings[TrackingDomainConfigurationKey], analyticsSession, new AspNetMvc4TrackerEnvironment())
 {
     PopulateUserAgentPropertiesFromHttpContext();
 }
Exemplo n.º 15
0
 /// <summary>
 /// Creates a new SimpleTracker. See <see cref="SimpleTracker(string, string)"/> for details.
 /// </summary>
 /// <param name="trackingAccount"></param>
 /// <param name="analyticsSession"></param>
 /// <param name="trackerEnvironment"></param>
 public SimpleTracker(string trackingAccount, IAnalyticsSession analyticsSession, ITrackerEnvironment trackerEnvironment)
     : base(trackingAccount, analyticsSession, trackerEnvironment)
 {
 }
Exemplo n.º 16
0
 public Tracker(string trackingAccount, string trackingDomain, IAnalyticsSession analyticsSession, ITrackerEnvironment trackerEnvironment)
     : base(trackingAccount, trackingDomain, analyticsSession, trackerEnvironment)
 {
 }
Exemplo n.º 17
0
 public Tracker()
 {
     _session = new AnalyticsSession();
 }
Exemplo n.º 18
0
 public Tracker(IAnalyticsSession analyticsSession)
     : this(ConfigurationManager.AppSettings[TrackingAccountConfigurationKey], ConfigurationManager.AppSettings[TrackingDomainConfigurationKey], analyticsSession)
 {
 }
Exemplo n.º 19
0
 public Tracker(string trackingAccount, string trackingDomain, IAnalyticsSession analyticsSession, ITrackerEnvironment trackerEnvironment)
     : base(trackingAccount, trackingDomain, analyticsSession, trackerEnvironment)
 {
     PopulateUserAgentPropertiesFromHttpContext();
 }
Exemplo n.º 20
0
 public Tracker(IAnalyticsSession analyticsSession)
     : this(ConfigurationManager.AppSettings[TrackingAccountConfigurationKey], ConfigurationManager.AppSettings[TrackingDomainConfigurationKey], analyticsSession, new AspNetMvc4TrackerEnvironment())
 {
     PopulateUserAgentPropertiesFromHttpContext();
 }
Exemplo n.º 21
0
 public Tracker(IAnalyticsSession analyticsSession)
     : this(ConfigurationManager.AppSettings[TrackingAccountConfigurationKey], ConfigurationManager.AppSettings[TrackingDomainConfigurationKey], analyticsSession, new AspNetWebApiTrackerEnvironment())
 {
 }
Exemplo n.º 22
0
 static AnalyticsService()
 {
     Session = new AnalyticsSession(Domain, GaCode);
     Session.SetCustomVariable(1, "Version", Assembly.GetExecutingAssembly().GetName().Version.ToString());
 }
Exemplo n.º 23
0
 public Tracker(IAnalyticsSession analyticsSession)
     : this(ConfigurationManager.AppSettings[TrackingAccountConfigurationKey], analyticsSession, new AspNetWebApiTrackerEnvironment())
 {
 }
Exemplo n.º 24
0
 public Tracker(IAnalyticsSession analyticsSession)
     : this(ConfigurationManager.AppSettings[TrackingAccountConfigurationKey], ConfigurationManager.AppSettings[TrackingDomainConfigurationKey], analyticsSession)
 {
 }
 public Tracker(string trackingAccount, string trackingDomain, IAnalyticsSession analyticsSession, ITrackerEnvironment trackerEnvironment)
     : base(trackingAccount, trackingDomain, analyticsSession, trackerEnvironment)
 {
     PopulateUserAgentPropertiesFromHttpContext();
 }
Exemplo n.º 26
0
 public Tracker(string trackingAccount, string trackingDomain, IAnalyticsSession analyticsSession, ITrackerEnvironment trackerEnvironment)
     : base(trackingAccount, trackingDomain, analyticsSession, trackerEnvironment)
 {
 }
Exemplo n.º 27
0
 public Tracker(IAnalyticsSession analyticsSession)
     : this(ConfigurationManager.AppSettings[TrackingAccountConfigurationKey], ConfigurationManager.AppSettings[TrackingDomainConfigurationKey], analyticsSession, new NancyTrackerEnvironment())
 {
 }