آمار کاربران سایت در ASP.NET
روزانه کاربران زیادی از سایت شما بازدید می کنند و برای هر مدیر سایت آمار بازدیدها، صفحات بازدید شده، ساعت و تاریخ بازدید، لینک و سایتی که کاربر به واسطه آن از سایت ما بازدید نموده است و . . . از اهمیت ویژهای برخوردار است.
برای آمارگیری از سایتها از روشهای مختلفی می توان استفاده نمود:
1- استفاده از سایتهای آمارگیری رایگان همانند: Nedstat یا Sitemitter و . . .
2- به روش برنامهنویسی و بررسی از داخل برنامه
در روش اول به نوعی برای نمایش به کاربران از اعتبار بیشتری برخوردار است اما نقص آن علاوه بر تبلیغ مجانی برای دیگران این است که در بعضی از Firewall ها به اسکریپتی که اطلاعات کاربر را به این سایتها ارسال می نماید همانند یک تروجان (اسب تراوا یا سیستم جاسوسی) نگاه می کنند و اجازه عبور به آن نمی دهند.
به همین خاطر روش دوم می تواند دقیق تر عمل نماید. از سوی دیگر ذخیره اطلاعات کاربران در یک بانک اطلاعاتی می تواند منشأ گزارشات بسیار جالبی برای مدیران سیستم شود.
در نمونه برنامه زیر سعی کردهایم اطلاعات نسبتاً جالبی از رفتار کاربران به کمک ASP.NET را به نمایش گذاریم. البته مطالب ذیل نمونهای از اطلاعات کاربران سایت می باشد که می شود به سلیقه و نیاز خودتان آنرا تغییر دهید (کلیه متغیرهایی که نوع آنها ذکر نشده است از نوع String می باشد).
الف) نام دستگاه کاربر و IP آن
کد:
String ClientName = Request.UserHostName;
String ClientIP = Request.UserHostAddress;
ب) لینکی که کاربر با کلیک بر روی آن سایت را یافته است.
کد:
String REFERER = Request.ServerVariables.Item("HTTP_REFERER");
ج) اطلاعاتی در رابطه با سیستم کاربر (Client)
کد:
String LANGUAGE = Request.ServerVariables.Item("HTTP_ACCEPT_LANGUAGE");
String AGENT = Request.ServerVariables.Item("HTTP_USER_AGENT");
String Platform = Request.Browser.Platform();
د) QUERY STRING صفحه حاضر
کد:
QUERY STRING = Request.ServerVariables.Item("QUERY_STRING");
ح) اطلاعاتی در رابطه با Browser کاربر
کد:
String Browser = Request.Browser.Browser();
String Browser_Type = Request.Browser.Type();
String Browser_Version = Request.Browser.Version();
ز) زمان و تاریخ بازدید
کد:
DateTime MyDateTime = new DateTime();
MyDateTime = DateTime.Now;
string MyDate = MyDateTime.ToString("MM/dd/yyyy");
string MyTime = MyDateTime.ToString("hh:mm:ss");
بدیهی است در صورتی که بخواهیم به محض ورود کاربر به سایت این مجموعه اطلاعات را جمعآوری نماییم، می بایست آن را در زیربرنامه Session_Start انجام دهیم (این روتین در Global.asax قرار دارد).
با ارسال محتویات این متغیرها به بانک اطلاعاتی می توان گزارشاتی از جمله تعداد بازدیدها در مقاطع زمانی مختلف، صفحات پر بیننده، پر بینندهترین صفحه امروز و . . . را استخراج نمود
مرجع
www.iranasp.net