node.js: Google Analytics API v4でデータを取得する方法

access_tokenは取得できているという前提です。
node.js: Google API OAuth2のアクセストークンを取得する方法

公式にあるようにJSONをPOSTすればいいだけです。

Google アナリティクス API Reporting API v4
https://developers.google.com/analytics/devguides/reporting/core/v4/basics?hl=ja

Dimensions & Metrics Explorer
https://developers.google.com/analytics/devguides/reporting/core/dimsmets
metricsとdemensionsの組み合わせで使えるもの、使えないものを調べるツールです。

'use strict';

const rp = require('request-promise-native');

const ACCESS_TOKEN = 'ya21.Gl12Bwsxu97PbXz2sxxxxxxxxxxxxxxxxx';
const URL = 'https://analyticsreporting.googleapis.com/v4/reports:batchGet';

const main = async () => {
  try {
    const reportRequests = [
      {
        'viewId': '取得したいview_id',
        'samplingLevel': 'LARGE',
        'dateRanges': [{ 'startDate': '2019-08-01', 'endDate': '2019-08-31' }],
        'metrics': [{ 'expression': 'ga:users' }]
      }
    ];

    const options = {
      method: 'POST',
      headers: {
        'Accept-Charset': 'utf-8',
        'Content-Type': 'application/json',
        'Authorization': 'Bearer ' + ACCESS_TOKEN
      },
      body: { 'reportRequests': reportRequests },
      json: true,
      resolveWithFullResponse: true // statusCodeが欲しいのでfullにする
    };

    const res = await rp(URL, options); // リクエスト送信
    if (res.statusCode === 200) console.log(res.body);
  } catch (err) { console.log(err); }
};

main();

totalsの値がソレです。

Googleからの流入激減とその対処法

10年以上ずっと話には聞いていたのでとくに驚きもせず、「とうとう自分にもキタか」くらいの気持ちなのですが、それにしても流入が10分の1に減るとはずいぶんだなと思います。

2014年2月12日辺りにアナリティクスがデザインのマイナーチェンジをしました。
流入激減はそれと関係あるのかなと思ったら自分だけみたいなので、どうやらペナルティのようです。

な〜んにもしてないから原因がわかりません。
とりあえず3ヶ月待つことにします。。。

 
激減したときに一応確認することは、

(1)マスターツールでメッセージが届いていないかチェック(手動によるインデックス削除ならメッセージが届いているはず)
(2)Googleで「site:hogehogehogehoge.com」と叩いてインデックス削除されていないかチェック
(3)Googleが提供しているセーフブラウジングでチェック
 http://www.google.com/safebrowsing/diagnostic?site=hogehogehogehoge.com
(4)激減する直前にGoogle先生が嫌がる変更をしなかったか頭の中をチェック
(5)ペンギンやらパンダやらのアップデート日程をチェック
 namaz.jp SEO関連ニュース一覧

よく言われますが、それで何もなければ何もしなくても突然元に戻ります。
元に戻るまでに3ヶ月かかっている人もいたので、それまでじっと待つしかないです。

損害賠償請求をしたくなる人の気持ちが少しわかりましたw
 

Google Analyticsで外部リンクのクリック数を取得する方法

そろそろ作業をせねばと思いGoogle先生に聞くと、出てくる出てくる古い情報。
どれもこれも古くて使えない、というわけで現時点(2013年10月)での最新情報をまとめました。

動作確認済みですので、今すぐクリック数を取得したい場合は参考にしてください。
2012年以前のトラッキングコードでもまだ取得はできるようですが、いろいろ違うのでGoogleサイトでご確認ください。

しかも先週、またアナリティクス管理画面の変更があったし。。。

 
(1)最新のトラッキング コードをHTMLに埋め込む

最新版はこの↓形です。

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-XXXXXXXX-1', 'hogehogeauau.com');
  ga('send', 'pageview');
</script>

2013年に変わっているので要注意です。
新しいトラッキングコードに古いJavaScriptを埋め込んでも動作はしないですが、その逆も然りです。

トラッキングコードが置いてある場所も先週変わりました。
アナリティクス管理画面、上の方にあるオレンジ色のメニュー右側「アナリティクス設定」をあさってみて下さい。
真ん中辺りにある「プロパティ」→「トラッキング情報」から取得できます、今は。

アナリティクスの画面はすぐ変わるので何とも言えません。

PHPのincludeで埋め込む場合は「<body> タグの直後に」にと書いてあるので、「普通は直前じゃないのか?」と思いながらも言われたとおりにしています。
アナリティクスの、トラッキングコードを取得するページの下の方に、埋め込み方法があるのでご確認ください。

 
(2)<a href>タグにJavaScriptのコードを埋めていく

すべてのリンクに貼り付けていく必要があります。

動的ならユニークな値をすぐに入れることができますが、静的だと一々手で入れるのが面倒ですね。
でもユニークでないと入れる意味がなくなります。

<a href="hoge.html" onclick="ga('send', 'event', 'カテゴリなど', '項目名など', '各リンクの名前など');"></a>

sendとeventはそのまま入れないと取得できなくなります。
他は文字化けする可能性があるみたいですが、自分は今のところ日本語で大丈夫でした。

