cloudflare-workers-async-google-analytics
The Cloudflare Workers implementation of an async Google Analytics
Introduction
This project is based on Google Analytics Measurement Protocol, using Cloudflare Workers with a less than 1KB gzipped tiny cfga.min.js
to accelerate the Google Analytics, rather than a heavy (45KB gzipped) analytics.js
from Google.
Get Start
1. Import into Cloudflare Workers
Login into Cloudflare Dashboard and enter Workers
App. Create a new script, delete default code in the editor, and then copy the woker.js
content into the editor. After saving the workers script, do not forget to register a route for the scripts.
Now you can test your workers with a simple HTTP request. You should able to see 403 Forbidden
. Then you can deploy the scripts.
2. Insert the cfga.min.js
into your website
Just add those few lines of the code to your website, right before </body>
. Do not forget to replace the default configuration with your own!
<script>
window.ga_tid = "UA-XXXXX-Y";
window.ga_url = "https://example.com/xxx/";
</script>
<script src="https://cdn.jsdelivr.net/npm/cfga@1.0.0" async></script>
3. Watch this repo with Releases Only
.
Click the watch
button at the top of the repo and choose Releases Only
, so you can get notice of release update in time.
Advanced
Data type the cfga.min.js
collected and sent
Currently, cloudflare-workers-async-google-analytics
and cfga.min.js
only support collect those types of data listed below. If you want to collect more, you should use Google Analytics official track code.
dl
: Document location URLuip
: User real IPua
: User Agentdt
: Document Titlede
: Document Encodingdr
: Document Referrerul
: User Languagesd
: Screen Colors Depthsr
: Screen Resolutionplt
: Page Load Timedns
: DNS Timepdt
: Page Downloaad Timerrt
: Redirect Response Timetcp
: TCP Connect Timesrt
: Server Response Timedit
: DOM Interactive Timeclt
: Content Load Time
Security
cloudflare-workers-async-google-analytics
blocks those types of request by default:
- No
User-Agent
in request headers - No
Referer
in request headers - No Tracker ID given in request headers
- Use some other measurements from Cloudflare WAF
And if you want to restrict your workers only for your website, all you need to do is to edit a few lines of your workers:
- Launch Cloudflare Workers Editor again.
- You can see some commented out code at the first line like this:
- replace your domain with
skk.moe
, then remove //
.
Notice: set AllowedReferrer
value to skk.moe
means all the subdomains of skk.moe
will be allowed as well.
Author
cloudflare-workers-async-google-analytics © Sukka, Released under the MIT License.
Authored and maintained by Sukka with help from contributors (list).
Personal Website · Blog · GitHub @SukkaW · Telegram Channel @SukkaChannel · Twitter @isukkaw · Keybase @sukka