Google Tag Manager - v1.0.0

Facade

ArtisanPackUI\GoogleTagManager\Facades\GoogleTagManager, aliased as GoogleTagManager in the app config, resolves the container binding google-tag-manager — an instance of ArtisanPackUI\GoogleTagManager\GoogleTagManager.

Access patterns

use ArtisanPackUI\GoogleTagManager\Facades\GoogleTagManager;

// Via facade
$gtm = GoogleTagManager::getFacadeRoot();

// Via helper
$gtm = googleTagManager();

// Via container
$gtm = app( 'google-tag-manager' );

All three return the same singleton.

GoogleTagManager class

snippet(): SnippetRenderer

Returns the snippet renderer. Always available — the snippet installer works without the base package.

googleTagManager()->snippet()->render();

client(): ?TagManagerClient

Returns the Tag Manager API client, or null when the base package isn't installed. Callers should feature-detect via hasApi().

if ( googleTagManager()->hasApi() ) {
    $accounts = googleTagManager()->client()->listAccounts( $connection );
}

hasApi(): bool

Whether the server-side API surface is usable — true when the base package is installed and a TagManagerClient is bound.

Callers should prefer this over a null-check on client() because it re-runs BaseInstalled::check() on every call — that means it responds to BaseInstalled::setForTesting() flips in tests without cache-busting, and it stays honest when a downstream service provider fake-detaches the base at runtime.