localga

Travis CI Github Build Codacy Badge Codebeat Badge CodeFactor Badge DeepScan grade Analytics

Local GA

Save a local version of your Google Analytics script

Visitor stats

GitHub stars GitHub forks GitHub watchers GitHub followers

Code stats

GitHub code size in bytes GitHub repo size GitHub language count GitHub top language GitHub last commit

About

Google Page Speed Insights complains about the expiry date set for the Google Analytics (or Google Tag Manager) script.

One way to work around this issue is to self host this script.

This however is not so good idea because this way the script will no longer be updated/bug-fixed.

This is where localga steps in.

localga automates the task of updating the Google Analytics (or Google Tag Manager) script.

You can also use this package if you need (or want to) self host the analytics files because you offer offline experience for your users. The actual analytics tracking should be done by you and is not part of this package.

Install

This module requires NodeJS v18 or higher.

npm i localga --save-dev

or

yarn add localga --dev

Usage

  1. As a package.json script:
"scripts": {
	"ga": "localga --id UA-XXXXXXXX-Y --folder ./your/js/folder --name google-analytics-local.js"
}
  1. From command line (Install the module globally first):
localga --id UA-XXXXXXXX-Y --folder ./your/js/folder --name google-analytics-local.js

The localga module will generate two new script files called google-analytics-local.js and analytics.js placed in the folder you provided.

If no --folder is specified, the files will be placed in the root of your project.

After the files are generated, you should require the google-analytics-local.js file in your bundle (or include it in your HTML file(s)).

Then you should enable the analytics script. Something like the following:

window.dataLayer = window.dataLayer || [];

function gtag() {
	dataLayer.push(arguments);
}

gtag('js', new Date());
gtag('config', 'UA-XXXXXXXX-Y');

UA-XXXXXXXX-Y is your Google Analytics ID

LICENSE

MIT


Connect with me:

                     

Support and sponsor my work:

  • Hire me onBraintrust
  • Hire me onToptal

Go back

Send me your message