diff --git a/senat_campaign/migrations/0002_senatcampaignwebsettings_matomo_id.py b/senat_campaign/migrations/0002_senatcampaignwebsettings_matomo_id.py
new file mode 100644
index 0000000000000000000000000000000000000000..8e554c855cc4d25f9c571742946f742574db422c
--- /dev/null
+++ b/senat_campaign/migrations/0002_senatcampaignwebsettings_matomo_id.py
@@ -0,0 +1,22 @@
+# Generated by Django 3.0.6 on 2020-05-14 18:29
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("senat_campaign", "0001_initial"),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name="senatcampaignwebsettings",
+            name="matomo_id",
+            field=models.IntegerField(
+                blank=True,
+                null=True,
+                verbose_name="Matomo ID pro sledování návštěvnosti",
+            ),
+        ),
+    ]
diff --git a/senat_campaign/models.py b/senat_campaign/models.py
index f8a02f5513af52a1714792b6362504e5e56f7941..f36fee3c80389645c42460f9ececb6872fc96f64 100644
--- a/senat_campaign/models.py
+++ b/senat_campaign/models.py
@@ -251,6 +251,9 @@ class SenatCampaignWebSettings(BaseSetting):
     contacts = StreamField(
         [("item", ContactBlock())], verbose_name="kontaktní osoby", blank=True
     )
+    matomo_id = models.IntegerField(
+        "Matomo ID pro sledování návštěvnosti", blank=True, null=True
+    )
 
     # TODO Matomo
     # TODO donations
@@ -258,6 +261,7 @@ class SenatCampaignWebSettings(BaseSetting):
     first_tab_panels = [
         FieldPanel("first_name"),
         FieldPanel("last_name"),
+        FieldPanel("matomo_id"),
     ]
 
     second_tab_panels = [
diff --git a/senat_campaign/templates/senat_campaign/base.html b/senat_campaign/templates/senat_campaign/base.html
index 9323e99c77f857649a3b8dd43a8493c17bc6e828..0fa291ebc09fc0688eb071d086cd8b3a648f4801 100644
--- a/senat_campaign/templates/senat_campaign/base.html
+++ b/senat_campaign/templates/senat_campaign/base.html
@@ -53,6 +53,23 @@
 
   <!-- Styles -->
   <link href="{% static "senat_campaign/css/style.css" %}" rel="stylesheet">
+
+  {% if not request.is_preview and web_settings.matomo_id %}
+  <!-- Matomo -->
+  <script type="text/javascript">
+    var _paq = window._paq || [];
+    _paq.push(['trackPageView']);
+    _paq.push(['enableLinkTracking']);
+    (function() {
+      var u="//matomo.pirati.cz/";
+      _paq.push(['setTrackerUrl', u+'matomo.php']);
+      _paq.push(['setSiteId', '{{ web_settings.matomo_id }}']);
+      var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+      g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
+    })();
+  </script>
+  <!-- End Matomo Code -->
+  {% endif %}
 </head>
 
 <body id="top" data-spy="scroll" data-offset="120" data-target="#mainNavigation">