Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Google Analytics Server Side Tracking Bundle Laravel Package

setono/google-analytics-server-side-tracking-bundle

A Symfony bundle for sending Google Analytics events server-side via the Measurement Protocol, helping you capture purchases, conversions, and interactions from your backend even when client-side JavaScript tracking is blocked or unavailable.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Measurement/analytics roadmap: build vs. buy vs. adopt. Deciding whether server-side event delivery becomes an in-house capability, a vendor contract (GTM server-side container, Segment, RudderStack, Matomo), or an open-source dependency. This package only meaningfully informs the third option — and mostly as evidence that the thin-wrapper approach is cheap but unowned.
  • Attribution fidelity investment. Server-side tracking is the lever for recovering conversions lost to ad blockers, ITP/ETP cookie expiry, and consent-gated client scripts. If analytics shows a persistent gap between checkout orders and tracked purchase events, that gap sizes the business case.
  • Backend-only conversion events. Renewals, refunds, offline/assisted sales, subscription lifecycle events, and webhook-driven states have no browser to fire from. A server-side Measurement Protocol path is the only way to attribute them.
  • Consent architecture. Moving the transport of analytics server-side decouples "did we collect the event" from "did the browser allow the script." That's a privacy-engineering and legal-review decision, not a marketing one.
  • Buy vs. fork triage. Still a low-adoption, pre-1.0 (v0.3.9), single-maintainer Symfony bundle. The v0.3.9 release does not change the recommendation; it slightly changes the tone. A release whose entire content is two user-agent filter PRs is what maintenance at this project looks like: incremental hygiene work by the vendor's own team, not investment in the protocol, the schema, or the operational story. The decision remains "budget a sprint to own ~300 lines of payload construction" rather than "add to composer.json."
  • Bot/spam filtering as a data-quality requirement. The one substantive signal in this release is that UA filtering is now configurable (v0.3.9, PRs #24 and #25). That is table stakes for any server-side hit emitter — server-side requests have no browser to signal "real user," so unfiltered traffic inflates sessions and can pollute conversion counts. Treat it as a checklist item for an owned implementation, not as a reason to adopt.

When to Consider This Package

Consider it when all of the following hold:

  • You need a concrete, readable reference for what a server-side hit payload looks like — the bundle's real value is as documentation-by-code, not as a runtime dependency.
  • Your stack is Symfony, not Laravel. This is a Symfony bundle; on Laravel you'd be porting the service definitions and config into a service provider regardless, at which point you're already forking.
  • You are prepared to vendor/fork it and own maintenance indefinitely. The v0.3.9 release is a mild positive signal — the project isn't abandoned — but it is still pre-1.0 with no BC promise, no dependents, and a maintenance cadence measured in a couple of filter PRs per cycle.

Look elsewhere — or write it yourself — when:

  • You are on GA4. A pre-1.0 bundle whose recent releases are UA filters most plausibly targets the Universal Analytics Measurement Protocol (/collect), which stopped processing hits in July 2023. GA4 requires the mp/collect endpoint, a per-stream api_secret, and a materially different payload/event schema. Nothing in v0.3.9 addresses this. Verify before anything else; if confirmed, the package is functionally a historical artifact — and the new UA filter is a filter on a protocol nobody processes.
  • You need consent gating, PII scrubbing, retry/backoff, or queueing. None of that is implied by a low-adoption bundle with no dependents. Expect to build it. Note the v0.3.9 filtering is request-time string matching, not a policy or consent layer.
  • You want a supported vendor SLA. A GTM server-side container or a CDP costs money but replaces a permanently-staffed internal fork.
  • You need multi-destination fan-out (GA4 + Meta CAPI + TikTok + internal warehouse). One bundle for one destination is the wrong abstraction; you want an event bus plus thin per-destination adapters.
  • Your volume is high enough that unbuffered synchronous HTTP calls to Google from the request cycle become a latency and reliability problem. You need a queue and a dead-letter path from day one.

How to Pitch It (Stakeholders)

To executives: Server-side tracking is a defensible investment because it makes our conversion data survive ad blockers, browser cookie limits, and consent banners — and it's the only way to attribute revenue we currently can't see, like renewals and refunds. This particular package is not the investment. It's a pre-1.0, single-maintainer Symfony bundle with no downstream users, built against an analytics protocol Google has since retired. The most recent release is genuinely small in scope: two pull requests adding a configurable user-agent filter. That's a reasonable maintenance change and a useful reminder that server-side traffic needs bot filtering — but it isn't evidence the project will get GA4 support, queueing, consent handling, or an SLA. The recommendation is unchanged: spend roughly one engineering sprint writing a small, owned event-delivery service modeled on it — including that UA filter — or buy a managed server-side container, rather than take on an unmaintained dependency in our revenue reporting path.

To engineering: Low technical risk, near-zero adoption risk. The dependency surface is tiny (an HTTP client and a payload builder), the protocol is documented, and the license is MIT. Forking costs a sprint and buys us control over retries, queueing, consent checks, and PII handling — all things this bundle doesn't give us. v0.3.9 adds empty and configurable user-agent filtering (PRs #24, #25); it's a couple of hours of our own work and we should lift the idea, not the code. Do not add it to composer.json; read it, then replace it. First task is still confirming whether it emits UA or GA4 payloads, since that determines whether it's a template or a tombstone — and the release history gives no indication GA4 is on the roadmap.

Recommendation: Reject as a dependency, adopt as a design reference (now including its user-agent filtering approach), and fund an owned server-side event pipeline as a Q+1 roadmap item with analytics-gap size as the success metric. Re-check the upstream repo at the next release: a GA4 endpoint change would be the only development that meaningfully reopens the build-vs-adopt question.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle