public class MatomoAnalyticsProvider
- Object
- AbstractAnalyticsProvider
- 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
matomoBaseUrlString- the Matomo base URL or full
matomo.phptracker URL idSiteint- 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
idString- the user id, or null to clear
trackScreen
public void trackScreen(String name, String referrer)Records a screen / page view.
Parameters
nameString- the screen name
referrerString- the previous screen name, may be null
trackEvent
public void trackEvent(AnalyticsEvent event)Records a named event.
Parameters
eventAnalyticsEvent- the event
reportCrash
public void reportCrash(AnalyticsCrashReport report)Reports a crash or handled exception.
Parameters
reportAnalyticsCrashReport- the crash report
supports
public boolean supports(AnalyticsCapability capability)Indicates whether the provider supports a given capability.
Parameters
capabilityAnalyticsCapability- the capability to query
Returns
true if supported