An open API service indexing awesome lists of open source software.

https://github.com/digi4care/astro-google-tagmanager

A seamless integration for injecting Google Tag Manager snippets into Astro projects, supporting popular web analytics tools.
https://github.com/digi4care/astro-google-tagmanager

astrojs google-analytics gtm partytown

Last synced: 3 months ago
JSON representation

A seamless integration for injecting Google Tag Manager snippets into Astro projects, supporting popular web analytics tools.

Awesome Lists containing this project

README

          

# @digi4care/astro-google-tagmanager

A seamless integration for injecting Google Tag Manager snippets into Astro projects, supporting popular web analytics tools.

## Installation

To install the package, use npm or yarn:

```bash
npm install @digi4care/astro-google-tagmanager
```

or

```bash
yarn add @digi4care/astro-google-tagmanager
```

## Usage

This package provides components for easily adding Google Tag Manager (GTM) and Site Verification snippets to your Astro project.

### Example

```astro
---
import { GoogleTagmanager, GoogleTagmanagerNoscript, SiteVerification } from '@digi4care/astro-google-tagmanager';
---







```

### Partytown Example

```astro
---
import { GoogleTagmanagerPartytown, SiteVerification } from '@digi4care/astro-google-tagmanager';
---






```

### Notes

- **GoogleTagmanager Component**:

This component injects the Google Tag Manager script into your Astro project. Pass your GTM measurement ID as the `id` prop. If needed, you can specify a custom domain using the `domain` prop and a custom container path using the `container` prop.

- **GoogleTagmanagerNoscript Component**:

This component provides a no-script fallback for Google Tag Manager and **must be placed directly after the opening `` tag**. Pass your GTM measurement ID as the `id` prop. You can also specify a custom domain using the `domain` prop.

- **GoogleTagmanagerPartytown Component**:

This component enables [Partytown](https://partytown.builder.io/) for offloading GTM script execution to a web worker. Pass your GTM measurement ID as the `id` prop.

- **SiteVerification Component**:

Use this component to add site verification meta tags. Pass your verification ID as the `id` prop. You can also specify the `name` prop to use different site verification names for various vendors.

### Important

- Do **not** use `GoogleTagmanager` and `GoogleTagmanagerNoscript` together with `GoogleTagmanagerPartytown`. If you want to use Partytown, use `GoogleTagmanagerPartytown` with `SiteVerification`, but without the standard `GoogleTagmanager` or `GoogleTagmanagerNoscript` components.
- The `GoogleTagmanagerNoscript` component should always be placed directly after the opening `` tag for correct functionality.

## Props

### GoogleTagmanager

- **id** (string): Your GTM measurement ID (e.g., 'GTM-XXXXXX').
- **domain** (string): Custom domain for self-hosting the Google Tag Manager container. This is useful for:
- Server-side tracking implementations
- Complying with data privacy regulations
- First-party cookie tracking

Default is `https://www.googletagmanager.com`. When self-hosting, set this to your domain where the GTM container is hosted (e.g., `https://analytics.yourdomain.com`).
- **container** (string): Custom container path for the Google Tag Manager script. Default is `gtm.js`. When self-hosting, this would be the path to your container file.

### GoogleTagmanagerNoscript

- **id** (string): Your GTM measurement ID (e.g., 'GTM-XXXXXX').
- **domain** (string): Must match the domain used in the `GoogleTagmanager` component. Set this to your custom domain if you're self-hosting the GTM container. Default is `https://www.googletagmanager.com`.

### GoogleTagmanagerPartytown

- **id** (string): Your GTM measurement ID.

### SiteVerification

- **id** (string): Your site verification ID.
- **name** (string): The name attribute for the meta tag. Default is `google-site-verification`. This allows you to use different site verification names for various vendors.

You can use this component multiple times to verify your site with different services. For example:

- `google-site-verification` for Google.
- `yandex-verification` for Yandex.
- `bing-site-verification` for Bing.
- `pinterest-site-verification` for Pinterest.
- `facebook-domain-verification` for Facebook.
- `baidu-site-verification` for Baidu.
- `apple-site-verification` for Apple.
- `alexaVerifyID` for Alexa.
- `norton-safeweb-site-verification` for Norton Safe Web.
- `twitter-site-verification` for Twitter.
- `linkedin-site-verification` for LinkedIn.
- `adobe-site-verification` for Adobe.
- `mail.ru-verification` for Mail.ru.
- `myspace-site-verification` for MySpace.
- `tumblr-site-verification` for Tumblr.
- `shopify-site-verification` for Shopify.
- `weebly-site-verification` for Weebly.
- `webmaster-site-verification` for Generic Webmaster Tools.
- `whatsapp-site-verification` for WhatsApp Business.
- `stripe-site-verification` for Stripe.

This flexibility makes it easy to add verification for various platforms by using the same component with different `name` and `id` values.