Download the PHP package schenke-io/laravel-ga4-marketing without Composer

On this page you can find all versions of the php package schenke-io/laravel-ga4-marketing. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-ga4-marketing

Version Downloads Tests License PHP

Laravel GA4 Marketing

Coverage PHPStan Level

This package provides a simple way to integrate Google Analytics 4 (GA4) event tracking into your Laravel application. It includes middleware for automatic page view tracking and a service to send custom events directly to GA4.

Features

Installation

You can install the package via composer:

You should publish the config file with:

Client-Side Setup

To enable automatic page view tracking and declarative event tracking (clicks, visibility), add the following Blade directive to your main layout file (e.g., resources/views/layouts/app.blade.php), typically before the closing </body> tag:

Configuration

Set up your Google Analytics 4 credentials in your .env file:

You can find these values in your Google Analytics Admin panel under Data Streams > [Your Stream] > Measurement Protocol API secrets.

Advanced Configuration

The config/ga4-marketing.php file allows you to customize several aspects of the package:

Usage

This package supports three primary integration modes to suit different application architectures.

1. Standard Mode (Quick Setup)

Best for most applications. Simply add the @Ga4MarketingScript directive to your main layout file, typically before the closing </body> tag:

This directive:

2. Advanced Mode (Vite & Bundling)

If you prefer to bundle the tracking logic with your application for better performance, you can import the tracker from the package resources and use the configuration directive.

JavaScript Setup: Import the tracker in your resources/js/app.js:

Blade Setup: Add the @Ga4MarketingConfig directive in your layout. This provides the necessary configuration (route, CSRF token) to the bundled script:

The @Ga4MarketingConfig directive is smart: it automatically disables the client-side page_view event if the page view was already tracked on the server (e.g., via middleware), preventing double counting.

3. Server-Side Only Mode

For tracking without any client-side scripts, you can rely entirely on the track-page-view middleware and the AnalyticsService.

Automatic Page View Tracking

When using @Ga4MarketingScript or @Ga4MarketingConfig, a page_view event is automatically sent to GA4 on window load, unless:

  1. It was already tracked on the server during the same request.
  2. It is explicitly disabled via the <body> tag.

Disabling Automatic Page Views

If you want to disable automatic tracking for a specific page while still keeping other tracking features active, add data-ga4-event="no-pageview" (or the shorthand data-ga4="no-pageview") to the <body> tag:

Visitor & User Identification

The package uses a visitor cookie (configurable) to maintain a persistent client ID for anonymous users. This cookie is set to last 100 days by default and is automatically extended on each request.

If a user is authenticated and client_from_user_id is enabled in the config, the package will:

  1. Generate a hashed version of the User ID.
  2. Use this hash as the GA4 client_id.
  3. Overwrite the visitor cookie with this hashed ID.

This ensures that the same user is tracked consistently across different devices if they log in, while maintaining privacy by hashing the actual database ID.

Google Ads Attribution

To capture Google Ad IDs (gclid, wbraid, gbraid) from the URL and store them in the server-side cache, add the capture-ad-parameters middleware to your routes. This is recommended to be used alongside page view tracking:

The captured IDs are automatically included in all subsequent events sent via AnalyticsService.

Server-side Tracking Middlewares

The package provides optional middlewares for server-side tracking.

Page View Tracking

To track page views on the server-side, add the track-page-view middleware. This is useful when you want to ensure page views are tracked even if JavaScript is disabled or blocked.

Outbound Link Tracking

To track outbound links that go through a redirect in your application, use the track-outbound-link middleware. It automatically sends a click event with outbound: true when a RedirectResponse to an external domain is detected.

Sending Custom Events

You can also use the AnalyticsService to send custom events manually:

Recommended Events

The AnalyticsService provides helper methods for standard GA4 events using camelCase naming:

Bot Filtering

The package automatically filters out common bots to keep your analytics clean. You can extend the built-in bot blacklist in config/ga4-marketing.php:

Livewire Event Bridging

You can automatically bridge Livewire events to GA4 by dispatching a ga4-event from your Livewire component. The package intercepts this and dispatches a browser event (ga4-event-triggered), which is then sent to GA4 by the client-side tracker.

JavaScript Event Bridging

To send events from JavaScript, you can use the window.ga4Event helper:

Visibility Tracking

Declarative Tracking

The easiest way to track visibility is by adding data-ga4-event="scroll" (or data-ga4="scroll") to any element. You can specify the area name using data-ga4-area:

This sends a scroll event with the visible_area parameter when the element becomes visible in the viewport.

Click Tracking

You can automatically track clicks on any element using declarative data attributes.

Outbound Link Tracking

To track clicks to external domains, use data-ga4-event="outbound" (or data-ga4="outbound") on an <a> tag:

This automatically sets the event name to click, sets outbound: true, and extracts link_url and link_domain.

Custom Click Events

Use data-ga4-event (or data-ga4) for the event name and data-ga4-params for optional parameters (as a JSON string):

Automatic Parameter Extraction

When you use tracking on an <a> tag, the package automatically captures:

Parameter Source Description
link_url href The destination URL of the link.
link_text innerText The visible text inside the link.
link_id id The ID attribute of the element.
link_classes className The CSS classes applied to the link.
link_domain href The hostname (for outbound links).

User Engagement Tracking

The tracker automatically tracks the time a user spends on a page and sends a user_engagement event (with engagement_time_msec) when the user navigates away or closes the tab. This requires @Ga4MarketingScript to be present.

User ID Tracking

To track a specific user across sessions, you can set the User ID in the AnalyticsService:

Once set, the user_id will be included in all subsequent events sent during the current request.

Event Validation (Debug Mode)

You can enable debug mode on the AnalyticsService to send events to the GA4 validation endpoint instead of the live collection endpoint. This is useful for testing your integration without affecting live data:

When setDebugMode(true) is called:

  1. The event is sent to the GA4 debug validation endpoint.
  2. The debug_mode: 1 parameter is automatically added to all events.
  3. The sendEvent method returns the Response object containing GA4 validation messages.

Connection Verification

You can verify your GA4 configuration using the built-in console command. This command sends a test event to the Google Analytics debug validation server and reports any issues:


Markdown file generated by schenke-io/packaging-tools


All versions of laravel-ga4-marketing with dependencies

PHP Build Version
Package Version
Requires php Version ^8.3
illuminate/contracts Version ^12.0 | ^13.0
illuminate/http Version ^12.0 | ^13.0
illuminate/routing Version ^12.0 | ^13.0
illuminate/support Version ^12.0 | ^13.0
illuminate/validation Version ^12.0 | ^13.0
livewire/livewire Version ^4.0
spatie/laravel-package-tools Version ^1.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package schenke-io/laravel-ga4-marketing contains the following files

Loading the files please wait ...