Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
5
Help us understand the problem. What is going on with this article?

More than 3 years have passed since last update.

@beta_chelsea

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

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

例として、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 分経過していない)場合でも、キャンペーン ソースが変わると最初のセッションが終了して、次の新しいセッションが開始されます。

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

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

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

まとめ

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

5
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
5
Help us understand the problem. What is going on with this article?