pushery/matomo-analytics-for-laravel
A Laravel wrapper for Matomo Analytics that lets you track page views, events, and goals server-side through a clean, configurable API. Keep tracking code out of your views and respect visitor consent.
MATOMO_QUEUE_TRIES and MATOMO_QUEUE_RETRY_UNTIL_MINUTES externalize the completeness-versus-freshness tradeoff. This is a product decision, not a config detail: a longer retry window buys more delivered events at the cost of late-arriving data in reports. PM should pick and document the target rather than inherit defaults.MATOMO_QUEUE_TRIES, MATOMO_QUEUE_RETRY_UNTIL_MINUTES, MATOMO_BATCH_STALE_AFTER_MINUTES) let ops and on-call change retry and reclaim behavior per environment. This removes "ship a config change" from the incident path and supports staging/production parity and, in multi-tenant setups, per-tenant tuning.batch.stale_after_minutes governs how aggressively abandoned claims are reclaimed; set it too low and you reprocess work (duplicate risk), too high and stuck batches strand events. Dead-letter retention governs storage growth and the replay window. Both are levers a PM can reason about in cost and SLAs.Support\TableLookup as public API) is API hygiene aimed at consumers' CI and static analysis. It indicates the maintainer is hardening the integration surface rather than adding features — a good sign for a component you intend to leave running unattended.Consider it when:
Look elsewhere when:
Release-specific cautions:
MATOMO_DEAD_LETTER_RETENTION_DAYS to a negative value no longer disables pruning; it now falls back to the shipped 30 days. Only 0 means keep indefinitely. Anyone using -1 as an "off switch" will silently start losing dead letters after 30 days. Audit env files before upgrading.For executives: This is a maintenance release that improves operability rather than expanding scope — the lowest-risk kind of change. Three settings that previously required a code change to adjust (retry attempts, retry window, stale-batch reclaim) are now deployment configuration, which shortens incident response and lets us treat staging and production identically. One behavior change affects teams that used a negative retention value to mean "keep forever"; it now means "keep 30 days," which we should communicate to whoever owns analytics infrastructure. The remaining fix removes static-analysis noise from the migrations we publish into the host application, so consuming teams stop seeing CI warnings they cannot resolve without editing a vendor file. Net: no new surfaces to learn, better knobs, one migration note.
For engineering: Pin the version — this is 0.35.x and the public API surface is still being defined, evidenced by Support\TableLookup being promoted from internal to public specifically because published migrations call it. When you upgrade: check all env files for negative MATOMO_DEAD_LETTER_RETENTION_DAYS; replace with 0 if the intent was unlimited retention. Add the three new variables to your environment matrix and to a test that asserts parsed config values, since invalid values are dropped silently rather than raising. Monitor dead-letter depth and stale-batch reclaim counts after tuning MATOMO_BATCH_STALE_AFTER_MINUTES — lowering it increases reprocessing and therefore duplicate submissions. Treat delivery as at-least-once and make deduplication explicit downstream if report accuracy depends on it.
How can I help you explore Laravel packages today?