GA4タグでSyntaxエラーが出た時の解決方法

※ 記事内に広告が含まれます
GA4タグでSyntaxエラーが表示されたアイキャッチ

古いサイトの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エラー解決の参考になれば幸いである。

詳しい解説は、教えてえらい人!

コメント