مدیریت محل اعمال Google analytics در ASP.NET MVC
نویسنده: وحید نصیری
تاریخ: ۱۳۹۱/۰۳/۲۹ ۱۹:۵۸
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
@helper IncludeGoogleAnalytics(WebViewPage page)
{
var controller = page.ViewContext.Controller;
var controllerHasAuthorizeAttribute = controller.GetType().GetCustomAttributes(typeof(AuthorizeAttribute), true).Any();
var currentActionName = page.ViewContext.Controller.ValueProvider.GetValue("action").RawValue.ToString();
var actionHasAuthorizeAttribute = controller.GetType().GetMethods()
.Where(x => x.Name == currentActionName &&
x.GetCustomAttributes(typeof(AuthorizeAttribute), true).Any())
.Any();
if (!controllerHasAuthorizeAttribute && !actionHasAuthorizeAttribute)
{
string trackingId = ConfigurationManager.AppSettings["GoogleAnalyticsID"];
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '@trackingId']);
_gaq.push(['_trackPageview']);
(function () {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
}
@HtmlUtils.IncludeGoogleAnalytics(this)
سلام مهندس جان
از اینکه میتوونم اولین کار روزانه خودم را چک کردن سایتت قرار بدم خیلی خوشحالم
ایکاش مانند گذشته فایل chm سایت رو نیز در اختیار مراجعه کنندهها برای استفاده آفلاین قرار میدادی
نکته دیگر آنکه تعداد برچسبهای سایت خیلی کم است و این دسته بندی یافتن مطالب رو سخت میکنه
و دیگر آنکه چند کاربره شدن سایت دامنه مطالب ارسالی رو بازتر کرده و ممکنه اولا سطح مطالب افت کنه و یا زیادی پراکنده بشه اگر برای نویسندگان سایت راهبری هایی انجام بشه شاید مطالب هماهنگتر و مفیدتر و مورد نیازتر بشن متشکرم
string username = ConfigurationManager.AppSettings["GoogleAnalyticsUsername"];
string password = ConfigurationManager.AppSettings["GoogleAnalyticsPassword"];
string profileId = ConfigurationManager.AppSettings["GoogleAnalyticsProfileId"];
string yesterdayDate = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");
var service = new AnalyticsService("WebSiteAnalytics");
service.setUserCredentials(username, password);
var dataQuery = new DataQuery()
{
Ids = profileId,
Metrics = "ga:pageviews",
Sort = "ga:pageviews",
};
DataFeed dataFeed = null;
//--- total visit
dataQuery.GAStartDate = new DateTime(2012, 3, 1).ToString("yyyy-MM-dd");
dataQuery.GAEndDate = DateTime.Now.ToString("yyyy-MM-dd");
dataFeed = service.Query(dataQuery);
var totalEntry = (dataFeed.Entries == null || dataFeed.Entries.Count == 0) ? "0" :
(dataFeed.Entries[0] as DataEntry).Metrics[0].Value;
//--- yesterday visit
dataQuery.GAStartDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
dataQuery.GAEndDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
dataFeed = service.Query(dataQuery);
var yesterdayEntry = (dataFeed.Entries == null || dataFeed.Entries.Count == 0) ? "0" :
(dataFeed.Entries[0] as DataEntry).Metrics[0].Value;
//--- today visit
dataQuery.GAStartDate = DateTime.Now.ToString("yyyy-MM-dd");
dataQuery.GAEndDate = DateTime.Now.ToString("yyyy-MM-dd");
dataFeed = service.Query(dataQuery);
var todayEntry = (dataFeed.Entries == null || dataFeed.Entries.Count == 0) ? "0" :
(dataFeed.Entries[0] as DataEntry).Metrics[0].Value;
//--- last week visit
dataQuery.GAStartDate = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd");
dataQuery.GAEndDate = DateTime.Now.ToString("yyyy-MM-dd");
dataFeed = service.Query(dataQuery);
var lastWeekEntry = (dataFeed.Entries == null || dataFeed.Entries.Count == 0) ? "0" :
(dataFeed.Entries[0] as DataEntry).Metrics[0].Value;
//--- last month visit
dataQuery.GAStartDate = DateTime.Now.AddDays(-30).ToString("yyyy-MM-dd");
dataQuery.GAEndDate = DateTime.Now.ToString("yyyy-MM-dd");
dataFeed = service.Query(dataQuery);
var lastMonthEntry = (dataFeed.Entries == null || dataFeed.Entries.Count == 0) ? "0" :
(dataFeed.Entries[0] as DataEntry).Metrics[0].Value;