예제 #1
0
 public virtual async Task <TrackingResult> OnTrackingAction(HttpActionContext filterContext)
 {
     return(await Tracker.TrackPageViewAsync(
                filterContext.Request,
                BuildCurrentActionName(filterContext),
                BuildCurrentActionUrl(filterContext)));
 }
        public static async Task <TrackingResult> TrackPageViewAsync(this Tracker tracker, HttpRequestMessage httpRequest, string pageTitle, string pageUrl = null)
        {
            var pageViewParameters = new PageView
            {
                DocumentTitle                                   = pageTitle,
                DocumentLocationUrl                             = pageUrl,
                UserAgent                                       = httpRequest.Headers.UserAgent.ToString(),
                DocumentHostName                                = httpRequest.RequestUri.Host,
                UserLanguage                                    = httpRequest.Headers.AcceptLanguage.ToString().ToLower(),
                ReferralUrl                                     = httpRequest.Headers.Referrer != null?httpRequest.Headers.Referrer.ToString() : null,
                                                    CacheBuster = tracker.AnalyticsSession.GenerateCacheBuster()
            };

            return(await tracker.TrackPageViewAsync(pageViewParameters));
        }
예제 #3
0
        public static async Task <TrackingResult> TrackPageViewAsync(this Tracker tracker, HttpRequestMessage httpRequest, string pageTitle, string pageUrl, Dictionary <string, string> beaconParameters = null)
        {
            var internalBeaconParameters = new Dictionary <string, string>();

            internalBeaconParameters.Add(BeaconParameter.HostName, httpRequest.RequestUri.Host);
            internalBeaconParameters.Add(BeaconParameter.Browser.Language, httpRequest.Headers.AcceptLanguage.ToString());
            if (httpRequest.Headers.Referrer != null)
            {
                internalBeaconParameters.Add(BeaconParameter.Browser.ReferralUrl, httpRequest.Headers.Referrer.ToString());
            }

            if (beaconParameters != null)
            {
                foreach (var beaconParameter in beaconParameters)
                {
                    internalBeaconParameters[beaconParameter.Key] = beaconParameter.Value;
                }
            }

            return(await tracker.TrackPageViewAsync(pageTitle, pageUrl,
                                                    userAgent : httpRequest.Headers.UserAgent.ToString(),
                                                    beaconParameters : internalBeaconParameters
                                                    ));
        }