Xin chào các bạn, hôm nay mình sẽ giới thiệu với các bạn một chức năng quan trọng khi làm việc với website. Đó là tích hợp việc trackings analytics vào website của bạn.
Làm dev mà, rồi sớm hay muộn bạn cũng sẽ có một website cho bản thân, chả có thì việc làm việc dưới môi trường development cũng cần phải sử dụng. Xa xôi hơn, việc sử dụng đến google analytics là chắc chắn cần thiết.
Hiện tại mình đang sử dụng Nuxt.js, vì vậy mình sẽ sử dụng và làm việc trên framework này để chia sẻ. Nếu các bạn sử dụng các framework khác thì cũng tương tự như vậy thôi. Các library/package gần như đã có docs rất rõ ràng và hỗ trợ đầy đủ các options cho bạn rồi.
Bắt đầu thôi.!
1. Create account
Thứ tự như sau:
- Vào phần
Quản trị viên
sau đó chọn mụcTạo tài khoản
- Đặt tên tài khoản => Tiếp
- Thiết lập thuộc tính bạn đặt tên trang web bạn muốn. Phần URL bạn sẽ đặt tên domain chính là domain hiện tại của bạn. Nhớ chọn giao thức https hoặc http cho phù hợp. Tên URL của trang web bạn cũng nhớ rằng nên để đuôi hợp lệ. Nếu dùng ở local thì tránh các đuôi như
local, localhost
. Thường thì cá nhân mình sẽ để đuôi.dev
cho nó dễ hiểu.
Tiếp đó các bạn cứ next next vài lần là được thôi.
2. Setup and Tracking
Sau khi bạn tạo xong tài khoản đăng ký. Bạn hãy thêm phần ANALYTICS_TRACKING_ID vào nuxt.config.js
1 2 3 4 5 6 7 | buildModules<span class="token punctuation">:</span> <span class="token punctuation">[</span> <span class="token string">'@nuxtjs/google-analytics'</span> <span class="token punctuation">]</span><span class="token punctuation">,</span> googleAnalytics<span class="token punctuation">:</span> <span class="token punctuation">{</span> id<span class="token punctuation">:</span> <span class="token string">'UA-12301-2'</span> <span class="token punctuation">}</span> |
Với các version của Nuxt.js < 2.9:
1 2 3 4 | modules<span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token string">'@nuxtjs/google-analytics'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> id<span class="token punctuation">:</span> <span class="token string">'ANALYTICS_TRACKING_ID'</span> <span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">;</span> |
Đến đây là lên analytics tracking đã có dữ liệu rồi. Bạn có thể debug ở môi trường development bằng cách thêm option:
1 2 3 4 5 6 7 8 | <span class="token punctuation">[</span><span class="token string">'@nuxtjs/google-analytics'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> id<span class="token punctuation">:</span> <span class="token string">'ANALYTICS_TRACKING_ID'</span><span class="token punctuation">,</span> debug<span class="token punctuation">:</span> <span class="token punctuation">{</span> enabled<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span> sendHitTask<span class="token punctuation">:</span> <span class="token boolean">true</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">;</span> |
Ngoài ra các bạn có thể xem thêm các option tại document Vue Analytics.
3. Get data from analytics
Mình sử dụng Laravel để lấy thông tin từ analytics về. Nhưng trước hết bạn cần enable API của analytics nếu không sẽ dính lỗi 403.
Vào địa chỉ https://console.developers.google.com/apis/dashboard, chọn project => Click Enable API and Service, sau đó tìm kiếm Google Analytics Report Api và click Enable.
Cài đặt:
1 2 | composer <span class="token keyword">require</span> spatie<span class="token operator">/</span>laravel<span class="token operator">-</span>analytics |
Publish config file:
1 2 | php artisan vendor<span class="token punctuation">:</span>publish <span class="token operator">--</span>provider<span class="token operator">=</span><span class="token double-quoted-string string">"SpatieAnalyticsAnalyticsServiceProvider"</span> |
Tiếp theo bạn truy cập vào địa chỉ https://console.developers.google.com/apis/dashboard, chọn mục credentials => Click Create Credentials => Service Account Key => Select project mà bạn mong muốn rồi Create thì bạn sẽ tải về một file có dạng ten-account-xxxxx.json
, hãy đổi tên và đặt file này vào đường dẫn trong config file publish vừa tạo ra. Mặc định sẽ là:
1 2 | <span class="token function">storage_path</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'app/analytics/service-account-credentials.json'</span><span class="token punctuation">)</span><span class="token punctuation">,</span> |
Vẫn chưa xem được đâu. Bạn cần mở file vừa tải về, xem đến dòng client_email, rồi thêm email này với quyền Read and Analyze tại UserManagement View Settings trong phần Admin mới được nhé.
Giờ đến lúc dùng được rồi. Giả sử mình muốn lấy page views trong vòng 1 tháng.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <span class="token keyword">use</span> <span class="token package">Spatie<span class="token punctuation"></span>Analytics<span class="token punctuation"></span>Analytics</span><span class="token punctuation">;</span> <span class="token keyword">use</span> <span class="token package">Spatie<span class="token punctuation"></span>Analytics<span class="token punctuation"></span>Period</span><span class="token punctuation">;</span> <span class="token keyword">use</span> <span class="token package">Carbon</span><span class="token punctuation">;</span> <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">__construct</span><span class="token punctuation">(</span>Analytics <span class="token variable">$analytics</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">></span><span class="token property">analytics</span> <span class="token operator">=</span> <span class="token variable">$analytics</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token comment">// code</span> <span class="token variable">$period</span> <span class="token operator">=</span> Period<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">create</span><span class="token punctuation">(</span>Carbon<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">now</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">></span><span class="token function">subMonth</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> Carbon<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">now</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$data</span> <span class="token operator">=</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">></span><span class="token property">analytics</span><span class="token operator">-</span><span class="token operator">></span><span class="token function">performQuery</span><span class="token punctuation">(</span> <span class="token variable">$period</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'ga:pageviews'</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> |
Có rất nhiều options từ analytics, các bạn có thể xem hoặc test trực tiếp tại Test Query Explore GA.
4. Add metrics and dimensions (Options)
Mục đích ở đây của mình là muốn gửi kèm một số thông tin đi kèm khi mà người dùng truy cập vào page. Giả sử mình có danh sách các bài viết, và mình muốn xem mỗi danh mục có bao nhiêu lượt pageview chả hạn. Khi user vào xem một bài mình sẽ gửi kèm danh mục và giá trị của nó lên GA.
Để triển khai được việc này bạn cần thêm các dimensions và mertrics tại phần Admin => Custom Definitions.
Về Scope của các dimensions và metrics bạn có thể đọc tại Understanding Scope In Google Analytics Reporting.
Sau khi custom xong, bạn có thể tracking bằng cách chọn Behavior => Site Content => All Page. Sau đó bạn chọn phần Secondary Dimension => Custom Dimensions => chọn Dimension mà các bạn vừa tạo. Lưu ý là nếu bạn không add dimensions thì sẽ không có mục Custom Dimensions đâu nhé.
Phía web bạn sẽ gửi kèm lên như sau:
1 2 3 4 5 6 7 8 | <span class="token keyword">this</span><span class="token punctuation">.</span>$ga<span class="token punctuation">.</span><span class="token function">page</span><span class="token punctuation">(</span><span class="token punctuation">{</span> title<span class="token punctuation">:</span> title<span class="token punctuation">,</span> page<span class="token punctuation">:</span> url<span class="token punctuation">,</span> location<span class="token punctuation">:</span> window<span class="token punctuation">.</span>location<span class="token punctuation">.</span>href<span class="token punctuation">,</span> dimension1<span class="token punctuation">:</span> <span class="token string">'category'</span><span class="token punctuation">,</span> metric1<span class="token punctuation">:</span> value<span class="token punctuation">,</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span> |
Nếu bạn muốn gửi bao nhiêu thông tin đi kèm thì bạn chỉ cần tạo thêm các dimension và metric rồi gửi lên bằng key dimensionN, metricN.
Với web và android bạn cũng có thể tham khảo tại đây.
Đây là phần bên client. Bên server bạn muốn lấy thông tin này về thì bạn chỉ cần sửa như sau:
1 2 3 4 5 6 | <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">></span><span class="token property">analytics</span><span class="token operator">-</span><span class="token operator">></span><span class="token function">performQuery</span><span class="token punctuation">(</span> <span class="token variable">$period</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'ga:metric1'</span><span class="token punctuation">,</span> <span class="token punctuation">[</span><span class="token single-quoted-string string">'dimensions'</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token single-quoted-string string">'ga:dimension1'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> |
Nhớ là cứ test thử bằng Test Query Explore GA cho chắc nhé.
5. Create Custom Report
Ở phần trên mình đã hướng dẫn các bạn thêm các metrics và dimensions. Giờ mình sẽ tự tạo ra các report rõ ràng và như mong muốn của theo các metrics và dimensions này.
Vào Customization => Custom Reports => Add Custom Report, các bạn nhớ đặt tên cho report của mình. Ví dụ như bài này mình sẽ đặt là Category Report, sau đó chọn các dimensions trong phần custom dimensions mà bạn tạo ở phía trên. Tương tự là với phần lựa chọn metrics. Mình làm thử và có kết quả như sau.
Hình ảnh có nội dung khiêu gợi nên phải che lại
Trên đây là một số tips mình đã làm việc với GA mà muốn chia sẻ lại với các bạn. Cảm ơn các bạn đã theo dõi. Hẹn gặp lại các bạn .!