"> آموزش استفاده از GoogleAnalytics در ASP.NET

آموزش استفاده از GoogleAnalytics در ASP.NET

GoogleAnalytics

علم تجزیه و تحلیل گوگل یک وبسایت سرویس آماری  است (GoogleAnalytics ) که توسط گوگل , غول اینترنت ارائه شده است. با وجود سرویس دهی آسان و رایگان بودن آن , این قطعا مشهورترین وسیله است که اکثریت قریب به اتفاق متخصصان وب به آن متکی اند. این وبسایت به جمع آوری مقدار زیادی از آمار در رابطه با بازدیدکنندگان شبکه های اجتماعی و موتور های جستجو و یا حتی تبلیغات و شبکه های پرداخت به ازای هر کلیک کمک میکند. تمام این آمار و ارقام به راحتی توسط رابط کاربری قابل دسترسی اند تا متخصصان وب بتوانند به راحتی به آن ها نگاه بیاندازند. اما اگر هدف شما استفاده از آمار و نمودار گوگل در ASP.NET باشد چه ؟

برسی کامل GoogleAnalytics:

در این زمینه علم و تجزیه و تحلیل گوگل (که در حال حاضر ورژن ۳ میباشد) برای گرفتن هر نوعی از آمار و ارقام که فکرش را بکنید در دسترس میباشد و ما در این مقاله روش استفاده از آمار و نمودار گوگل در ASP.NET را به طور مفصل توضیح خواهیم داد.

لطفا در نظر داشته باشید که بحث درباره ی کل API از حوصله ی این مطلب خارج است. من هم فقط تمرکز خود را بر روی گرفتن داده ها (آمار و ارقام) و نمایش آن ها به صورت یک نمودار دربرنامه Windows Form میگذارم .

گزارش علم تجزیه و تحلیل گوگل

گزارش API یک برنامه ی رابط کاربری ساده و در عین حال قدرتمند میباشد که امکان دریافت تجزیه و تحلیل های داده هایی که توسط گوگل جمع آوری شده است را به توسعه دهندگان میدهد. برای دریافت آمارها برخی از آنها باید ابتدا گردآوری شوند. از این رو یک پیشنیاز بسیار مهم برای استفاده از API وجود دارد. شما باید یک اکانت در گوگل و یک وبسایت برای ردیابی کد داشته باشید. من فرض میکنم که شما میدانید چگونه کد ردیابی جاوا اسکریپت را تولید کنید و در وبسایتتون قرار دهید:

GoogleAnalytics

عکس ۱ : ردیابی کد تجزیه و تحلیل گوگل

فعال کردن دسترسی به API ها

دو گزینه برای واکشی داده ها موجود است.گزینه ی اول راه ساده ای برای دسترسی به API دارد که اجازه ی دسترسی داده های شخصی کاربر را نمیدهد پس این گزینه برای هدف ما کافی نیست. روش دوم راه مجاز دسترسی به API میباشد که اجازه ی استفاده از داده های شخصی کاربران را نیز میدهد. پس ما از این روش استفاده میکنیم.

برای استفاده از این روش برنامه ی ما باید تصدیق شده باشد و کاربر باید اجازه ی دسترسی به آنها را بدهد. برای این کار چندین مرحله وجود دارد که باید طی شود.

نخست باید به وسیله ی اکانت گوگل خود به کنسول توسعه دهنده ی گوگل وارد شوید و یک پروژه ی جدید بسازید :

GoogleAnalytics

عکس ۲ : ساختن پروژه ی توسعه دهنده ی گوگل

ما نام پروژه مان را csharpaccess میگذاریم و تولید کننده ی اتوماتیک آیدی پروژه را تغییر نمیدهیم :

GoogleAnalytics

عکس ۳ : ساختن پروژه ی جدید

زمانیکه پروژه ساخته شد , ما به داشبورد هدایت میشویم . حال ما نیاز داریم که تجزیه و تحلیل API را فعال کنیم و یک اعتبار دسترسی جدید بسازیم :

GoogleAnalytics

عکس ۴ : داشبورد پروژه ای که به تازگی ساخته شد

بعد از کلیک بر روی API در نوار منوی سمت چپ ما به لیست API برده میشویم. حال اسکرول موس را پایین بکشید تا به گزینه ی تجزیه و تحلیل API برسید و با کلیک بر روی دکمه ی خاموش , آن را روشن نمایید :

GoogleAnalytics

عکس ۵ : فعال کردن API تجزیه و تحلیل ها

زمانی که روشن شد با کلیک بر روی اعتبار درمنوی سمت چپ یک اعتبار جدید میسازیم.

