SpreadSheetでGoogleAnalyticsの数値を取得するときのパラメータ・リンク集

毎回検索し直して、あちこち確認しているので備忘録的にまとめました。

##はじめに

単発で確認したいだけなら、GAからエクスポートすればよいですが、

 - 定期的に更新したい
 - GAで表示できるよりも細かい情報を取りたい
 - 取りたい数字のリストがあり、手作業で集めるのは大変

といったときにはアドオンのGoogle Analyticsが使えます。

↓からインストールでき、ツールバーのアドオンから起動できます。
https://gsuite.google.com/u/0/marketplace/app/google_analytics/477988381226?hl=ja&pann=sheets_addon_widget

##最初のパラメータ
Create new reportを押したときにでるところ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230664/084d0bf8-1b20-02ac-adda-c4996daa290a.png)

この辺は画面に従って入力すればほとんどいけるとは思いますが、慣れないうちは3)のオプション指定が若干戸惑います。

- Metrics : 出したい数字 (例：Pageviews,sessions,BounceRate など)
- Dimensions : 出したい単位 (例：日ごとならdate,ページごとならpage など。要はgroup by~~)
- Segments : どこのデータを集計するか (例：新規ユーザーならNew Users,検索経由 Search Traffic など。全部なら空欄でOK)


注意すべきは *「MetricsとDimensionの単位をあわせておかないと、実際のデータとずれる」* こと。
例えば回遊性を表すページ/セッション(Pages/Session)は、セッション単位で計測されるため、 `Dimensions` には `Landing Page` を選ぶ必要があります。
一方PVはPage単位なので、両方の数値を出したい場合はレポートを2つ作る必要があります。僕はよく間違えるので気をつけましょう(数字めっちゃずれます)

##本題
問題はCreate Reportを押した後のここ。
後から項目を足したくなったり、フィルタをかけたくなった場合は、手打ちする必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/230664/7c655743-8137-17af-b763-14e7fca5d36d.png)

説明はここにあるのが一番わかりやすいですが、長いので以下まとめ。
https://developers.google.com/analytics/devguides/reporting/core/v3/reference#filters

###Start Date / End Date

日付を入れればよい。関数で `=today()-29` とかしておけば定期更新をかけるとき便利。
特殊なやつだと、 `today` , `yesterday` , `Ndaysago` があるらしいです。

詳しくはこの段落
https://developers.google.com/analytics/devguides/reporting/core/v3/reference#startDate

###Metrics

カンマでつないで入れてく。

詳しくはここ。検索ワードを入力すればga:xxxの形で出してくれます。
https://ga-dev-tools.appspot.com/dimensions-metrics-explorer/

主だったところは

セッション系

|指標|コード|
|:--|:--|
|セッション|ga:sessions|
|直帰率|ga:bounceRate|
|ページ/セッション|ga:pageviewsPerSession|
|セッション時間|ga:avgSessionDuration|

PV系

|指標|コード|
|:--|:--|
|PV|ga:pageviews|
|滞在時間|ga:avgTimeOnPage|
|離脱率|ga:exitRate|

###Dimensions

Metrics同様、詳しくはこちら。
https://ga-dev-tools.appspot.com/dimensions-metrics-explorer/

主だったところは `ga:date` とか `ga:pagePath` とか。月別に出すときは `year` と `month` の2つを付けています。(ちなみに`Month of Year`は `202008` のように返ってきます)

###Order

デフォが昇順。降順にするには `-ga:date` のようにマイナスをつける。Metrixの指標から大体選んでます。
複数も可能で `ga:date,-ga:pageviews` のように書けば左を優先しつつ、反映してくれます。

詳しくはこの段落
https://developers.google.com/analytics/devguides/reporting/core/v3/reference#sort

###Filters

一番迷うところ。この段落からがとても参考になります。
https://developers.google.com/analytics/devguides/reporting/core/v3/reference#filterOperators

以下よく使うものの抜粋
シート上で扱う分にはエンコードなどは基本的に不要なので省略しています。

| 演算子 | 説明 | 例 | コード例 |
|:--|:--|:--|:--|
| == | 次と等しい | PVがちょうど 1000である結果を返す | ga:pageView==1000 |
| > | 上回る | PVが1000より大きい結果を返す | ga:pageView>1000 |
| < | 下回る | PVが1000より大きい結果を返す | ga:pageView<1000 |
| >= | 以上 | PVが1000以上の結果を返す | ga:pageView>=1000 |
| <= | 以下 | PVが1000以下の結果を返す | ga:pageView<=1000 |

| 演算子 | 説明 | 例 | コード例 |
|:--|:--|:--|:--|
| == | 完全一致 | ページのpathが/12345に一致するものを返す | ga:pagePath==/12345 |
| != | 一致しない | ページのpathが/12345に一致しないものを返す | ga:pagePath!=/12345 |
| =@ | 文字列の一部に一致 | ページのpathに/123が含まれるものを返す | ga:pagePath=@/123 |
| !@ | 文字列の一部に一致しない | ページのpathに/123が含まれないものを返す | ga:pagePath!@/123 |
| =~ | 正規表現の一致を含む | ページのpathが `/数字` のみのものを返す | ga:pagePath=~^/[0-9]+?$ |
| !~ | 次の正規表現に一致する場合を除く | ページのpathが `/数字` でないものを返す | ga:pagePath!~^/[0-9]+?$ |

`/1234` のように `/数字` の記事だけを取り出したいときは正規表現を使って `ga:pagePath=~^/[0-9]+?$` と表わせます。(これ一番便利)

OR条件は `,` でつなぎ、AND条件は `;` でつなぎましょう。
たとえばpagePathが `/1234` か `/4321` のものに絞るときは
`ga:pagePath==/1234,ga:pagePath==/4321` とすれば大丈夫です。

###Segments

あんまり使わないので詳しくないですが、最初の画面で検索ユーザーに絞ってみると `gaid::-13` とコードで表示されます。
わかりにくい時は、 `segment=sessions::condition::ga:medium%3D%3Dreferral` のように改変もできるようです。

参照
https://developers.google.com/analytics/devguides/reporting/core/v3/reference#segment

構文の作り方は↓が参考になりそうです。
https://developers.google.com/analytics/devguides/reporting/core/v3/segments-feature-reference

ただ、あんまり細かすぎるセグメントはサンプリングがかかり正しい数字ではなくなるので注意したほうがよさそうです。


#### おしまい

疲れたのでこれでおしまい