PHPackages                             dreistromland/typo3-plausibleio - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. dreistromland/typo3-plausibleio

ActiveTypo3-cms-extension[Utility &amp; Helpers](/categories/utility)

dreistromland/typo3-plausibleio
===============================

Privacy-friendly analytics integration for TYPO3 CMS. Analyze your audience with Plausible Analytics and see nice dashboards with analytics data directly in the TYPO3 backend.

3.0.0(2y ago)01.9k↓35%3[1 issues](https://github.com/dreistromland/typo3-ext-plausibleio/issues)[3 PRs](https://github.com/dreistromland/typo3-ext-plausibleio/pulls)GPL-2.0-or-laterPHPPHP ^8.1 | ^8.2 | ^8.3

Since Mar 13Pushed 1y ago1 watchersCompare

[ Source](https://github.com/dreistromland/typo3-ext-plausibleio)[ Packagist](https://packagist.org/packages/dreistromland/typo3-plausibleio)[ Docs](https://github.com/dreistromland/typo3-ext-plausibleio/)[ RSS](/packages/dreistromland-typo3-plausibleio/feed)WikiDiscussions develop Synced 2d ago

READMEChangelogDependencies (22)Versions (4)Used By (0)

[![CI](https://github.com/dreistromland/typo3-ext-plausibleio/actions/workflows/ci.yml/badge.svg)](https://github.com/dreistromland/typo3-ext-plausibleio/actions/workflows/ci.yml)

Privacy-friendly analytics integration for TYPO3 CMS with Plausible Analytics.
==============================================================================

[](#privacy-friendly-analytics-integration-for-typo3-cms-with-plausible-analytics)

Analyze your audience with Plausible Analytics and see nice dashboards with analytics data directly in the TYPO3 backend.

Plausible Analytics is a privacy-friendly, cookieless, lightweight and open-source analytics alternative - you can either use their service at  or [self-host the service](https://plausible.io/docs/self-hosting) on your own platform.

[![Image of Dashboards](Documentation/Images/all-dashboards.png)](Documentation/Images/all-dashboards.png)

Installation
------------

[](#installation)

### With Composer

[](#with-composer)

`composer require dreistromland/typo3-plausibleio`

### Without Composer

[](#without-composer)

- [Download](https://extensions.typo3.org/extension/plausibleio) the extension from the TER
- Install it with the Extension Manager

Configuration
-------------

[](#configuration)

### Site Language

[](#site-language)

The extension is mainly configured within the site language `Site Management` / `Sites` / `` / `Languages` / `` / `Plausible Analytics`

[![Image of plausible configuration within site language settings](Documentation/Images/site-language-configuration.png)](Documentation/Images/site-language-configuration.png)

The following settings are available:

#### Plausible API base url

[](#plausible-api-base-url)

The base URL where the Plausible API endpoints are accessible.
If you use the plausible.io service it is `https://plausible.io/`.
If you are using a self-hosted Plausible instance, add your Plausible domain here (like `https://analytics.example.com/`).

#### Plausible API Key

[](#plausible-api-key)

A Plausible API Token. If you don't have one yet, you can create one in your Plausible instance at `Settings` / `API keys`

[![Image of Plausible settings](Documentation/Images/plausible-api-key.png)](Documentation/Images/plausible-api-key.png)

#### Site

[](#site)

A Plausible site ID.
This is typically your domain or subdomain without `www` (like `waldhacker.dev` or `blog.waldhacker.dev`).
The Site ID is also the one you entered in your Plausible instance when you created a new site using the `+ Add a website` button.

[![Image of Plausible settings](Documentation/Images/plausible-new-site.png)](Documentation/Images/plausible-new-site.png)

#### Auto-Include Plausible tracking snippet

[](#auto-include-plausible-tracking-snippet)

If switched on, then the [Plausible tracking script](https://plausible.io/docs/plausible-script) is automatically included in the frontend.

If you don't want automatic integration, you can also insert the script manually using the asset collector within your templates like this:

```

```

#### Plausible tracking snippet Base URL

[](#plausible-tracking-snippet-base-url)

The base URL where the Plausible Plausible tracking scripts are accessible.
It must be the part before `js/plausible.js`. So if your Plausible tracking scripts are available at `https://analytics.example.com/js/plausible.js` then put `https://analytics.example.com/` here.
If you use the plausible.io service it is `https://plausible.io/`.

The URL is most likely the same as the "Plausible API base url". However, it may happen that the tracking script should be loaded from another domain [because of adblockers](https://plausible.io/docs/proxy/introduction). Therefore the Plausible tracking scripts base URL must be configured separately here.

#### Plausible tracking snippet Type

[](#plausible-tracking-snippet-type)

Plausible [offers different tracking scripts](https://plausible.io/docs/script-extensions) for various use cases.
One of these scripts can be selected here (the default ist `plausible.js`).

### Extension configuration

[](#extension-configuration)

Some options are configured within the extension configuration at `Admin Tools` / `Extension Configuration` / `plausibleio`

[![Image of plausible configuration within the extension settings](Documentation/Images/extension-configuration.png)](Documentation/Images/extension-configuration.png)

#### Time Frames

[](#time-frames)

Comma-separated list of available selectable time frames within the dashboard widgets - see  for possible options (`custom` is currently not available).

#### Default Time Frame

[](#default-time-frame)

The time frame to use initially when rendering the widgets.

### Advanced configuration

[](#advanced-configuration)

#### Service.yaml

[](#serviceyaml)

If you want to see multiple widgets with preconfigured values on one dashboard, this is possible via the widget configuration in the file `Configuration/Services.yaml`.
So it is possible to create e.g. the `Countries` widget 2 times on the dashboard. One which shows the country map for `site1.example.com` and one which shows the country map for `site2.example.com`.

Copy the `waldhacker.plausibleio.widget.country` widget from the file `EXT:plausibleio/Configuration/Services.yaml`

```
  waldhacker.plausibleio.widget.country:
    class: 'Waldhacker\Plausibleio\Dashboard\Widget\CountryMapDataWidget'
    arguments:
      $configurationService: '@Waldhacker\Plausibleio\Services\ConfigurationService'
      $options:
        siteId: null
        timeFrame: null
    tags:
      - name: dashboard.widget
        identifier: 'plausible.countrymapdata'
        groupNames: 'plausibleio'
        title: 'LLL:EXT:plausibleio/Resources/Private/Language/locallang.xlf:widget.countryMapData.label'
        description: 'LLL:EXT:plausibleio/Resources/Private/Language/locallang.xlf:widget.countryMapData.description'
        iconIdentifier: 'content-widget-chart-bar'
        height: 'medium'
        width: 'medium'

```

into your site package `Configuration/Services.yaml` file and adjust the configuration like this

```
  # Countries widget fixed to site1.example.com
  yourname.plausibleio.widget.country.site1:
    class: 'Waldhacker\Plausibleio\Dashboard\Widget\CountryMapDataWidget'
    arguments:
      $configurationService: '@Waldhacker\Plausibleio\Services\ConfigurationService'
    $options:
      siteId: site1.example.com
      timeFrame: 30d
  tags:
    - name: dashboard.widget
      identifier: 'yourname.countrymapdata.site1'
      groupNames: 'plausibleio'
      title: 'LLL:EXT:yourpackage/Resources/Private/Language/locallang.xlf:widgets.countryMapData.label'
      description: 'LLL:EXT:yourpackage/Resources/Private/Language/locallang.xlf:widgets.countryMapData.description'
      iconIdentifier: 'content-widget-chart-bar'
      height: 'medium'
      width: 'medium'

  # Countries widget fixed to site2.example.com
  yourname.plausibleio.widget.country.site2:
    class: 'Waldhacker\Plausibleio\Dashboard\Widget\CountryMapDataWidget'
    arguments:
      $configurationService: '@Waldhacker\Plausibleio\Services\ConfigurationService'
    $options:
      siteId: site2.example.com
      timeFrame: 30d
  tags:
    - name: dashboard.widget
      identifier: 'yourname.countrymapdata.site2'
      groupNames: 'plausibleio'
      title: 'LLL:EXT:yourpackage/Resources/Private/Language/locallang.xlf:widgets.countryMapData.label'
      description: 'LLL:EXT:yourpackage/Resources/Private/Language/locallang.xlf:widgets.countryMapData.description'
      iconIdentifier: 'content-widget-chart-bar'
      height: 'medium'
      width: 'medium'

```

Within `$options` you have the possibility to fix a widget to a plausible site ID and/or to a time frame.

### Migration from version 1.x to 2.x

[](#migration-from-version-1x-to-2x)

In version 1.x the options "Plausible API base url" (`baseUrl`), "Plausible API Key" (`apiKey`) and "Site" (`siteId`) were set within the extension configuration (`$GLOBALS['TYPO3_CONF_VARS']['EXTENSIONS']['plausibleio']`). However, this only allowed the configuration of one Plausible site ID within the TYPO3 installation.

These 3 configuration options have been moved to the site language configurations with version 2.x. You have to manually transfer the values you entered in the extension configuration (version 1.x) to the site language configuration, there is no automated migration script.

### Migration from version 2.x to 3.x

[](#migration-from-version-2x-to-3x)

Because of [Breaking-96812-NoFrontendTypoScriptBasedTemplateOverridesInTheBackend](https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/12.0/Breaking-96812-NoFrontendTypoScriptBasedTemplateOverridesInTheBackend.html#widget-registration-using-services-yaml) you need to remove the lines `$view: '@dashboard.views.widget'` from the widget configuration within the file `Configuration/Services.yaml`.

### Migration from `waldhacker/typo3-plausibleio` 3.x to `dreistromland/typo3-plausibleio` 3.x

[](#migration-from-waldhackertypo3-plausibleio-3x-to-dreistromlandtypo3-plausibleio-3x)

[dreistrom.land AG](https://dreistrom.land) has taken over the maintenance of the extension. In this context, the package namespace was changed from `waldhacker/typo3-plausibleio` to `dreistromland/typo3-plausibleio`. To migrate your project to the new namespace, do something like this:

```
composer rem waldhacker/typo3-plausibleio && composer req dreistromland/typo3-plausibleio:^3.0

```

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance27

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 74.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

767d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/476dcba9d4220d73ce1531ce33b9b39b37585361412443ad40ea7103b667328b?d=identicon)[dreistromland](/maintainers/dreistromland)

---

Top Contributors

[![waldhacker1](https://avatars.githubusercontent.com/u/4954582?v=4)](https://github.com/waldhacker1 "waldhacker1 (75 commits)")[![waldhacker-joerg](https://avatars.githubusercontent.com/u/92523446?v=4)](https://github.com/waldhacker-joerg "waldhacker-joerg (22 commits)")[![susannemoog](https://avatars.githubusercontent.com/u/321804?v=4)](https://github.com/susannemoog "susannemoog (4 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPsalm

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/dreistromland-typo3-plausibleio/health.svg)

```
[![Health](https://phpackages.com/badges/dreistromland-typo3-plausibleio/health.svg)](https://phpackages.com/packages/dreistromland-typo3-plausibleio)
```

###  Alternatives

[pagemachine/typo3-formlog

Form log for TYPO3

23238.6k8](/packages/pagemachine-typo3-formlog)[friendsoftypo3/content-blocks

TYPO3 CMS Content Blocks - Content Types API | Define reusable components via YAML

103519.9k53](/packages/friendsoftypo3-content-blocks)[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k15](/packages/tempest-framework)[flow-php/flow

PHP ETL - Extract Transform Load - Data processing framework

85036.3k](/packages/flow-php-flow)[eliashaeussler/typo3-form-consent

Extension for TYPO3 CMS that adds double opt-in functionality to EXT:form

1595.5k](/packages/eliashaeussler-typo3-form-consent)[eliashaeussler/typo3-warming

Warming - Warms up Frontend caches based on an XML sitemap. Cache warmup can be triggered via TYPO3 backend or using a console command. Supports multiple languages and custom crawler implementations.

22260.2k](/packages/eliashaeussler-typo3-warming)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
