public ActionTrackingHookAsync(string trackingAccount, string trackingDomain, Func<NancyContext, bool> isTrackableAction) 
        {
            Tracker = new Tracker(trackingAccount, trackingDomain, new CookieBasedAnalyticsSession(), new NancyTrackerEnvironment());
			IsTrackableAction = isTrackableAction;
		}
		public ActionTrackingHookAsync(Tracker tracker, Func<NancyContext, bool> isTrackableAction) 
        {
			Tracker = tracker;
			IsTrackableAction = isTrackableAction;
		}
		public ActionTrackingHookAsync(string trackingAccount, string trackingDomain, string actionDescription, string actionUrl)
        {
            Tracker = new Tracker(trackingAccount, trackingDomain, new CookieBasedAnalyticsSession(), new NancyTrackerEnvironment());
			ActionDescription = actionDescription;
			ActionUrl = actionUrl;
		}
		public ActionTrackingHookAsync(Tracker tracker)
			: this(tracker, action => true) 
        {
		}
 public static async Task <TrackingResult> TrackPageViewAsync(this Tracker tracker, Request httpRequest, string pageTitle)
 {
     return(await TrackPageViewAsync(tracker, httpRequest, pageTitle, string.Format("{0}?{1}", httpRequest.Url.Path, httpRequest.Url.Query)));
 }