12/08/2018, 14:41

Sử dụng Google Analytic trong Asp.net

Đầu tiên hãy tạo ra mã tracking và thêm nos vào trang của bạn. Nó sẽ không được activate trước 24h. Cho neenmoij nỗi lực để lấy ra dữ liệu từ google analytics là từ sau 24h. Dưới đây là link hướng dẫn thiết lập. http://www.mindstick.com/Articles/f061cb85-9b6d-4296-9f66-9cbb15e703fb/Google ...

Đầu tiên hãy tạo ra mã tracking và thêm nos vào trang của bạn. Nó sẽ không được activate trước 24h. Cho neenmoij nỗi lực để lấy ra dữ liệu từ google analytics là từ sau 24h. Dưới đây là link hướng dẫn thiết lập.

http://www.mindstick.com/Articles/f061cb85-9b6d-4296-9f66-9cbb15e703fb/Google Analytics Setup Website

Theo những bước sau đây:

Bước 1. Đầu tiên hãy login vào màn hình Google Developers Console. Bước 2. Sau đó tạo ra project với tên mong muôn!

Bước 3. Sau khi tạo ra project thì click trên link project và chọn lựa API và auth và chọn API sau đó tìm kiếm Analytics API và chọn nó. Bước 4. tiếp theo chọn credentials trong góc phía trái dưới API & auth. Bước 5. Click tạo mới Client ID, Cái này sẽ tạo ra một trang mới nơi bạn bảo Google làm thế nào bạn xác thực API Sau đó chọn service account như sau.

Bước 6. Đối với post này chúng ta cần chọn Service Account (như trên). Chọn tạo Client ID trên win và cái này sẽ được thiết lập. Bạn sẽ thấy một popup khác mà có link download. Dowload nó và lưu lại đâu đó và lưu lại password trong popup. Mỗi lần download cái này password sẽ luôn có sẵn. Bước 7. Bây giờ hãy xem nó như thế này:

Nếu bạn tiếp cận dữ liệu với cái này sau đó chọn Account tab và tới User Management và thêm permission cho tài khoản email này. Nếu ko cho phép thì theo những bước dưới đây.

Bước 1. Chọn property trong property tab. Bước 2. Chọn view mà bạn muốn xem. Bước 3. Sau đó chọn User Management

Bước 4. Sau khi chọn User Management thì Add permission email tài khoản dịch vụ id sau đó tùy theo vai trò chọn permission thích hợp.

Sử dụng những thư viện sau:

using  DotNetOpenAuth.OAuth2;
using  Google.Apis.Analytics.v3;
using  Google.Apis.Analytics.v3.Data;
using  Google.Apis.Authentication.OAuth2;
using  Google.Apis.Authentication.OAuth2.DotNetOpenAuth;
using  Google.Apis.Services;
using Google.Apis.Util;

Đối với ví dụ trên tôi tạo ra một chương trình mvc .

Đầu tiên cần thêm scope, client , keyfile, key password.

//This is the API url which we're storing to a string
string scope = AnalyticsService.Scopes.AnalyticsReadonly.GetStringValue();
 
//For whatever reason, this is labelled wrong. It is the  email address
//that you have added as a user to your Analytics  account
string  ServiceAccountUser = "nnnnnnnnnnnn-nnnnnnn@developer.gserviceaccount.com";
 
// This physical path that download earlier file from  the service account
// It is the secure file that contain the information of  service account 
string keyFile = @"D:
nnnnnnnnnnnnnnnnnn.p12";
 
//The password Google gives you, as usually notasecret
string  keyPassword = "notasecret";  

Trong đoạn code trên chúng ta hiểu là scope trả lại url và giúp để xác thực, ServiceAccountUser là service account email id và sẽ connect và key file mà download từ the service account trong google developers console, và password đã được keep lại.

Đây là tất cả key mà giúp để xác thực từ google analytics account và bây giờ xác thưc google analytics code theo như sau:

AssertionFlowClient  client = new AssertionFlowClient(
                GoogleAuthenticationServer.Description,   new X509Certificate2(keyFile,  keyPassword, X509KeyStorageFlags.Exportable))
            {
                  Scope = scope,
                ServiceAccountId  = ServiceAccountUser
 
            };
var  authenticator = new OAuth2Authenticator<AssertionFlowClient>(client, AssertionFlowClient.GetState);
// Create the service object and hold in a variable or  an object
var service = new AnalyticsService(new BaseClientService.Initializer()
{
Authenticator = authenticator
});
// It is neccessary to query
// profile of google analytics. it take numbers as View  ID.
string profileId = "ga:nnnnnnnnn";
// what is start date. it is necessary
string startDate = "2014-09-11";
// what is end date. it is necessary
string endDate = "2014-09-30";
// Give the paramenter what fetch from the query
string metrics = "ga:visits,ga:pageviews,ga:users,ga:sessionDuration,ga:bounceRate";
// get the request 
DataResource.GaResource.GetRequest  request = service.Data.Ga.Get(profileId, startDate, endDate, metrics);
// add the paramenter as category
request.Dimensions = "ga:country";
// Execute the request and GaData get the data.
GaData data =  request.Execute();
public List<string>  GetAnalyticsStats()
        {
 
            string scope = AnalyticsService.Scopes.AnalyticsReadonly.GetStringValue();
            string  ServiceAccountUser = "nnnnnnnnnnn-pnnnnnnnnnnnnnnnnnnnnnnnnn@developer.gserviceaccount.com";
            string keyFile = @"D:
nnnnnnnnnnnnnn.p12";
            string keyPassword = "notasecret";
            AssertionFlowClient  client = new AssertionFlowClient(
                GoogleAuthenticationServer.Description,   new X509Certificate2(keyFile,  keyPassword, X509KeyStorageFlags.Exportable))
            {
                  Scope = scope,
                  ServiceAccountId = ServiceAccountUser 
            };
            var authenticator = new OAuth2Authenticator<AssertionFlowClient>(client,   AssertionFlowClient.GetState);
            var service = new AnalyticsService(new BaseClientService.Initializer()
            {
                  Authenticator = authenticator
            });
            string profileId = "ga:nnnnnnn";
            string startDate = "2014-09-11";
            string endDate = "2014-09-30";
            string metrics = "ga:visits";
            DataResource.GaResource.GetRequest  request = service.Data.Ga.Get(profileId, startDate, endDate, metrics);
              request.Dimensions = "ga:country";
            GaData data =  request.Execute();
            List<string> status = new List<string>();
            foreach (var row in data.Rows)
            {
                int i = 0;
                foreach (var h in data.ColumnHeaders)
                {
                      status.Add(h.Name + "    " +  row[i].ToString());
                      i++;
                }
 
            }
            return status;             
          }

Cái này sẽ trả về chuỗi mà chỉ ra tên cột và giá trị của nó. Tất cả những giá trị liên quan đến country như bao người visit, pageviews, người dùng hoặc sessions v.v

Lấy dữ liệu từ controller và chỉ nó ra như sau :

 @foreach (var s in ViewBag.Status)
        { 
            <p>@s</p>
          }

Nội dung nó chỉ ra như sau :

Nguồn : https://www.mindstick.com/Articles/1505/asp-dot-net-mvc/google-analytics-in-asp-dot-net-mvc-4

0