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 Tag Manager Bundle Laravel Package

xynnn/google-tag-manager-bundle

A Symfony bundle that integrates Google Tag Manager with configurable container IDs, Twig helpers, and environment-aware tracking. It simplifies adding GTM snippets, managing data layer variables, and keeping analytics setup clean across Symfony applications.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Tag management ownership: engineering-gated vs marketing self-serve. GTM's core product value is letting marketing ship tags without a deploy. This bundle only solves the plumbing half (rendering the container snippet and seeding a dataLayer from Symfony config/Twig). The real product decision it informs is whether you standardize on a tag manager at all, and who owns the tag layer afterward.
  • Build vs. buy for analytics instrumentation. The functional surface here is small — a Twig/head injection, a config tree, and a dataLayer helper. That makes it a useful benchmark for a "build" decision: if the bundle is ~a few hundred lines, the honest comparison is "one sprint of engineering" vs. "one more third-party dependency with one maintainer."
  • Data layer contract as a product spec. Adopting a GTM integration forces a conversation about event naming and payload shape (page views, product impressions, add-to-cart, checkout steps, signup, search). That contract is a product artifact — it should be versioned and owned by PM/analytics, not left to whoever writes the Twig.
  • Consent and privacy roadmap. GTM is the natural chokepoint for consent mode / tag gating (GDPR, CCPA, app-store and ad-network requirements). Deciding where consent is enforced — CMP, GTM triggers, or server-side — is a roadmap-level decision this integration sits inside of.
  • Legacy platform strategy. This is a Symfony 2 bundle. Its existence in your dependency graph is a signal about how long you intend to keep an EOL framework alive for marketing instrumentation. Adopting it is a de facto vote to defer a migration.
  • Dependency governance and license posture. LGPL-3.0 is a copyleft-family license; for a PHP library it's usually workable (dynamic use, no static linking), but it needs a legal check before it becomes a transitive dependency of a distributed product. The bundle has very low adoption (27 stars, 0 dependents), so vendor-risk scoring and SBOM hygiene should treat it as "unmaintained until proven otherwise."

When to Consider This Package

Reasonable fit:

  • You are running a Symfony 2.x/3.x application in maintenance mode, already committed to GTM, and want the container snippet plus a config-driven dataLayer without writing a custom Twig extension.
  • You need a fast, disposable proof of concept to validate an event schema before investing in a first-party implementation.
  • Your team is small, the app is internal or low-traffic, and a composer require is cheaper than a design discussion.

Look elsewhere — and be explicit about why:

  • Laravel projects. Despite the framing, this is a Symfony bundle: it ships a Bundle class and Symfony DI/config conventions, not a Laravel service provider, facade, or publishable config. There is no drop-in path. In Laravel, a Blade partial plus a config file is roughly the same amount of work and has no framework coupling.
  • Symfony 5/6/7. Symfony 2 is end-of-life; bundle registration, event dispatcher, and autowiring conventions have all moved on. Assume incompatibility and verify before spending evaluation time.
  • Anything needing consent management. GTM does not implement consent; use a dedicated CMP and treat GTM as a downstream consumer.
  • Server-side tagging or first-party measurement. That's a server-side GTM container and a data pipeline, not a view-layer bundle.
  • SPA/headless front ends. Tag management belongs in the client app; a PHP bundle is the wrong layer.
  • Strict CSP, SSR-only, or privacy-sensitive surfaces where you need tight control over injected scripts and third-party origins.
  • Anywhere a single-maintainer, low-adoption, copyleft dependency requires a procurement or security review that costs more than writing the integration yourself.

Before adopting, verify: whether the March 2025 release represents real maintenance or a metadata-only tag, the supported PHP versions, whether tests exist, and whether issues are being triaged. A recent release date on an EOL-framework package is a weak maintenance signal.

How to Pitch It (Stakeholders)

For executives (30 seconds): This is a small Symfony 2 helper that drops the Google Tag Manager snippet into a page and exposes a dataLayer. It is not a strategic dependency and not a Laravel package. It has one maintainer, 27 stars, zero known dependents, and an LGPL-3.0 license — so the downside of trying it is bounded, but so is the upside. My recommendation is not to adopt it as a platform component: the capability it provides is small enough to own in-house in a few days, which removes the maintenance, licensing, and EOL-framework risk entirely. If we already have a Symfony 2 app in maintenance and need tags live this quarter, it's an acceptable stopgap with a documented exit.

For engineering: Treat it as reference material, not infrastructure. The value is the pattern — config-driven container ID, environment switching, a typed dataLayer helper — not the code. If we proceed, pin the version, confirm PHP constraints and test coverage, add it to the SBOM with a "no active maintainer" flag, and plan to replace it with a ~100-line first-party Twig extension or Blade partial at the next touch. If the target is Laravel or Symfony 6+, we should write that ourselves rather than port this.

What I'd want from the team before committing: the event schema we intend to emit, where consent is enforced, and confirmation that GTM is still the right tool versus a first-party analytics pipeline. Those are the decisions that actually carry cost; the bundle is the cheap part.

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.
takashato/laravel-vietqr
aitor24/laralang
kraenzle-ritter/entity-relations
dindigital/din-image
pomirleanu/image-colors
sawmainek/laravel-api-generator
delatbabel/jsonresponses
mouhamedfd/permissions-generator
eduplus/qr
laravel2580/idehelpers
delatbabel/viewpages
anavel/gettext
muhamadrezaar/highcharts
delatbabel/keylists
frankkessler/salesforce-laravel-oauth2-rest
anavel/foundation
wdmtech/enviricons
eii/laravel-captcha
muka/shape-reader
tdt/json