アクセス解析のまとめってどうしてますか?Google アナリティクス + Google スプレッドシート

powered by hm solution

お問い合わせ:0120-290-727
受付時間:10:00~18:00(土日祝は除く)

お問い合わせ
ブログTOP » web » webサービス » アクセス解析のまとめってどうしてますか?Google アナリティクス + Google…

アクセス解析のまとめってどうしてますか?Google アナリティクス + Google スプレッドシート

Spreadsheet
松葉
秋ですね。
もう寒いぐらいです。
お腹のサイズが気になり、腹筋をはじめてみました。。。
いつまでつづくことやら。。。

みさんはアクセス解析のまとめを作るのにどうされてますか?
ナイスミドルは、今までアクセス解析のデータをまとめるのに、チマチマちまちまとAnalyticsのデータを一生懸命コピペしていたんですよ。

ちまちま チマチマ
(#゚Д゚)y-~~イライラ

ちまちま チマチマ ちまちま チマチマ
ヽ(`Д´#)ノ ムキー!! やってられっか!!

エクスポートすればいんじゃね?バカじゃね?と思ったあなたそれも正しい!!
でもね、集計内容によって結局最後にまとめて、必要なデータを足したり引いたりとか選別してとやってたら結構手間。。。
サイトによって集計内容違うし、、、

それでナイスミドル考えた!
同じGoogleさんのサービスなんだからアナリティクスのデータをスプレッドシートで自動で取得できね?
で調べてみました。

調べてみたら、チュートリアルあったヽ(´ー`)ノバンザーイ
Automated Access to Google Analytics Data in Google Spreadsheets
でも英語。。。。・゚・(ノД`)・゚・。

さてと、、、一瞬英語にひるんだけどやってみよかな。。。

実際にやってみて、アナリティクス API を利用する手続きで蹴躓きました。
API key を入力する箇所がわからん。。。ヽ(´Д`;)ノアゥ…
そんなもんで、API key を入力せずにできんもんかと手順を変えてやってみたら出来た!!

すること

  • Google スプレッドシートを準備
  • Google Appsスクリプトを作成
  • Google アナリティクス APIを有効にする
  • サンプルコードを入力・実行

以上な感じ。

Google スプレッドシートを準備

Spreadsheet

今回はお試しなので、適当につくって〜

Google Appsスクリプトを作成

Spreadsheet

スプレッドシートができたら、Appsスクリプトを作成。
メニューの ツール- >スクリプトエディタ…をクリック。

Spreadsheet

ポップアップがでるので、空のプロジェクトをクリック。

Spreadsheet

できたら、とりあえず保存しておきましょか。
プロジェクト名はかっこよく「無題のプロジェクト」!

Google アナリティクス APIを有効にする

Spreadsheet

メニューの リソース- >Google APIを使用…をクリック。

Spreadsheet

ポップアップがでるので、Google Analytics API を ON にします。
それから Google APIs Console をクリックして、Google apisの画面を表示させます。

Google API Console

Google apis の画面で Services の Analytics API を ON にします。

Spreadsheet

プロジェクトの画面に戻って OK をクリックで準備終了。

サンプルコードを入力・実行

あとは、チュートリアルのサンプルコードを貼り付けて実行。
サンプルは、トップ250のGoogleモバイル検索キーワードをGoogle AnalyticsのAPIへ問い合わせて、Googleスプレッドシートに結果を出力するらしい。。。

ではでは、空のプロジェクトへコードを追加します。

Google AnalyticsのAPIと連携

function runDemo() {
  try {

    var firstProfile = getFirstProfile();
    var results = getReportDataForProfile(firstProfile);
    outputToSpreadsheet(results);

  } catch(error) {
    Browser.msgBox(error.message);
  }
}

このコードはエラーがあった場合にメッセージを出してくれるらしいです。

許可ユーザーの最初のビュー(プロファイル)を取得

function getFirstProfile() {
  var accounts = Analytics.Management.Accounts.list();
  if (accounts.getItems()) {
    var firstAccountId = accounts.getItems()[0].getId();

    var webProperties = Analytics.Management.Webproperties.list(firstAccountId);
    if (webProperties.getItems()) {

      var firstWebPropertyId = webProperties.getItems()[0].getId();
      var profiles = Analytics.Management.Profiles.list(firstAccountId, firstWebPropertyId);

      if (profiles.getItems()) {
        var firstProfile = profiles.getItems()[0];
        return firstProfile;

      } else {
        throw new Error('No views (profiles) found.');
      }
    } else {
      throw new Error('No webproperties found.');
    }
  } else {
    throw new Error('No accounts found.');
  }
}

許可されたアナリティクスのアカウントのビューを取得するコードらしいです。

データ用コアレポーティングAPIを問い合せます

function getReportDataForProfile(firstProfile) {

  var profileId = firstProfile.getId();
  var tableId = 'ga:' + profileId;
  var startDate = getLastNdays(14);   // 2 weeks (a fortnight) ago.
  var endDate = getLastNdays(0);      // Today.

  var optArgs = {
    'dimensions': 'ga:keyword',              // Comma separated list of dimensions.
    'sort': '-ga:visits,ga:keyword',         // Sort by visits descending, then keyword.
    'segment': 'dynamic::ga:isMobile==Yes',  // Process only mobile traffic.
    'filters': 'ga:source==google',          // Display only google traffic.
    'start-index': '1',
    'max-results': '250'                     // Display the first 250 results.
  };

  // Make a request to the API.
  var results = Analytics.Data.Ga.get(
      tableId,                  // Table id (format ga:xxxxxx).
      startDate,                // Start-date (format yyyy-MM-dd).
      endDate,                  // End-date (format yyyy-MM-dd).
      'ga:visits,ga:pageviews', // Comma seperated list of metrics.
      optArgs);

  if (results.getRows()) {
    return results;

  } else {
    throw new Error('No views (profiles) found');
  }
}

function getLastNdays(nDaysAgo) {
  var today = new Date();
  var before = new Date();
  before.setDate(today.getDate() - nDaysAgo);
  return Utilities.formatDate(before, 'GMT', 'yyyy-MM-dd');
}

APIを使ってレポートのデータを取得するコードらしいです。

スプレッドシートにデータを挿入

function outputToSpreadsheet(results) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet();

  // Print the headers.
  var headerNames = [];
  for (var i = 0, header; header = results.getColumnHeaders()[i]; ++i) {
    headerNames.push(header.getName());
  }
  sheet.getRange(1, 1, 1, headerNames.length)
      .setValues([headerNames]);

  // Print the rows of data.
  sheet.getRange(2, 1, results.getRows().length, headerNames.length)
      .setValues(results.getRows());
}