همانطور که در بالا گفته شد ما باید از روش دوم استفاده کنیم تا بتوانیم به داده های شخصی کاربران نیز دسترسی داشته باشیم. پس ما یک آیدی جدید با کلیک بر روی دکمه ی “ساخت آیدی مشتری جدید” میسازیم :

GoogleAnalytics

عکس ۶ : ساختن اعتبار دسترسی جدید

اکنون ما باید از میان سه مدل آیدی مشتری یکی را برگزینیم و از آنجایی که ما میخواهیم از آن بر روی برنامه ی دسکتاپ خود استفاده کنیم گزینه ی “اکانت سرویس دهنده” را انتخاب میکنیم :

GoogleAnalytics

عکس ۷ : ساختن آیدی مشتری اکانت سرویس دهنده

زمانیکه آیدی ساخته شد مرورگر بی درنگ ما را برای ذخیره کردن کلید خصوصی در کامپیوتر میفرستد. ما به مدرک برای تصدیق احتیاج داریم. پس ما آن را برای استفاده ی بعدا در کامپیوتر ذخیره میکنیم. همچنین برای استفاده ی   آسان تر نام آن را به “csharpaccess.p12” تغییر میدهیم. لطفا توجه کنید که رمز عبور تولید اتوماتیک کلید خصوصیتان “Not Secret” باشد. ما به آن در برنامه های سی شارپ احتیاج داریم. پس به شما توصیه میکنم که آن را بنویسید یا در فایل موقتی ذخیره کنید .

بعد از دانلود ما دوباره با اعتبار اکانت سرویس دهنده ی اضافه شده به داشبورد هدایت میشویم. اکنون این ها در طول کنسول توسعه دهنده گوگل قابل دسترسی میباشند. در هر حال ما به این اعتبارات بعدا نیاز خواهیم داشت پس آن ها را در یک فایل موقتی تست برای دسترسی سریع تر کپی میکنیم :

GoogleAnalytics

عکس ۹ : اعتبار اکانت سرویس دهنده ی ساخته شده

حالا ما با موفقیت یک روش دوم دسترسی ساخته ایم. در گام بعدی باید آن را با وبسایتمان از طریق تجزیه و تحلیل گوگل متصل کنیم.

متصل کردن با تجزیه و تحلیل گوگل

اعتبار گزارش ای پی آی که ما به تازگی ساختیم میتواند برای دسترسی به هر تعداد وبسایتی که نیازمندیم پاسخگو باشد. تنها کاری که باید بکنیم اضافه کردن یک کاربر جدید با استفاده از مدیریت کاربر تجزیه و تحلیل گوگل به وبسایت موردنظر میباشد. به عنوان یک ایمیل آدرس ما باید از ایمیل آدرسی که برای تولید روش دوم در گام پیش استفاده کردیم استفاده کنیم.

از این رو ما از یک ایمیل در تکست باکس ایمیل استفاده میکنیم در حالی که اجازه ی خواندن و آنالیز کردن را پیش فرض میگذاریم و این تمام چیزی است که در این قسمت احتیاج داریم :

GoogleAnalytics

 

عکس ۱۰ : اضافه کردن یک کاربر جدید به تجزیه و تحلیل گوگل

اکنون همه چی حاضر است پس میتوانیم اکنون ویژوال استودیو را شروع کنیم و برنامه های دسکتاپ مان را بسازیم.

ساختن برنامه های ساده ی ویندوز فرم

فرض میکنیم که شما چند پایه سی شارپ دارید پس من درباره ی ساختن فرم ها و دکمه ها صحبت نمیکنم. در عوض من فقط بر روی دریافت و نمایش داده های جمع آوری شده با استفاده از مدرک روش دوم که به تازگی ساخته ایم تمرکز میکنم.

یادداشت: ما باید مطمئن باشیم که ویژوال استودیومان برای استفاده از چارچوب دات نت ۴.۰ یا ۴.۵ تنظیم شده باشد.

اضافه کردن ارجاع های ضروری

با اضافه کردن چند کتابخانه ی مرجع موردنیاز شروع میکنیم. برای نصب کتابخانه مشتری “Google.apis.Analaytics 3” ما از “کنسول مدیریت بسته ی ناجت” معروف استفاده میکنیم. کنسول را باز کنید و برای نصب کتابخانه دستورات زیر را دنبال کنید :

بسته ی “Google.apis.Analaytics 3” را نصب کنید :GoogleAnalytics

 

عکس ۱۱ : نصب Google.apis.Analytics 3 با کنسول ناجت

بعد از اتمام پروسه ی نصب میتوانیم ارجاع های پروژه را برای تایید کتابخانه های اضافه شده باز کنیم :

