3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GoogleAnalyticsで外部サイト認証をしたユーザがどこから来たのか(リファラーを)知りたい

Last updated at Posted at 2017-05-28

認証を挟むと本当の流入先がわからなくなる問題

例として、facebook認証でアカウント作成ができるWebサービスがあるとします。
アカウント作成をコンバージョン達成とみなす場合、アカウント作成したユーザが何のサービス(関連サイトもしくはGoogle検索など)を経由してコンバージョン達成したのかが気になります。
これをGoogleAnalyticsで取得したいと考えた場合、リファラーをチェックするのが常套手段と思われます。

次のように遷移したセッションがあった場合、page_bの参照元(リファラー)は google となっているはずです。

Googleから流入 > example.com/page_a > example.com/page_b

しかし、次のような認証を挟んだ遷移があるとします。

Googleから流入 > example.com/page_a > facebook.comでfacebook認証 > example.com/page_b

この時、 認証のためにfacebook.comに遷移しているため、 page_bの参照元はfacebookとなってしまいます。

page_bにたどり着いたユーザがどこからやってきたのかを調べようとした場合、
その多くがfacebookからの流入ということになり、
残念ながら本当の流入先の情報が得られていない状況となってしまいます。

この状況を回避し、上記の場合をgoogleからの流入と認識させるためには、設定対応が必要です。

設定方法

参考

だいたいこちらを拝見して解決したのですが、色々追加で調べたこともあったりしたのでまとめました。

ざっくりとした流れ

facebook認証から戻ってきたタイミングで、リファラーの値をfacebookから除外設定されているものに差し替えます。

=> 単純にリファラーを削除するだけのほうがスマートに解決できそうです。
詳しくはコメントを参照してください。

1. 参照元除外設定を確認/追加

analyticsにアクセスし、 管理 > (対象の)プロパティ > トラッキング情報 > 参照元除外リスト を選択。
除外したいドメイン名を設定します。もしかしたらもう自サイトドメインが登録されているかもしれないです。
何もなければ流入先としてありえない値として、とりあえず example.com など入れるとよさそう。値が有効なドメインでないと登録できず、適当な文字列は登録できないので注意。

こちらのステップは省略可能です。
詳しくはコメントを参照してください。

2. facebook認証から戻ってきたタイミングのURLを工夫する

特定のURLパラメータなどで、facebook認証完了後のページがわかるようにします。
例: /page_b?signin=facebook

3. analytics.jsの参照設定を変更する

2のパラメータがついているタイミングで、analyticsに送信するreferrerの値を1で除外したものに差し替えます。
こうすることで、

facebook.comでfacebook認証 > example.com/page_b?signin=facebook

と遷移したとき、page_bのリファラーは除外されてノーリファラー( (direct) / (none) 扱い)となり、同一セッションの直前のデータを引き継いでくれます。

if (window.location.pathname.match(/signin=facebook/)) {
  ga('set', 'referrer', 'http://example.com');
}
   
ga('send', 'pageview');

補足

ただ、これでリファラーがわかるようになるのは設定以後なので、
それ以前にfacebookログインしてfacebookからの流入扱いされているユーザはしばらくそのまま扱われるかも...? (この辺り、まだ不勉強です)

色々調べたanalticsのアレコレ(注釈)

analyticsはドメインが同じなら参照元を引き継ぐ

example.com/page_a > example.com/page_b の遷移はドメインが同じなので、analyticsは参照元を送信せず、 page_b は page_a の参照元を引き継ぐという挙動になっているようです。
そして、 page_a の参照元を引き継いでいるので google が参照元の扱いとなります。

デフォルトでは、トラフィックの参照元の関連付けに使用される HTTP 参照 URL は、参照元サイトのホスト名が現在のページのものと異なる場合にのみ送信されます。

認証のための遷移はセッションが切り替わってしまうのか

セッションの有効期限が切れていない場合でも、別の流入先と見なされれば切り替わるようです。

アナリティクスでは、ユーザーのキャンペーン ソースが変わるたびに新しいセッションが開始されます。現在のセッションが終わっていない(最後のリクエストから 30 分経過していない)場合でも、キャンペーン ソースが変わると最初のセッションが終了して、次の新しいセッションが開始されます。

ノーリファラーなら参照元を引き継ぐの?

下記のような表記になっているので、更新されない=引き継ぐと認識しました。

キャンペーン ソースがノーリファラーの場合は、検索エンジンや参照元サイト、キャンペーンなどの現在のキャンペーン ソースが更新されることはありません。

まとめ

公式ドキュメントとかコミュニティがしっかりしているので、そっちを読んでもらったほうがよさそう。

3
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?