AMPページをGA4対応させるため非公式な方法を試してみる

AMPページをGA4で計測

AMP化したWebページでもGA4(GoogleAnalytics4)を使ってアクセス解析するための方法を試してみることにしました。

AMPページでGA4を導入する方法を探してみると、ほぼ手段は限られるようですがUA(ユニバーサル アナリティクス)の使用期限が迫ってきていることから非公式な方法にはなりますが暫定対応することにします。

GA4での計測状況について

当記事を公開後のGA4を使ったAMPページの計測状況については、設定後約1か月経った時点でもAMPページでのアクセス数(UAとの比較)が安定していません。

とくにCDNにキャッシュされている割と流入が多いページで計測されていない傾向があるようで、もともと非公式な方法ですので情報も少なくこれ以上の対応は難しいかと思われます。

GA4でAMPサイトの計測「その後の経過」

その後当サイトではAMP化を解除することにしました

WordPressのAMPでGA4対応

当サイトではプラグインを使って投稿ページをAMP対応しています。

https://ja.wordpress.org/plugins/amp/

プラグインは「リーダー」モードに設定していますが、先日のアップデートで設定ページでの黄色の非推奨マークが無くなり青く囲われた「推奨」に変更されていました。

このAMPプラグインが生成するAMPページにGA4に対応させた計測用コードを書き出すことができればAMP HTMLで表示する投稿ページでもGA4を使ったアクセス解析が可能になります。


参考
GA4でAMPページを計測してるけど快適すぎwカグア! Creator Economy News

ネットにある情報ではプラグインを作って手動でインストールするとても便利な方法がありますが、当サイトでは別な手段でGA4を使ってみることにします。

MEMO

この記事を投稿した時点でWordPressのプラグイン用リポジトリにAMPでGA4を使えそうなプラグインがありますが、詳細が不明なため試用に至っていません。
また、Cocoonテーマでは今月に入りフォーラムでAMPページへのGA4対応について言及されているのを確認できています。

その後Cocoonはバージョン2.5.7(2023年2月)でAMPでのGA4情報取得が対応されました

一般的な手順を参考に子テーマでプラグインを編集

GA4をAMP対応させる方法として一般的によく知られている方法は、GitHubにあるJSONファイルをサーバーへアップロードして専用の計測コードをAMPページ内に挿入するという単純なものです。


参考
analytics-debugger/google-analytics-4-for-ampGitHub

具体的には、AMPプラグインで使用するsingle.php(ファイルの場所:/wp-content/plugins/amp/templates/single.php)というファイルを子テーマ内に作成したampディレクトリにコピーし、そこへGA4の計測用コード(Google非公式)を埋め込むとう方法です。

固定ページもAMP化している場合はpage.phpにも計測コードを追加することになります。

子テーマのampディレクトリ

ampディレクトリへファイルをアップロード

single.phpファイル内へのタグの挿入箇所はfooterの開始タグの手前部分に記述しています。

計測用にプラグインを作成するよりは簡単ですが、この先AMPプラグインがアップデートされたときに子テーマに作成したファイルを新しく作成しなおす(コピペ作業で可)手間がかかります。

配置するコードは次の内容のものです。

計測タグ

<amp-analytics type="googleanalytics" config="https://example.com/・・・/child-theme/amp/ga4.json" data-credentials="include">
<script type="application/json">
{
    "vars": {
                "GA4_MEASUREMENT_ID": "G-xxxxxxxxx",
                "GA4_ENDPOINT_HOSTNAME": "www.google-analytics.com",
                "DEFAULT_PAGEVIEW_ENABLED": true,    
                "GOOGLE_CONSENT_ENABLED": false,
                "WEBVITALS_TRACKING": false,
                "PERFORMANCE_TIMING_TRACKING": false,
                "SEND_DOUBLECLICK_BEACON": false
    }
}
</script>
</amp-analytics>