GoogleAnalytics

عکس ۱۲ : ارجاع های جدید با موفقیت اضافه شدند

مقداردهی اولیه و تصدیق سرویس

ما با مشخص کردن چند متغیر که احتیاج داریم شروع میکنیم :

private string keyFilePath = @"Csharpaccess.p12";
private string serviceAccountEmail = "568017249870-9pqlki56dvp3bn64hb2pnvlnais8ndes@developer.gserviceaccount.com";
private string keyPassword = "notasecret";
private string websiteCode = "86391935";
private AnalyticsService service = null;

 

این به شرح زیر میباشد :

مسیر فایل های کلیدی : این فایل کلید خصوصی که قبلا دانلود کردیم است. ما آن را به فولدر Debug پروژه مان کپی میکنیم که احتیاجی به اضافه کردن مسیر نباشد.

ایمیل آدرس سرویس دهنده : این همان ایمیل آدرس ازاعتبار اکانت سرویس دهنده میباشد. اگر شما آن را بعد از ساخت یادداشت نکرده اید میتوانید از طریق کنسول تجزیه و تحلیل گوگل در هر زمانی به آن دسترسی پیدا کنید .

کلید پسوورد : این پسوورد کلید خصوصی ای است که همرا با کلید تولید شد.

کد وبسایت : این کدی از وبسایت است که ما با گزارش API جفت کرده بودیم. برای بدست آوردن کد سریعترین راه این است که به قسمت تنظیمات وبسایت موردنظر در تجزیه و تحلیل گوگل بروید و ۸ رقم بعد از حرف پی در URL جستجوگر را کپی کنید :

GoogleAnalytics

عکس ۱۳ : گرفتن کد وب سایت

سرویس : این سرویس تجزیه و تحلیل هایی است که برای پرس و جو در آمار و ارقام استفاده میشود. ما نیاز داریم که “using.google.apis.analytics 3” را اضافه کنیم تا ویژوال استودیو بتواند مدلش را حل کند.

تایید اعتبار سرویس

برای اهداف تایید اعتبار ما متدی بنام تایید اعتبار میسازیم.

ابتدا ما با ساخت شئ X509Certificate2 شروع میکنیم.

برای کار با این نوع از اشیاء احتیاج داریم به وارد کردن فضای نام های مربوطه با استفاده از دایرکتوری های “using”. سازنده ی اشیا به سه آرگومان نیاز دارد : ۱- مسیر فایل فیزیکی مدرک ۲- پسوورد برای دسترسی به آن ۳- فلگ های حافظه ای برای سر و کله زدن با کلید های خصوصی ورودی. ما تاکنون دو آرگومان ابتدایی را در گام های پیش مشخص کرده ایم و برای سومی نیز شمارش قابل صدوری از فلگ حافظه ی کلید X509 نیاز داریم.

فراموش نکنید : پارامتر ابتدایی مسیر فیزیکی و نام مدرک میباشد پس فراموش نکنید که مدارک دانلود شده را به پوشه ی Debug کپی کنید :

using System.Security.Cryptography.X509Certificates;
//loading the Key file
var certificate = new X509Certificate2(keyFilePath, keyPassword, X509KeyStorageFlags.Exportable);

سپس ما حوزه ی دسترسی را در فرم رشته ای از آرایه ها مشخص میکنیم. چندین حوزه برای انتخاب وجود دارد اما “AnalyticsReadOnly ” تنها چیزی است که برایمان اهمیت دارد. اما برای هدف این آموزش دیگری را نیز اضافه میکنیم:

var scopes =
new string[] {
AnalyticsService.Scope.Analytics,              // view and manage your analytics data
AnalyticsService.Scope.AnalyticsEdit,          // edit management actives
AnalyticsService.Scope.AnalyticsManageUsers,   // manage users
AnalyticsService.Scope.AnalyticsReadonly};     // View analytics data

حال ما برای مدارک یک اعتبار اکانت سرویس جدید میسازیم. بعد ازاضافه کردن فضای نام “google.apis.AuthOAuth2” با استفاده از از رهنمود های “using” از چندین متغیر قبلا اعلام شده است برای ساخت و مقداردهی شئ استفاده میکنیم:

using Google.Apis.Auth.OAuth2;

var credential = new ServiceAccountCredential(new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = scopes
}.FromCertificate(certificate));

 

در نهایت خود سرویس را میسازیم آن را تصدیق میکنیم. به یاد داشته باشید که ابتدا باید فضای نام google.apis.service را اضافه کنید :

using Google.Apis.Services;

service = new AnalyticsService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential
});

پرس و جو کردن داده ها