アナリティクスの画面で、PVのようにタラタラと大量に表示される部分なので、規則性があって、誰が見てもわかりやすいテキストを入れておく必要があります。

各値の使用例はGoogleによると、

ga('send', 'event', 'category', 'action', 'label', value);  // value is a number.

始めの4つまでは必須です。
valueは数字だけ入れられて、labelと同様、必須ではないです。

詳しくはGoogleのディベロッパー向けの解説をご確認ください(英語)。
Event Tracking – Web Tracking (analytics.js)
https://developers.google.com/analytics/devguides/collection/analyticsjs/events

べつにカテゴリとかアクションにこだわる必要はなく、自分はストア名とかタイトル名などを入れています。
階層になるので、とにかくわかりやすく、集計しやすくすることがポイントです。
取得しながらチューニングしてみてください。

実際の集計結果はレポートの左メニュー「行動」→「イベント」で確認できます。
Google Analytics イベント1 Google Analytics イベント2

リアルタイムでも見ることができるので、「リアルタイム」→「イベント」をクリックし、チューニングするとよいです。
Google Analytics リアルタイム

Google Analyticsヘルプ イベントについて トラッキングとレポートの概要
https://support.google.com/analytics/answer/1033068?hl=ja

 
Google先生、とても便利なのですが、コードとか管理画面とか、コロコロ変えるのはやめて欲しいです。
とくにコードを変えられると修正がとてもメンドいです。
 

Googleアナリティクス:ユーザーのドメインで集計

GoogleアナリティクスではユーザーさんのIPアドレスやリモートホストで集計ができません。

レンタルサーバーを利用している場合、大体アクセス解析ができるようになっていますが、今ひとつ使い勝手がよくなかったりします。
ミニバードの場合、そのIPアドレスのユーザーさんがどこから来たのか、滞在時間などがわかりません。

Googleアナリティクスでどうにかならないものかといじっていたら、ドメインで集計ができるようです。
設定が保存できるので毎日簡単にチェックすることができます。
以下に設定の仕方を解説しますね。

Googleアナリティクス:ユーザーのドメインで集計1

アナリティクスに飛ぶとオレンジのメニューはデフォルトで「レポート」になっていますが、その右隣の「カスタマイズ」をクリックします。

次にオレンジメニューの下にある「+新しいカスタム レポート」をクリックします。
「タイトル」「名前」にわかりやすい名前を入れて、「指標グループ」「ディメンションの詳細」を選択していきます。

 alt=

「+指標を追加」をクリックし、該当するドメインの、取得したい数字の種類を選択していきます。

自分の場合ユーザーさんがサイトの中をきちんと見ているのか、ほとんど見ずにいなくなってしまうのか、などが知りたかったので「ユーザー」の「ユーザー数」「訪問数」「ページビュー数」「訪問時の平均滞在時間」「オーガニック検索」「新規訪問の割合」を選択。

Googleアナリティクス:ユーザーのドメインで集計3

「オーガニック検索」はGoogleやYahooから検索してきたユーザー数のことです。

次に「+ディメンションを追加」をクリックし、「ユーザー」から「ドメイン」を選択し、「保存」ボタンをクリックすれば必要な数字を表示することができます。

ここでフと思い出しました。
リモートホストとドメインてどう違うんだったっけ・・・。
たまに混同します。

すごく強引な言い方をすれば、リモートホストは各パソコンの名前、ドメインはそのグループの名前、とするとイメージが湧きやすいです。

確認くんの「クライアントホスト名」がリモートホスト名に当たります。
ドメインは「dion.ne.jp」「so-net.ne.jp」などです。

つまりプロバイダごとに集計するだけなので、ユーザー数が少ないうちは役に立ちますが、劇的に増えたらあまり意味ないかもです。。。

Googleアナリティクス:自分のアクセスを除外する方法

ややこしいやり方もあるのですが、自分のように一人でアクセスする場合は、ブラウザにアドオンを入れる方法が一番手っ取り早いようです。

Google アナリティクス オプトアウト アドオン
https://tools.google.com/dlpage/gaoptout

ダウンロードしてファイルをブラウザに放り込んであげればインストールできます。
ブラウザごとに違うファイルのようなので、複数のブラウザを使っている場合はブラウザごとに再ダウンロードする必要があるみたいです。

このアドオンを入れると、ソースに貼りつけたGoogleアナリティクスのJavaScriptを無効化できます。
インストールしたブラウザのみ有効となります。

対応ブラウザはIE、Chrome、Firefox、Safari、Opera。

企業だと自社のIPアドレスだけ排除するやり方だと思うのですが、けっこう面倒のようです。

社内からのアクセスの除外
http://support.google.com/analytics/bin/answer.py?hl=ja&answer=1034840

最初アドオンがあることに気づかず、「アナリティクス設定」で自分が所属するプロバイダだけ排除したのですが、うまくいきませんでした。
アドオンを入れたその時からレポートに加算されなくなったのですが、数字がぐっと減りますね。。。
でもローカルで作業していた時の余計なカウントが排除されたので、見やすくなりスッキリしました。

—————————————————
[2013/2/4現在]
Windows XPのIE8でアドオンをインストールできませんでした。
IEはできないことが多いので、素直にGoogle Chromeに変えた方がいいと思います。
—————————————————