NuxtJS + AMPモジュールでGoogle Analyticsのタグを貼る際、ちょっと手コヅったのでメモ。
GitHub - nuxt-community/amp-module: AMP Module for Nuxt
このページを参考に
AMP のグローバル サイトタグ | グローバル サイトタグ(gtag.js) | Google Developers
普通にAMPのページテンプレートにタグを貼ると下記のようにエスケープされてしまいます。
<amp-analytics type="gtag" data-credentials="include"><script type="application/json"> { "vars": { "gtag_id": "UA-*******-1", "config": { "UA-********-1": { "groups": "default" } } } } </script></amp-analytics>
そのため、JSON部分をcomputedなどに書いて、
computed: { gaJson(): string { return `{ "vars": { "gtag_id": "${GOOGLE_ANALYTICS_TRACKING_ID}", "config": { "${GOOGLE_ANALYTICS_TRACKING_ID}": { "groups": "default" } } } }` },
v-htmlを使って表示すればエスケープされずに出すことができます。
<amp-analytics type="gtag" data-credentials="include"> <script type="application/json" v-html="gaJson"></script> </amp-analytics>
AMPモジュールはページ内で使ったamp-系のタグに応じて必要なタグを自動で読み込んでくれるので便利です。
タグの動作確認はGoogle謹製のChrome拡張、Tag Assistantが便利です。