برای پرسش در داده های تجزیه و تحلیل ما از سرویس Get Methode که مشهور به Get Request اشیا میباشد استفاده میکنیم این متد ۴ پارامتر میپذیرد : کد وبسایت با پسوند “Ga” و تاریخ شروع و پایان و متریک.سه پارامتر اولی که کاملا مشخص هستند. اما پارامتر چهارم به صورت پایه ای مدل داده ای است که ما برای پرسش میخواهیم.

برای ارجاع های بیشتر به شما پیشنهاد میکنم که از راهنمای مرجع متریک دیدن کنید.جایی که میتوانید از همه مدل متریک و پرسش های داده های معمولی را یاد بگیرید. برای هدف ما من از متریک “جلسه ها” استفاده میکنم زیرا این نشانگر بازدید هایی که ما علاقمند هستیم میباشد. برای محدوده ی تاریخ ما از دوره ی ۱۵ روزه استفاده میکنیم و نیاز داریم آن را به فرم مناسب رشته ای دربیاوریم.

ما همچنین نیاز به اضافه کردن چندین ابعاد آماری داریم در غیر اینصورت تنها مجموع ارزش های درخواست شده ی محدوده تاریخ را بازمیگرداند. از آنجایی که ما میخواهیم بازدید های روزانه را پرس و جو کنیم و در یک نمودار نمایش دهیم ما سال و ماه و روز را به ابعاد آن اضافه میکنیم.در نهایت درخواست را اجرا میکنیم تا داده ها را بدست آوریم :

DataResource.GaResource.GetRequest request = service.Data.Ga.Get(
"ga:" + websiteCode,
DateTime.Today.AddDays(-15).ToString("yyyy-MM-dd"),
DateTime.Today.ToString("yyyy-MM-dd"),
"ga:sessions");
request.Dimensions = "ga:year,ga:month,ga:day";
var data = request.Execute();

 

پر کردن لیست بازدیدکنندگان

برای راحت تر بودن دستکاری داده ها و نسبت دهی به نمودار ما یک کلاس “DummyChartRecord”ساختیم و لیستی از سوابق ابعاد کلاس ها را اعلام کردیم :

private List<ChartRecord> visitsData = new List<ChartRecord>();

class ChartRecord
{
public ChartRecord(string date, int visits)
{
_date = date;
_visits = visits;
}
private string _date;
public string Date
{
get { return _date; }
set { _date = value; }
}
private int _visits;
public int Visits
{
get { return _visits; }
set { _visits = value; }
}
}

 

حال میتوانیم به راحتی درخواست های داده مان را تکرار کنیم و لیست سوابقمان را پر کنیم :

foreach (var row in data.Rows)
{
visitsData.Add(new ChartRecord(new DateTime(int.Parse(row[0]), int.Parse(row[1]), int.Parse(row[2])).ToString("MM-dd-yyyy"), int.Parse(row[3])));
}

 

نمایش تصویری داده ها

برای نمایش تصویری داده های آنالیز شده ی درخواستی ما از فرم پنجره ی “OutOfBox” و کنترل و ارتباط داده های لیست استفاده میکنیم :

analyticsChart.Series[0].XValueMember = "Date";
analyticsChart.Series[0].YValueMembers = "Visits";
analyticsChart.DataSource = visitsData;
analyticsChart.DataBind();

 

GoogleAnalytics

عکس ۱۴ : واکشی آمار وارقام در فرمی از نمودار

 

نتیجه گیری

با اینکه رابط وب تحلیل و تجزیه گوگل برای اغلب متخصصان وب کافی است چندین مورد به خصوص نیز برای زمانیکه شما میخواهید داده ها را به صورت محلی در برنامه خودتان نمایش دهید. در این زمینه ما از گزارش API با قابلیت های گسترده اش کارایی مستقیم و هدفمندش و دسته بندی مناسبش استفاده میکنیم.

 

  • پسورد: www.mspsoft.com
داریوش فرخی

داریوش فرخی هستم از سال 92 شروع به یادگیری برنامه نویسی و از سال 93 در بخش برنامه نویسی و تولید محتوای سایت mspsoft.com مشغول هستم. فعالیتم نیز بیشتر در زمینه های برنامه نویسی با سی شارپ و asp.net بوده است. اوقات فراغتم را هم غالبا با تماشای فیلم یا بازی های کامپیوتری پر میکنم .

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

    مهدی پاسخ

    خیلی ممنون ، بسیار عالی

      داریوش فرخی پاسخ

      خواهش میکنم !
      موفق باشید
      :)

کدیشن ! مارکت پروژه های برنامه نویسی راه اندازی شدیه توکه پا بریم ببینم