Update to Google Analytics 4 (#7554)

* Adopt Google Analytics 4 tag code

* Fix typo

* Temporarily add Google Analytics tracking to tw5.com

So that we can test everything is working with the Vercel preview

* Remove test configuration
This commit is contained in:
Jeremy Ruston
2023-06-22 08:48:48 +01:00
committed by GitHub
parent a05302da10
commit 9b8db5dbb1
4 changed files with 16 additions and 16 deletions

View File

@@ -17,7 +17,7 @@ exports.name = "google-analytics";
exports.platforms = ["browser"];
exports.synchronous = true;
var CONFIG_CONSENT_REQUIRED_TITLE = "$:/config/cookie-consent-required",
var CONFIG_CONSENT_REQUIRED_TITLE = "$:/config/cookie-consent-required", // "yes" or "no" (the default)
CONSENT_TITLE = "$:/state/consent-banner/accepted"; // "": undeclared, "yes": accepted, "no": declined
exports.startup = function() {
@@ -25,15 +25,16 @@ exports.startup = function() {
initialiseGoogleAnalytics = function() {
console.log("Initialising Google Analytics");
hasInitialised = true;
var gaAccount = $tw.wiki.getTiddlerText("$:/GoogleAnalyticsAccount","").replace(/\n/g,""),
gaDomain = $tw.wiki.getTiddlerText("$:/GoogleAnalyticsDomain","auto").replace(/\n/g,"");
// Using ga "isogram" function
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create',gaAccount,gaDomain);
ga('send','pageview');
var gaMeasurementID = $tw.wiki.getTiddlerText("$:/GoogleAnalyticsMeasurementID","").replace(/\n/g,"");
var url ="https://www.googletagmanager.com/gtag/js?id=" + gaMeasurementID;
window.dataLayer = window.dataLayer || [];
window.gtag = function() { window.dataLayer?.push(arguments); };
window.gtag("js",new Date());
window.gtag("config",gaMeasurementID);
const scriptElement = window.document.createElement("script");
scriptElement.async = true;
scriptElement.src = url;
window.document.head.appendChild(scriptElement);
};
// Initialise now if consent isn't required
if($tw.wiki.getTiddlerText(CONFIG_CONSENT_REQUIRED_TITLE) !== "yes") {