public class MatomoAnalyticsProvider

  1. Object
  2. AbstractAnalyticsProvider
  3. MatomoAnalyticsProvider

ImplementsAnalyticsProvider

A privacy-first provider targeting Matomo (formerly Piwik) through its HTTP Tracking API. Matomo can be self-hosted and offers IP anonymisation and consent-aware tracking, which makes it a natural fit for GDPR-sensitive deployments. The same SPI shape applies to comparable privacy-focused backends (PostHog, Plausible), so swapping is trivial.

Analytics.addProvider(new MatomoAnalyticsProvider("https://matomo.example.com", 1));

Screen views map to Matomo actions; events use Matomo’s e_c/e_a/e_n event parameters; crashes are reported as an event in the crash category. The pseudonymous client id is truncated to Matomo’s 16-character visitor id.

Constructors

public MatomoAnalyticsProvider(String matomoBaseUrl, int idSite)Creates a Matomo provider.

Methods

public String getName()A short, stable, human readable name for this provider (used in logs and diagnostics).
public void setUserId(String id)Associates subsequent activity with a user identifier.
public void trackScreen(String name, String referrer)Records a screen / page view.
public void trackEvent(AnalyticsEvent event)Records a named event.
public void reportCrash(AnalyticsCrashReport report)Reports a crash or handled exception.
public boolean supports(AnalyticsCapability capability)Indicates whether the provider supports a given capability.

Inherited methods

Constructor details

MatomoAnalyticsProvider

public MatomoAnalyticsProvider(String matomoBaseUrl, int idSite)
Creates a Matomo provider.

Parameters

matomoBaseUrl String
the Matomo base URL or full matomo.php tracker URL
idSite int
the Matomo site id

Method details

getName

public String getName()
A short, stable, human readable name for this provider (used in logs and diagnostics).

Returns

the provider name

setUserId

public void setUserId(String id)
Associates subsequent activity with a user identifier.

Parameters

id String
the user id, or null to clear

trackScreen

public void trackScreen(String name, String referrer)
Records a screen / page view.

Parameters

name String
the screen name
referrer String
the previous screen name, may be null

trackEvent

public void trackEvent(AnalyticsEvent event)
Records a named event.

Parameters

event AnalyticsEvent
the event

reportCrash

public void reportCrash(AnalyticsCrashReport report)
Reports a crash or handled exception.

Parameters

report AnalyticsCrashReport
the crash report

supports

public boolean supports(AnalyticsCapability capability)
Indicates whether the provider supports a given capability.

Parameters

capability AnalyticsCapability
the capability to query

Returns

true if supported