PDFへのリンククリックが、GA4のfile_downloadイベントに記録できない原因とその対策

投稿日:

GA4で、ホームページ上に掲載しているPDFなどのドキュメントの閲覧数(クリック数)を計測したい。

そのために色々ネット上で調べ、GA4でカスタムイベントを作成したり、GTM(Google Tag Manager)でタグやトリガーを作成したり・・・と色々試したが、結果として以下の方法がシンプルに実現できることが分かりました。

株式会社WWGさんの「Googleアナリティクス4(GA4)でレポートを作成してみた【PDFダウンロード数編】」(公開日:2023.1.2)です。

前提として、GA4の測定IDはGTMで設定し、ホームページにはGTMのスニペットを埋め込んでいます。GTMではGA4の測定ID以外は設定していません。

これでいくつかのサイトで集計を見ることができたのですが、あるサイトではpdfをクリックしても、GA4の “file_download” に記録されていません。

GTMのプレビューでテストすると、 “file_download” に記録されているサイトでは “Link Click” x 2と “File Dowload” が発生していますが、記録されないサイトでは “Link Click” 1つだけしか発生していません。

その違いがどこにあるのか比較、確認したところ、「rel=”noreferrer”」の有り/無しで違いが生じていたようです。rel 属性は target 属性とセットで使用することが多いので、その組み合わせなどによって “file_download” への記録にどのような違いが生じるのか、テストしてみました。その結果が以下です。

rel=”noreferrer”rel=”noopener”rel=”noreferrer noopener”rel属性無し
target=”_blank” 有り発火有り発火有り発火有り発火有り
target=”_blank” 無し発火有り発火無し発火有り発火無し
GTMのプレビューにて、target / rel / target 属性と、”File Dowload” 発生(発火)の有無の相関関係表

a要素に “target=”_blank” が有る場合は、rel属性の有る/無しに関わらず “file_download” イベントが発生しています。

しかしa要素に “target=”_blank” が無い場合、かつ、rel=”noopener” または rel 属性が無い場合は、 “file_download” イベントが発生していません。

a要素に “target=”_blank” が無い状態で “file_download” イベントを発生させたい場合は、rel=”noreferrer” を設定する必要があるようです。

なぜそうなるのかは、まだ私にはよく分かりません。

またこれ( “target=”_blank” が無い状態で rel=”noreferrer” を設定する)が最良の方法とは思えないのですが、とりあえず現象の報告と検証結果としてこの情報を公開したいと思います。

なお上記は静的HTMLで作成した場合で、WordPressで作成したサイトでは、”target=”_blank” がなく、かつ、rel=”noreferrer” が無い状態でも “file_download” イベントは発生するようです。

YUKAWA