Section 10
Googleアナリティクスを設置
Astro Sarkaraのレイアウト内にGoogleアナリティクスを設置する場合、Section 5『レイアウトに要素を注入する』で説明した機能、スロットを活用します。
Googleアナリティクスは<head>
要素内の先頭に位置することが推奨されています。Astro Sarkaraレイアウトではtop-of-head
のスロットで、<head>
要素の最上位にコードを注入することが可能です。
---
import { SarkaraLayout } from "@cieloazul310/astro-sarkara";
import { menu, siteMetadata } from "../data";
---
<SarkaraLayout siteMetadata={siteMetadata} menu={menu}>
<Fragment slot="top-of-head">
<!-- Google tag (gtag.js) -->
<script
async
src="https://www.googletagmanager.com/gtag/js?id={your_analytics_id}"
></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
window.dataLayer.push(arguments);
}
gtag("js", new Date());
gtag("config", "{your_analytics_id}");
</script>
<Fragment/>
</SarkaraLayout>
Partytownを使う
Partytownはサードパーティースクリプトの処理をサービスワーカーに任せることで読み込み速度を爆速にしてくれるライブラリです。AstroにはPartytownを有効にするインテグレーションが提供されています。これをGoogleアナリティクスと組み合わせて使用することができます。
Partytown
partytown.builder.io
@astrojs/partytown
docs.astro.build
npm install @astrojs/partytown
// astro.config.ts
import { defineConfig } from "astro/config";
import partytown from "@astrojs/partytown";
export default defineConfig({
integrations: [partytown()],
});
---
import { SarkaraLayout } from "@cieloazul310/astro-sarkara";
import { menu, siteMetadata } from "../data";
---
<SarkaraLayout siteMetadata={siteMetadata} menu={menu}>
<Fragment slot="top-of-head">
<!-- Google tag (gtag.js) -->
<script
type="text/partytown"
src="https://www.googletagmanager.com/gtag/js?id={your_analytics_id}"></script>
<script type="text/partytown">
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag("js", new Date());
gtag("config", "{your_analytics_id}");
</script>
<Fragment/>
</SarkaraLayout>
Add google analytics to Astro with Partytown
www.kevinzunigacuellar.com