上の一行目に書くURLは自サイト内にアップロードしたJSONファイルを指定(赤のマーカー部分をファイルをアップロードした自サイトのURLに変更)。

"GA4_MEASUREMENT_ID": は、GA4で計測するWebサイトの測定IDに書き換えます。

当初、ほかの参考サイトにあるコードのみを記載して試してみましたが、別URLにあるJSONファイルを指定してもうまく動作しないようでした。

また、AMP関連のファイルを編集するときは相対パスではファイルを参照できないケースがあるのでhttpsから記述する絶対パスで記載したほうが良いでしょう。

AMPプラグイン(AMP Project Contributors)には、もともとアナリティクス用のJSONを編集できる項目がありますが、そこに記述できるのは{}波カッコで括る部分だけなので、今回のように開始タグと終了タグをセットで記載する必要があるトラフィックコードの挿入には使えません。

JSONファイルを適正に配置

JSONファイルをアップロードする場所はドキュメントルート直下など自由に配置可能ですが、非公式での暫定対応と考えるなら新規作成したファイルと同じ子テーマ内のampディレクトリが後で置換などの編集がやりやすいかもしれません。

静的ページでは

今回はWordPressでの対応でしたが、この方法はHTMLで記述したCMSを使わない静的ページへも簡単に応用できます。

静的ページでの対応

この場合も同じくJSONファイルをサイト内に配置し、計測するAMP HTML内のbodyの終了タグの手前に計測コードを配置することでGA4への仮対応が可能になります。

UAのAMP計測ではheadタグ内にもコードの配置が必要でしたが非公式GA4対応ではプログラムをサーバー内に置くので計測コードのみを記述するだけでアクセス解析データが取得できています。

GA4は測定データの表示が遅延する?

新しいGA4を使ったアクセス解析のデータは、今まで使ってきたUAに比べてGoogleアナリティクスのページに反映されるのに時間がかかるようです。

リアルタイムの数値を除いて当日分の正確な累積データを確認できるようになるのは翌日以降。

また、実際にAMPページに対応させてみて気づいたのですが、ページの閲覧者が検索結果からCDNを参照してページを表示させた場合に新しい計測タグが読み込まれるのはAMPキャッシュが更新されてからになりそうです。

ブラウザでURLを直打ちしてAMPページを表示させる方法ではテストが可能ですが、UAのときと違いページの判別にURLではなく記事タイトルが表示されるため、閲覧者がAMPページを表示させたのか非AMPの正規ページにアクセスしたのか判別はつきません。

検索結果によるモバイル端末からのアクセスはCDNのキャッシュが更新された頃に正確に計測できることになると推測します。

その後、キャッシュが更新されてからも計測できないケースが確認され現状で解決できていません

AMPキャッシュが更新された後にUAとの比較で数値に大きな違いがなくなっていれば非公式な方法ではありますが暫定対応でのGA4アクセス解析が確認できたことになります。

AMPページの維持について

ユニバーサルアナリティクスの廃止が迫っていてもGA4がAMPを正式にサポートする様子は見られないことからサイトのAMP化を解除を検討する方も多いと思われます。

しかし、日々大量のアクセスがある企業サイトなら影響はわずかでも、使えるリソースが限られる個人サイトが同じスタンスでサイトの構成を大幅に変更するには必要な時間も含め十分な検討が必要になることでしょう。

場合によってはテーマの変更や高スペックなサーバーへの移転なども視野に入れることにもなりそうです。

いずれにしても、UAの使用期限という時間的な制約が係ってくるところが問題でもあるため、今回のように非公式(Google非公認)という手段ではありますがGA4を一時的に対応させることができれば、サイト構成の大幅な変更や改修などを余裕をもって検討できるのではないでしょうか。

その後のGA4の計測

GA4でAMPサイトの計測「その後の経過」

おすすめ記事

プラグインのAMPでFontAwesome プラグインを使ったAMPページでFontAwesomeを表示させる【WordPressでアイコンフォント】