@digi4care/astro-google-tagmanager

中文文档
2.1.0发布于 2026/10/21MITES Module零依赖近 30 天下载 1.2万

Astro 6 and 7 components for injecting Google Tag Manager snippets with ViewTransitions support

原始使用文档
文档目录14 节
  1. Installation
  2. Usage
  3. Basic Example (with <ClientRouter /> )
  4. Self-hosted / Server-side GTM
  5. Partytown (Web Worker)
  6. View Transitions / ClientRouter
  7. Configuring GTM for virtual pageviews
  8. Props
  9. GoogleTagmanager
  10. GoogleTagmanagerNoscript
  11. GoogleTagmanagerPartytown
  12. SiteVerification
  13. Important
  14. License

@digi4care/astro-google-tagmanager

Astro components for injecting Google Tag Manager (GTM) snippets with built-in View Transitions / ClientRouter support. Compatible with Astro 6 and 7.

Installation

npm install @digi4care/astro-google-tagmanager

Usage

Basic Example (with <ClientRouter />)

---
import { ClientRouter } from 'astro:transitions';
import {
  GoogleTagmanager,
  GoogleTagmanagerNoscript,
  SiteVerification
} from '@digi4care/astro-google-tagmanager';
---
<!doctype html>
<html lang="en" dir="ltr">
  <head>
    <ClientRouter />
    <SiteVerification id="SITE_VERIFICATION_ID" />
    <GoogleTagmanager id="GTM-XXXXXX" />
  </head>

  <body>
    <GoogleTagmanagerNoscript id="GTM-XXXXXX" />
    <slot />
  </body>
</html>

Self-hosted / Server-side GTM

<GoogleTagmanager
  id="GTM-XXXXXX"
  domain="https://analytics.yourdomain.com"
  container="custom-container.js"
/>

Partytown (Web Worker)

---
import {
  GoogleTagmanagerPartytown,
  SiteVerification
} from '@digi4care/astro-google-tagmanager';
---
<!doctype html>
<html lang="en" dir="ltr">
  <head>
    <SiteVerification id="SITE_VERIFICATION_ID" />
    <GoogleTagmanagerPartytown id="GTM-XXXXXX" />
  </head>

  <body>
    <slot />
  </body>
</html>

Note: Partytown requires installing @astrojs/partytown in your project:

npx astro add partytown

The GoogleTagmanagerPartytown component injects the GTM script with type="text/partytown", but the Partytown library itself must be set up separately. Do not combine GoogleTagmanagerPartytown with GoogleTagmanager or GoogleTagmanagerNoscript.

View Transitions / ClientRouter

The GoogleTagmanager component automatically handles Astro's client-side navigation:

  • On initial page load, the standard GTM snippet fires a gtm.start event.
  • On each client-side navigation (via <ClientRouter />), an astro:after-swap listener pushes a virtual pageview to the dataLayer:
    {
      event: 'virtualPageview',
      'gtm.start': new Date().getTime(),
      virtualPagePath: window.location.pathname,
      virtualPageTitle: document.title
    }
    
  • A guard prevents duplicate listener registration when the inline script re-executes during transitions.

Configuring GTM for virtual pageviews

In your GTM container, create a trigger for the virtualPageview event and use it to fire your GA4 pageview tag or any other tracking tags. This ensures analytics fire on both full page loads and client-side navigations.

Props

GoogleTagmanager

PropTypeDefaultDescription
idstring—GTM container ID (e.g. GTM-XXXXXX). Required.
domainstringhttps://www.googletagmanager.comCustom domain for server-side GTM.
containerstringgtm.jsCustom container script path.

GoogleTagmanagerNoscript

PropTypeDefaultDescription
idstring—GTM container ID. Required.
domainstringhttps://www.googletagmanager.comMust match the domain used in GoogleTagmanager.

Must be placed directly after the opening <body> tag.

GoogleTagmanagerPartytown

PropTypeDefaultDescription
idstring—GTM container ID. Required.

SiteVerification

PropTypeDefaultDescription
idstring—Verification ID. Required.
namestringgoogle-site-verificationMeta tag name attribute.

Supported verification services: Google, Bing, Yandex, Pinterest, Facebook, Baidu, Apple, LinkedIn, and more. Use the same component multiple times with different name and id values.

Important

  • Do not use GoogleTagmanager and GoogleTagmanagerNoscript together with GoogleTagmanagerPartytown. Choose one approach.
  • The GoogleTagmanagerNoscript component should always be placed directly after the opening <body> tag.

License

MIT

版本与发布记录

@digi4care/astro-google-tagmanager 共发布 12 个版本,首次发布于 2024/07/05;过去 12 个月发布了 2 个版本。

版本发布日期距今
2.1.0latest2026/10/2121 天前
2.0.0next2026/05/155 个月前
1.6.1-beta.1beta2025/05/091.5 年前
1.6.1-beta.02025/05/091.5 年前
1.6.02025/05/091.5 年前
1.5.02025/05/091.5 年前

关于 @digi4care/astro-google-tagmanager 的常见问题

@digi4care/astro-google-tagmanager 是什么?

Astro 6 and 7 components for injecting Google Tag Manager snippets with ViewTransitions support

如何安装 @digi4care/astro-google-tagmanager?

在项目目录运行 npm install @digi4care/astro-google-tagmanager,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:astro(^6.0.0 || ^7.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@digi4care/astro-google-tagmanager 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/digi4care__astro-google-tagmanager 是否存在。

@digi4care/astro-google-tagmanager 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@digi4care/astro-google-tagmanager 可以商用吗?

@digi4care/astro-google-tagmanager 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@digi4care/astro-google-tagmanager 的下载量有多少?

根据 npm 官方下载统计,@digi4care/astro-google-tagmanager 在 2026/10/12 – 2026/11/10 这 30 天内被下载 12,118 次,日均约 404 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@digi4care/astro-google-tagmanager 还在维护吗?

最新版本 2.1.0 发布于 2026/10/21(21 天前);至今共发布 12 个版本,其中过去 12 个月发布了 2 个;首次发布于 2024/07/05。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。