using System; using System.Data; using System.Web; using CMS.CMSHelper; using CMS.GlobalHelper; using CMS.SettingsProvider; using CMS.SiteProvider; /// /// Web analytics marketing functions. /// public static class WebAnalyticsFunctions { /// /// Returns true if current visitor is returning. /// public static bool IsReturningVisitor() { return CMSContext.CurrentVisitStatus == CMS.WebAnalytics.VisitorStatusEnum.MoreVisits; } /// /// Returns true if current visitor comes to the website for the first time. /// public static bool IsFirstTimeVisitor() { return CMSContext.CurrentVisitStatus == CMS.WebAnalytics.VisitorStatusEnum.FirstVisit; } /// /// Returns search keywords from search engine visitor came from. /// public static string GetSearchEngineKeyword() { if ((HttpContext.Current == null) || (HttpContext.Current.Request == null) || (HttpContext.Current.Request.UrlReferrer == null)) { return null; } string searchKeyword = null; SearchEngineInfoProvider.GetSearchEngineNameForURL(HttpContext.Current.Request.UrlReferrer.AbsoluteUri, out searchKeyword); return searchKeyword; } /// /// Returns search engine visitor came from. /// public static string GetSearchEngine() { if ((HttpContext.Current == null) || (HttpContext.Current.Request == null) || (HttpContext.Current.Request.UrlReferrer == null)) { return null; } string searchKeyword = null; return SearchEngineInfoProvider.GetSearchEngineNameForURL(HttpContext.Current.Request.UrlReferrer.AbsoluteUri, out searchKeyword); } /// /// Returns absolute URI of the URLRefferer from current HTTP context. /// public static string GetUrlReferrer() { if ((HttpContext.Current == null) || (HttpContext.Current.Request == null) || (HttpContext.Current.Request.UrlReferrer == null)) { return null; } return HttpContext.Current.Request.UrlReferrer.AbsoluteUri; } /// /// Returns value of specified URLReferrer query string parameter. /// /// Query string parameter name public static string GetUrlReferrerParameter(string parameterName) { string url = GetUrlReferrer(); if (!string.IsNullOrEmpty(url)) { return URLHelper.GetQueryValue(url, parameterName); } return null; } }