diff --git a/Gemfile b/Gemfile
index 51ec1c4878d2..2d8043c72ce7 100644
--- a/Gemfile
+++ b/Gemfile
@@ -37,6 +37,7 @@ end
# Gems for al-folio plugins
group :al_folio_plugins do
+ gem 'al_analytics', :git => 'https://github.com/al-org-dev/al-analytics.git'
gem 'al_citations', :git => 'https://github.com/al-org-dev/al-citations.git'
gem 'al_ext_posts', :git => 'https://github.com/al-org-dev/al-ext-posts.git'
end
diff --git a/Gemfile.lock b/Gemfile.lock
index 4f86d4de3d71..1faa4e09204c 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -6,6 +6,14 @@ GIT
jekyll (>= 0.10.0)
terser (>= 1.0.0)
+GIT
+ remote: https://github.com/al-org-dev/al-analytics.git
+ revision: a9c7821b0a3639ed3f1cc8a8cdcaabfbb4f64f5d
+ specs:
+ al_analytics (0.1.0)
+ jekyll (>= 3.0)
+ liquid (>= 4.0)
+
GIT
remote: https://github.com/al-org-dev/al-citations.git
revision: d6dd73152f8ceafe475f0f0ad5c846167c006e4f
@@ -288,6 +296,7 @@ PLATFORMS
x86_64-linux-musl
DEPENDENCIES
+ al_analytics!
al_citations!
al_ext_posts!
classifier-reborn
diff --git a/_config.yml b/_config.yml
index 241a1190ab32..363a439ceb7a 100644
--- a/_config.yml
+++ b/_config.yml
@@ -72,12 +72,13 @@ og_image: # The site-wide (default for all links) Open Graph preview image
# Analytics and search engine verification
# -----------------------------------------------------------------------------
-# For Google Analytics, see https://support.google.com/analytics/answer/10447272?hl=en&ref_topic=14088998&sjid=5129943941510317771-SA#zippy=%2Cgoogle-sites
-# and follow the instructions for Google Sites. You will need to create a Google Analytics property and copy the Google tag ID.
-google_analytics: # your Google Analytics measurement ID (format: G-XXXXXXXXXX)
-cronitor_analytics: # cronitor RUM analytics site ID (format: XXXXXXXXX)
-pirsch_analytics: # your Pirsch analytics site ID (length 32 characters)
-openpanel_analytics: # your Openpanel analytics client ID (format: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)
+analytics:
+ # For Google Analytics, see https://support.google.com/analytics/answer/10447272?hl=en&ref_topic=14088998&sjid=5129943941510317771-SA#zippy=%2Cgoogle-sites
+ # and follow the instructions for Google Sites. You will need to create a Google Analytics property and copy the Google tag ID.
+ google: # your Google Analytics measurement ID (format: G-XXXXXXXXXX)
+ cronitor: # cronitor RUM analytics site ID (format: XXXXXXXXX)
+ pirsch: # your Pirsch analytics site ID (length 32 characters)
+ openpanel: # your Openpanel analytics client ID (format: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX)
# For Google Search Console, see https://support.google.com/webmasters/answer/9008080?hl=en#meta_tag_verification&zippy=%2Chtml-tag
google_site_verification: # your google-site-verification ID (Google Search Console)
@@ -228,6 +229,7 @@ plugins:
- jemoji
# al-folio plugins
+ - al_analytics
- al_citations
- al_ext_posts
@@ -392,10 +394,6 @@ lazy_loading_images: true # enables lazy loading of images (recommended)
# Optional Features
# -----------------------------------------------------------------------------
-enable_google_analytics: false # enables google analytics
-enable_cronitor_analytics: false # enables cronitor RUM analytics
-enable_pirsch_analytics: false # enables Pirsch analytics (https://pirsch.io/)
-enable_openpanel_analytics: false # enables Openpanel analytics (https://openpanel.dev/)
enable_google_verification: false # enables google site verification
enable_bing_verification: false # enables bing site verification
enable_masonry: true # enables automatic project cards arrangement
diff --git a/_includes/scripts.liquid b/_includes/scripts.liquid
index 7bbd07166933..67b7bd3e4e07 100644
--- a/_includes/scripts.liquid
+++ b/_includes/scripts.liquid
@@ -212,29 +212,9 @@
{% endunless %}
{% endif %}
-{% if site.enable_google_analytics %}
+{% if site.plugins contains 'al_analytics' %}
-
-
-
-{% endif %}
-
-{% if site.enable_cronitor_analytics %}
-
-
-
-{% endif %}
-{% if site.enable_pirsch_analytics %}
-
-{% endif %}
-{% if site.enable_openpanel_analytics %}
-
-
+ {% al_analytics_scripts %}
{% endif %}
{% if site.enable_progressbar %}
diff --git a/assets/js/cronitor-analytics-setup.js b/assets/js/cronitor-analytics-setup.js
deleted file mode 100644
index 537bc5b4cc72..000000000000
--- a/assets/js/cronitor-analytics-setup.js
+++ /dev/null
@@ -1,6 +0,0 @@
-window.cronitor =
- window.cronitor ||
- function () {
- (window.cronitor.q = window.cronitor.q || []).push(arguments);
- };
-cronitor("config", { clientKey: "{{ site.cronitor_analytics }}" });
diff --git a/assets/js/google-analytics-setup.js b/assets/js/google-analytics-setup.js
deleted file mode 100644
index c66e2010ee58..000000000000
--- a/assets/js/google-analytics-setup.js
+++ /dev/null
@@ -1,6 +0,0 @@
-window.dataLayer = window.dataLayer || [];
-function gtag() {
- window.dataLayer.push(arguments);
-}
-gtag("js", new Date());
-gtag("config", "{{ site.google_analytics }}");
diff --git a/assets/js/open-panel-analytics-setup.js b/assets/js/open-panel-analytics-setup.js
deleted file mode 100644
index fbd4833d2f92..000000000000
--- a/assets/js/open-panel-analytics-setup.js
+++ /dev/null
@@ -1,11 +0,0 @@
-window.op =
- window.op ||
- function (...args) {
- (window.op.q = window.op.q || []).push(args);
- };
-window.op("init", {
- clientId: "{{ site.openpanel_analytics }}",
- trackScreenViews: true,
- trackOutgoingLinks: true,
- trackAttributes: true,
-});