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));
        }