APIから取得したデータをスプレッドシートへ出力するコードらしいです。
全部「らしい」なのは、ツッコまないで。。。(´;ω;`)
ヾ(*`Д´*)ノ”理屈はわからんでも、蛇口をひねれば水はでるんじゃ!アクセル踏めば車は走るんじゃ〜いい。。。
以上のコードをコピペして保存しときましょう。

スクリプトの実行

コピペしたら実行です。

apps

虫マークの右側で実行関数を指定するので今回は「runDemo」を選択してやります。
三角マークをクリックして実行します。

apps

すると認証を求められますので続行をクリックします。

apps

それから承認確認されますので承認をクリックしてください。

Spreadsheet

スプレッドシートにもどってこんな感じに表示されてたら成功でっす。

うまくいったかな?

チュートリアルにはスクリプトを自動化することも書いてありましたが、、、
細かい設定は次回にでもやってみよ〜今日はつかれた。。

弊社のスーパーSEO担当えいやん曰く
(´・ω・`) いまごろですか?

もまいらもつかってみればぁ〜
|Д´)ノ~~ アディオス アミーゴ!

人気記事

カテゴリ一覧

ホームページを新規制作・リニューアルしたい方 ホームページ診断 神戸ホームページ制作センター採用情報
弊社が手がけた制作実績 スタッフブログ ECの運営ならコンサルロケッツにお任せください!!ギュイーン!!
充実の運用サポート 失敗する業者選びの典型例

制作サイトSEO対策実績

今月のSEO対策結果
キーワード順位
出張マッサージ 京都
1位
手元供養 通販
1位
ユニバーサルマナー
1位
外壁塗装 神戸
2位
整体 大阪
1位
姫路 工務店
2位
ブライダルまつげ 神戸
2位
神戸 温泉
1位
葬儀 神戸
1位
温泉 神戸
2位
葬儀 大阪
4位
出張マッサージ 名古屋
3位
学生 プロモーション
1位
オークション 代行
3位
コンテナ 販売
3位
目 資格
1位
学生 広告
1位
大阪 ホテル
1位
ヘアサロン 南船場
3位
リフォーム
1位
ブランドメガネ 買取
3位
防犯カメラ 神戸
1位
大阪 ホテル
1位
兵庫 探偵
2位
出張マッサージ 神戸
1位
カルジェルネイル 神戸
2位
フィラリア予防
3位
神戸 ネットカフェ
1位
薬剤師 求人
1位
合宿免許 ローン
1位
美容院 南船場
3位
神戸 婚活
1位

2013年09月調査結果の一部

ホームページ制作対応エリア

制作エリア
【営業地域】
大阪府/奈良県/滋賀県/京都/和歌山/三重/兵庫県/神戸市/神戸市北区/神戸市西区/三田市/宝塚市/川西市/篠山市/三木市/小野市 /尼崎市/芦屋市/明石市/伊丹市/西宮市/姫路市/西脇市/豊岡市/加古川市/加西市/加東市/相生市/赤穂市/朝来市/淡路市/市川町/宍粟市/竜野市/丹波

【受注可能地域】
大阪府/兵庫県/京都府/滋賀県/奈良県/
和歌山県/三重県/岡山県/徳島県など
全国各地
Googleビジネスパートナー
powered by hm solution
お問い合わせ
お問い合わせ
gmt
© hm solution, Ltd.