
古いサイトのGoogleアナリティクスをUAからGA4に切り替え作業をしている時、シンタックスエラーが表示されて困った。
エラーメッセージは以下の通り。
Syntax Error in template “/var/www/〇〇” on line 8 “function gtag(){dataLayer.push(arguments);}” – Unexpected “.”, expected one of: “}” , ” “
同様の現象に困っている人に向けて、解決方法を紹介する。
GA4でSyntaxエラー
表示されたエラー
世界最高峰の技術者集団Googleが、Syntaxエラーを吐くコードを書くか?と思いつつも、自分のサイトに出ているのだから仕方がない。
表示されたエラーメッセージは以下の通り。
Syntax Error in template “/var/www/〇〇” on line 8 “function gtag(){dataLayer.push(arguments);}” – Unexpected “.”, expected one of: “}” , ” “
〇〇の部分はサイトのフォルダ構成だ。
GA4タグはhead直下に書いている。エラーメッセージは”.”が予期しない使われ方してると言っているが、”,”にしようが”}”にしようがエラーは表示される。
解決方法 {literal}で囲む
{literal}で囲む場所
実際のコードは以下の通り。
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-〇〇">
</script>
<script>
{literal}
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-〇〇');
{/literal}
</script>
id部分はサンプルなので、ご自身のサイトidを使って欲しい。
literalで囲んだ部分は定数値として扱われるのだが、なぜこれで解決するかは私では理解できなかった。(詳しい方、解説して欲しい)
GA4タグのシンタックスエラーまとめ
正直なところ、なぜ解決したかは理解していない。
Google検索でたまたま英語で同様の現象を質問している人がいたので、試してみたら上手く行っただけだ。ちなみに、広告タグでも同様のエラーが表示されていたが、literalタグで囲むことで正常に動作するようになった。
GA4のSyntaxエラー解決の参考になれば幸いである。
詳しい解説は、教えてえらい人!
コメント