こんにちは、エクスチュアの岩川です。
今回は、今までも何度か質問が来ているリファラ情報についてお話ししていこうと思います。
GA4でリファラを確認した時に
https://AAA.com/hogehoge/
のようなリファラを確認したい(過去は取れていたはず)のに
https://AAA.com
までしか表示されなくて困っている…
そのような事象でお困りではないでしょうか?
今回は何が起きているのか、なぜ取得されなくなったのか。
過去との違いは何か、という話をしようと思います。
◆そもそもリファラとは
リファラとはHTTPリファラとも呼ばれ、どんなページから来たのか情報を持っているHTTPヘッダの一つです。
Google検索から流入してきた場合、リファラは「https://www.google.com/ 」という情報を持っているわけです。
◆なぜ取得できなくなった?
以前はデフォルトの状態でURLのパス部分まで取得されていたのですが、数年前からセキュリティの観点より各ブラウザのデフォルト設定がドメイン(オリジン)のみの取得になりました。
※設定の内容については後述いたします。
そのため、何もやっていないのにデータが取れなくなった!という現象が実際に起きてしまっています。
◆パラメータdrについて
GA4ではレポートで各データを取得するためのパラメータが存在します。
その中の一つのパラメータであり、リファラを取得しているパラメータ名がdrと言われます。
そのため、ブラウザ上でリファラが取得されるような設定にすることでGA4におけるリファラ情報も自動的に詳細情報まで取得されるようになります。
◆対策
ではどのようにすることで取得できるようになるのでしょうか。
実は意外と単純で、metaタグの一文を追加することによりリファラの定義を変更することが可能です。
以下にタグの例を記述します。
<meta name="referrer" content="no-referrer-when-downgrade"/>
実はmetaタグでリファラの定義を記述していない場合は
<meta name="referrer" content="strict-origin-when-cross-origin"/>
という定義になっており、content内に適切な定義をすることで理想の値を取得することができます。
次の項目に値の書き方とどういう定義になるかを簡単にまとめてみました。
以下の中から理想の定義を選択しましょう。
◆値と動作
content内に定義できる値と内容は以下のようになっています。
・origin
オリジン情報のみ返します。
オリジンとはhttps://AAA.com/hogehoge/のようなURLの場合でもhttps://AAA.comのみであることを指します。
<meta name="referrer" content="origin"/>
・origin-when-cross-origin
プロトコルのセキュリティ水準が同じ(https同士の遷移・htttp同士の遷移)であればオリジン・パス・クエリー文字列を全て返します。
httpsからhttp、httpからhttps、ドメイン違いの場合(サブドメインは別ドメイン扱い)はオリジンのみを返します。
<meta name="referrer" content="origin-when-cross-origin"/>
・no-referrer
リファラ情報を返しません。
<meta name="referrer" content="no-referrer"/>
・no-referrer-when-downgrade
プロトコルでのセキュリティ水準が同じ(http同士の遷移・https同士の遷移)、もしくは水準が上(httpからhttpsの遷移)であれば、オリジン・パス・クエリー文字列を全て返します。
それ以外での遷移の場合はリファラ情報を返しません。
<meta name="referrer" content="no-referrer-when-downgrade"/>
・same-origin
完全に一致しているドメイン(オリジン)同士の遷移の場合、オリジン・パス・クエリー文字列を全て返します。
それ以外での遷移の場合はリファラ情報を返しません。
<meta name="referrer" content="same-origin"/>
・strict-origin
httpsからhttpsへの遷移のみオリジンを返します。
それ以外での遷移の場合はリファラ情報を返しません。
<meta name="referrer" content="strict-origin"/>
・strict-origin-when-cross-origin
※これがデフォルトの定義です(Chrome・Edge・Firefox・Safari)
完全に一致しているドメイン(オリジン)同士の遷移の場合はオリジン・パス・クエリー文字列を全て返します。
その他の場合(サブドメインはこちらに含まれる)、https同士であればオリジンのみを返します。
httpが絡む場合、リファラ情報は返されません。
<meta name="referrer" content="strict-origin-when-cross-origin"/>
・unsafe-url
セキュリティに関係なくどのリクエストを行った場合でも、オリジン、パス、クエリー文字列を送信します。
<meta name="referrer" content="unsafe-url"/>
※ただしこちらはセキュリティレベルが低く推奨されておりません。使用される際は注意してください。
その他注意点
・aタグの設定に破棄する設定がある
実はaタグでリンクさせる際に
<a href="http://www.AAAAA.com/" rel=noreferrer>リンク</a>
のように値をつけることでリファラ情報をリンク先に送信するのを防ぐこともできます。
そのためこの設定をしているのを忘れてしまい、レポート上に反映されていない…とならないように注意しましょう。
過去取れていた値が取れなくなっているとびっくりしますよね。
リファラ問題にお悩みの方の力になれば幸いです。
エクスチュアでは企業様の様々なお悩みを懇切丁寧にお手伝いいたします。
是非お気軽にお問合せください。