Tích hợp Google Analytics API vào ứng dụng Laravel để thống kê truy cập website

Đăng bởi:

Hùng Việt

Đăng ngày:

Dec 19, 2020

Đăng ở:

Tin Tức Công Nghệ

Với mỗi website thì việc thống kê số lượng truy cập là điều cần thiết. Với Google Analytics thì chúng ta có thể dễ dàng sử dụng bằng cách gắn mã theo dõi vào trang web và truy cập vào Google Analytics để theo dõi lượng truy cập. Tuy nhiên chúng ta cũng có thể lấy được các dữ liệu này và thêm vào phần quản trị của trang web để có thể dễ dàng theo dõi hơn. Trong bài viết này, mình sẽ hướng dẫn các bạn truy xuất dữ liệu từ Google Analytics API trong Laravel.

Cài đặt Laravel

Đầu tiên, để bắt đầu, chúng ta cần cài đặt Laravel. Trong ứng dụng này mình sẽ sử dụng Laravel 5.8 nhé. Thao tác cài đặt các bạn có thể xem hướng dẫn trên trang chủ Laravel.com.

Cài đặt thư viện spatie/laravel-analytics

Đối với Laravel 5.8 trở lên, hãy sử dùng version 3.0.7 của thư viện này.

Cài đặt thư viện thông qua Composer.

composer require spatie/laravel-analytics

Tiếp theo, xuất bản tiếp cấu hình sẽ được tạo trong config/analytics.php bằng câu lệnh

php artisan vendor:publish --provider="Spatie\Analytics\AnalyticsServiceProvider"
# config/analytics.php

return [

    /*
     * The view id of which you want to display data.
     */
    'view_id' => env('ANALYTICS_VIEW_ID'),

    /*
     * Path to the client secret json file. Take a look at the README of this package
     * to learn how to get this file.
     */
    'service_account_credentials_json' => storage_path('app/analytics/service_account_credentials_json.json'),

    /*
     * The amount of minutes the Google API responses will be cached.
     * If you set this to zero, the responses won't be cached at all.
     */
    'cache_lifetime_in_minutes' => 60 * 24,

    /*
     * Here you may configure the "store" that the underlying Google_Client will
     * use to store it's data.  You may also add extra parameters that will
     * be passed on setCacheConfig (see docs for google-api-php-client).
     *
     * Optional parameters: "lifetime", "prefix"
     */
    'cache' => [
        'store' => 'file',
    ],
];

Thiết lập API Google

Đầu tiên bạn cần lấy một số thông tin xác thực để sử dụng API của Google. Mình giả định rằng bạn đã tạo tài khoản Google và đã đăng nhập.

Hãy truy cập trang Google API và click vào "Select a project", tại popup select a project click vào "NEW PROJECT".

screen-shot-2020-12-19-at-101132

 Sau đó đặt tên cho project và Create

screen-shot-2020-12-19-at-101403

Sau khi hoàn tất thì sẽ chuyển sang trang dashboard của project. Tại đây mình click vào "ENABLE APIS AND SERVICES" giao diện thư viện API được hiện ra, lúc này bạn cần tìm vào chọn thư viện Google Analytics Api và click "ENABLE"

screen-shot-2020-12-19-at-101956

Tiếp theo bạn tạo một dự án có quyền truy cập vào Analytics API, tải tiệp json có các thông tin xác thực bằng cách click vào trang Credentials sau đó click icon download

screen-shot-2020-12-19-at-113253-1

 

Lưu tệp json vừa tải về bên trong dự án Laravel của bạn được chỉ định trong service_account_credentials_json của file cấu hình. Vì tệp json có chứa thông tin nhạy cảm, nên mình không khuyến khích bạn push nó lên kho lưu trữ git của bạn.

Cấp quyền cho thuộc tính Analytics

Mình giả sử rằng bạn đã tạo tài khoản Analytics trên trang Analytics. Tại trang quản trị, chọn User Management

68747470733a2f2f7370617469652e6769746875622e696f2f6c61726176656c2d616e616c79746963732f76322f352e6a7067

Tại màn hình này bạn có thể cấp quyền truy cập cho địa chỉ email được tìm thấy trong client_email từ tệp json mà bạn tải xuống trước đó. Cấp quyền chỉ đọc là đủ 

Lấy view id

Cuối cùng bạn cần phải điền view_id vào tệp cấu hình tại file config/analytics.php. Bạn có thể nhận giá trị này trên trang Analytics. Tại trang quản trị, chọn View Settings.

68747470733a2f2f7370617469652e6769746875622e696f2f6c61726176656c2d616e616c79746963732f76322f372e6a7067

 Bạn sẽ thấy View ID

68747470733a2f2f7370617469652e6769746875622e696f2f6c61726176656c2d616e616c79746963732f76322f382e6a7067

Sử dụng Package Laravel-Analytics

Sau khi cài đặt xong và mọi thứ đã được thiết lập chính xác, chúng ta có thể bắt đầu sử dụng package này trong dự án Laravel của mình . Package này cung cấp các phương pháp để truy xuất dữ liệu phân tích giống như API Google Analytics. Một số phương pháp phổ biến được liệt kê dưới đây.

// Lấy các trang được truy cập nhiều nhất trong ngày
$pages = Analytics::fetchMostVisitedPages(Period::days(1));

//Truy xuất dữ liệu khách truy cập và số lần xem trang trong 15 ngày
$visitors = Analytics::fetchVisitorsAndPageViews(Period::days(15));

// Truy xuất dữ liệu lấy tổng số khách truy cập và số lần xem trang
$total_visitors = Analytics::fetchTotalVisitorsAndPageViews(Period::days(7));

// Truy xuất các liên kết giới thiệu hàng đầu
$top_referrers = Analytics::fetchTopReferrers(Period::days(7));

// Truy xuất loại người dùng
$user_types = Analytics::fetchUserTypes(Period::days(7));

// Truy xuất các trình duyệt hàng đầu
$top_browser = Analytics::fetchTopBrowsers(Period::days(7));

$analyticsData = Analytics::performQuery(
   Period::years(1),
      'ga:sessions',
      [
          'metrics' => 'ga:sessions, ga:pageviews',
          'dimensions' => 'ga:yearMonth'
      ]
);

Nếu bạn muốn có nhiều hơn khoảng thời gian để tìm kiếm dữ liệu, bạn có thể sử dụng thêm startDate và endDate cho period 

Cảm ơn bạn đã đọc. Nếu bạn có bất kỳ câu hỏi, hãy chia sẻ chúng trong phần bình luận bên dưới.

 

Tài liệu tham khảo

https://github.com/spatie/laravel-analytics

 

default_image
Tác giả: Hùng Việt
ADMIN

Bình luận

name
Code dởm 19.12.2020 lúc 18:24

Bài hay quá, mai tích hợp vào cho khách, cảm ơn bài viết của bạn

Để lại bình luận

Email và số điện thoại sẽ không được công khai. Những trường bắt buộc được đánh dấu *

Repository deleted Your repository has remove
Loading
Bạn cần hỗ trợ?