技術ブログ運営で起きたGoogleAnalytics事例集

### ◆はじめに
[ラクス Advent Calendar 2018](https://qiita.com/advent-calendar/2018/rakus)の10日目です。昨日の記事は@Black-Spiderさんの[Scala歴4ヵ月、仕事のために覚えたこと](https://qiita.com/Black-Spider/items/19b06f08983f2d1d679d)でした。

さて、私@FlatMountainですが、昨年10月から弊社技術ブログである「**[Rakus Developers Blog](http://tech-blog.rakus.co.jp/)**」（以後**エンジニアブログ**）の運営に携わっています。その中で、様々なツール、サービスを利用したのですが、特に**[Google Analytics](https://analytics.google.com/)**の利用がとても多かったと感じています。

そこで、今回はGoogle Analyticsを使ったアクセス解析について、私が経験した事例を集めてみました。同じような事例に遭遇した方の参考になれば幸いです。

### ◆本題の前に：Google Analyticsとは？
> ユーザー像を詳しく分析して理解を深めましょう。Google アナリティクスなら、ビジネスのデータ分析に必要なさまざまなツールを無料でご利用いただけます。
> ～ [Google マーケティング プラットフォーム > アナリティクス](https://marketingplatform.google.com/intl/ja_ALL/about/analytics/)より ～

説明不要かと思いますが、**Google Analytics**はGoogleが提供するアクセス解析サービスです。解析したいサイトに簡単な設定を行うことで、様々な解析結果を得ることができます。

例えば、

- どのページへのアクセスが多いか？
- どの媒体からのアクセスが多いか？
- どの時間帯のアクセスが多いか？

といった結果を得ることができます。

Rakus Developers Blogでも、Google Analyticsから得た解析結果を基にしてアクセス増加の施策を検討する場合が多く、高い頻度で利用しています。

### ◆事例1：過去の集計から特定のIPアドレスでアクセスされたものを除外したい
#### 事例の内容
ブログのアクセス解析をする場合、読者の傾向を正確に把握するために自分のアクセスを除外するのが一般的です。企業で運営している場合は、自社からのアクセスを計測から除外することになります。

その方法として、Google Analyticsでは**特定のIPアドレスでのアクセスを計測から除外する**ことが可能であり、Rakus Developers Blogではラクス社内のIPアドレスでのアクセスを計測から除外するような設定を行っていました。

ところで、今年ラクスでは大阪オフィスの移転があり、それに伴って大阪オフィスで利用しているIPアドレスが変更されました。それに合わせて、Google Analyticsで除外するIPアドレスの設定を変更しなければ、正確な解析結果を得ることができなくなります。

しかし、諸事情でIPアドレス変更からGoogle Analyticsの設定変更まで時間が空いてしまうという事態になってしまいました。
仕方がないので、当該期間中にあった新しい大阪オフィスのIPアドレスからきたアクセスを直接除外しようと、アクセス解析画面を確認したのですが・・・

**ディメンジョン[^1]にIPアドレスの項目が存在しない**

調べてみたところ、Google AnalyticsではIPアドレスを解析用に確認することはできず、必要であれば自前でディメンジョンを利用して取得することで対応できるということが分かりました。
ただし、個人情報保護の観点からGoogle AnalyticsではIPアドレスをそのまま保存しないようにすることもできるため、基本的には**アクセス元のIPアドレスを確認できるようにすることは望ましくない**ことも分かりました。

Google Analyticsでは都道府県レベルでのアクセス元地域は確認することができるため、この時はIPアドレスでの除外は諦めて大阪地域からのアクセスを除外することで対応しました。

#### 結論

**「Google Analyticsでは、アクセス元のIPアドレスは分からない」と考えた方がいい**

### ◆事例2：https→httpとなるアクセスについて、参照元サイトを知りたい
#### 事例の内容
ある日、ブログ運営チームの責任者の方から、このような依頼をいただきました。

> エンジニアブログと[中途採用サイト](https://career-recruit.rakus.co.jp/#engineer)に相互リンクを設置したので、採用サイト⇔エンジニアブログ間の流入数を計測してほしい

「エンジニアブログ→採用サイト」の流入数をエンジニアブログ側のAnalyticsで計測するのは、別途タグの埋め込みが必要なので手間がかかるのですが、「採用サイト→エンジニアブログ」の流入数はGoogle Analyticsで保存している「参照元」の情報から簡単に計測できるはずです。
そこでAnalyticsの画面を確認したのですが・・・

**なぜか中途採用サイトのURLが参照元にない**

前述の通り、社内IPを利用したアクセスは除外しているため、社外でも同じリンクを踏んでからAnalyticsの画面を確認したのですが、やはり中途採用サイトのURLが表示されない・・・

そこで原因を調べてみたところ、下記の原因によりアクセスが参照元なし（ノーリファラー）となることが分かりました。

> #### SSL適応サイト(https)からのアクセス
> SSL(暗号化)に対応しているサイトから対応していないサイトにアクセスした場合、リファラーの情報が引き渡されないためノーリファラーとなります。
> ～ 「[参照元が計測できない？ノーリファラー(direct/none)になる原因とは](https://ferret-plus.com/9523)」より ～

慌ててURLを確認してみると・・・

- 採用サイト → `https://career-recruit.rakus.co.jp/#engineer`
- エンジニアブログ → `http://tech-blog.rakus.co.jp/`

と、まさに上記の原因に合致する事例であることが分かりました！

考えてみれば、https→httpと変わる場合、暗号化された通信から非暗号化された通信に切り替わるわけです。となると、その間で引き渡されない情報があってもおかしくないのかもしれません。

なお、この件については、採用サイト側でもGoogle Analyticsを利用されているとのことで、相談してみたところ両者ともに対応可能であることが分かりました。そのため、採用サイト側のGoogle Analytics担当者へ依頼して、この依頼を解決することができました。

~~ブログのhttps化とかスクリプトの埋め込みとかでも行けたかもしれませんが、今回は見送りました...~~

#### （2018/12/12 追記）
コメントにて指摘いただきましたが、この事例はGoogle Analyticsの利用に限ったものではないようです。

>  *A user agent MUST NOT send a Referer header field in an*
>  *unsecured HTTP request if the referring page was received with a*
>  *secure protocol.*
> （*[RFC 7231 5.5.2. Referer](https://tools.ietf.org/html/rfc7231#section-5.5.2)*より）

とあるように、ブラウザ（UA）は**セキュアな通信方式からセキュアでない通信方式へ切り替わる際はリファラーを送信してはいけない**ようです。

ただし、`<meta>`タグや`<a>`タグ等でリファラ情報出力用の設定を行うことで、https→httpと通信方式が変わる際にもリファラーを送信することが可能であるようです。

> *4.Referrer Policy Delivery*
>
> - *Via the Referrer-Policy HTTP header (defined in §4.1 Delivery via Referrer-Policy header).*
> - *Via a meta element with a name of referrer.*
> - *Via a referrerpolicy content attribute on an a, area, img, iframe, or link element.*
> - *Via the noreferrer link relation on an a, area, or link element.*
> - *Implicitly, via inheritance.*
>
> （*[Referrer Policy 4. Referrer Policy Delivery](https://www.w3.org/TR/2017/CR-referrer-policy-20170126/#referrer-policy-delivery)*より）

しかし、この方法は*not normative.*とあるとおり、ブラウザによっては対応していないものもあるようなので、基本的にはhttps→httpとなるアクセスではリファラーが渡されないと考えたほうがよさそうです。

#### 結論
~~**「Google Analyticsでは、https→httpとなるアクセスの解析について分かる情報が少ない」と思った方がいい**~~
**「https→httpのアクセスではリファラーが渡されない」と思ったほうがいい**

### ◆事例3：どのツイートからアクセスされたのか知りたい
#### 事例の内容
また別の日、今度はラクス広報の方からこのような依頼をいただきました。

> [ラクス開発部のTwitterアカウント](https://twitter.com/devrakus)で投稿記事の紹介ツイートを行っているが、ツイートからブログへの流入数を計測できないか

Twitterはhttps化されているため、事例2のように参照元が分からないのでは？という懸念もありましたが、なんとGoogle AnalyticsではTwitterからのアクセスが`t.co`ドメインからのアクセスとして参照元に表示されます[^2]。
なので、これにて一見落着・・・とはいきません。

必要なのはどのツイートからブログにアクセスされたのかという情報ですが、アクセス解析画面に表示された`t.co`ドメインのアドレスにアクセスしてみると・・・

**投稿記事の画面が表示された**

原因は単純で、ラクス開発部のTwitterアカウントで投稿記事のリンクを紹介するツイートを投稿した際に、Twitter上には`t.co`ドメインから始まる**投稿記事の短縮リンク**が投稿されたのです。
この短縮リンクにアクセスすると、投稿記事へリダイレクトするようになっていたため、Google Analyticsの参照元には短縮リンクが保存されたのでした。

いまのところ、この件はまだ解決できていません。
Twitter上で短縮リンクからツイートを検索することはできるのですが、遡って検索できるツイートにも限度があるため、明確な解決方法が分かっていない状況です。
この辺りは今後の解決したい課題だと思っています。

#### 結論
**Google Analyticsで参照元のツイートを確認することは難しい**

### おわりに
3つほど事例を紹介しましたが、いかがでしたでしょうか。

何だか「Google Analyticsで出来ない」という文面が多いですが、何もそれらを欠点としてあげつらう為にこの記事を書いたわけではありません。
個人の意見ですが、今回挙げた事例については「出来ないのが当たり前」だと思うことも多いです。
（IPアドレスを非公開にしていることや、https→httpの件など・・・）

ただ、こう言った事例でハマることもあるかと思いますので、「はじめに」にもありますがそういった方々がこの記事を見て同じような問題を解決できればいいなと思い、今回の記事を書かせていただきました。

最後になりますが、Google Analyticsは本当に便利で多くの情報を得ることができると思います。
まだまだ知らない部分は多いですが、ぜひ使いこなせるようになりたいと思います。
~~あと、今回の事例についてより良い解決策があったら、ご教授いただけますと幸いです...！~~

以上で私の記事を終わりとさせていただきます。明日も[ラクス Advent Calendar 2018](https://qiita.com/advent-calendar/2018/rakus)をお楽しみに！
弊社技術ブログ「[Rakus Developers Blog](http://tech-blog.rakus.co.jp/)」もよろしくお願いします！

[^1]: 「ブラウザ」や「参照元」といったアクセスの属性のことです
[^2]: `twitter.com`からのアクセスとして表示される場合もあるようですが、私は見たことがないのです...