diff --git a/docs/conf_common.py b/docs/conf_common.py
index cf5f1418f9..c055657a71 100644
--- a/docs/conf_common.py
+++ b/docs/conf_common.py
@@ -59,6 +59,7 @@ extensions = ['breathe',
'extensions.html_redirects',
'extensions.toctree_filter',
'extensions.list_filter',
+ 'extensions.google_analytics',
# Note: order is important here, events must
# be registered by one extension before they can be
@@ -361,6 +362,8 @@ html_static_path = ['../_static']
# Output file base name for HTML help builder.
htmlhelp_basename = 'ReadtheDocsTemplatedoc'
+google_analytics_id = os.environ['CI_GOOGLE_ANALYTICS_ID']
+
# -- Options for LaTeX output ---------------------------------------------
latex_template_dir = os.path.join(config_dir, 'latex_templates')
diff --git a/docs/extensions/google_analytics.py b/docs/extensions/google_analytics.py
new file mode 100644
index 0000000000..e565318169
--- /dev/null
+++ b/docs/extensions/google_analytics.py
@@ -0,0 +1,30 @@
+# Embeds a google analytics tracking tag in every HTML page
+def setup(app):
+ app.add_config_value('google_analytics_id', None, 'html')
+ app.connect('html-page-context', google_analytics_embed)
+
+ return {'parallel_read_safe': True, 'parallel_write_safe': True, 'version': '0.1'}
+
+
+def google_analytics_embed(app, pagename, templatename, context, doctree):
+
+ ga_id = app.config.google_analytics_id
+ if not ga_id:
+ return
+
+ metatags = context.get('metatags', '')
+
+ google_analytics_snippet = """
+
+
+ """.format(ga_id, ga_id)
+
+ # Prepend the google analytics to the HTML metatags (which will be passed to the sphinx templating engine)
+ metatags = google_analytics_snippet + metatags
+ context['metatags'] = metatags