LoginSignup
1

More than 1 year has passed since last update.

GASを使ってAnalyticsのデータを毎日自動でプリザンターに登録する。

Last updated at Posted at 2020-12-10

本記事は Pleasanter(プリザンター) Advent Calendar 2020 十日目の記事です。

はじめに

この記事は、12月7日に公開した Googleフォームの回答内容をプリザンターに登録してみる の続編のようなものです。
表題の通り、今回はGoogle Apps Scriptを使ってGoogle Analyticsとプリザンターを連携させるわけですが、ほとんど使いまわしです。言うなれば、エコです。

今回はプリザンターのAPIを使用しますので、Pleasanter.netのフリープラン、ライトプランではお試し頂けません。
お試し環境を持っていない場合は、デモサイトをご利用ください。メールアドレスを登録するだけですぐにお使いいただけます。
プリザンターのデモサイト

もちろん、OSS版をお使いいただいている方はそちらでお試しください。
プリザンターのダウンロード

プリザンターにテーブルを作る

まずは記録テーブルを作りましょう。
「テーブルの管理」「エディタ」で以下のように項目を有効化します。
スクリーンショット 2020-12-10 21.29.35.png

項目名称 種別
タイトル Title
ユーザ NumA
セッション NumB
ページビュー NumC

ついでに、APIキーを発行し、メモはせずに暗記してください。全集中です。
ユーザーマニュアル:APIキーの作成

Google様に感謝

Analyticsにログインしているブラウザで以下にアクセスしてください。
https://ga-dev-tools.appspot.com/query-explorer/

GASでAnalyticsに値を取りに行く際に必要となるidsも表示されているのでメモはせずに暗記してください。
metricsでは、どの項目を取得するか指定する際のパラメータが表示されます。
今回はシンプルに「ユーザ数」「セッション」「ページビュー」をプリザンターに登録したいと思います。

スクリーンショット 2020-12-10 21.26.54.png

続いて、スクリプトエディタで、AnalyticsのAPIを使えるように設定します。
スクリプトエディタの「リソース」→「Googleの拡張サービス」から「Google Analytics API」を「ON」にします。

スクリーンショット 2020-12-10 20.57.28.png

前回同様、IDなどはプロパティストアに格納しておきます。
「ファイル」→「プロジェクトのプロパティ」→「スクリプトのプロパティ」に以下のように登録します。

プロパティ
API_KEY プリザンターで発行したAPIキー
API_URL リクエストを投げるURL
ids Google Analytics

スクリーンショット 2020-12-10 20.57.49.png

コードは以下のような感じです。

function SendPleasanter() {

    let date = new Date();
    let year = date.getFullYear();
    let month = date.getMonth() + 1;
    let day = date.getDate();
    let title = year + '/' + month + '/' + day + ':' + 'Pleasanter.org';

    var gaData = getGaData('yesterday', 'yesterday');
    Logger.log(gaData);

    var data = {
        "ApiVersion": 1.1,
        "ApiKey": PropertiesService.getScriptProperties().getProperty('API_KEY'),
        "Title": title,
        "NumHash": {
            "NumA" : gaData[0][0],
            "NumB" : gaData[0][1],
            "NumC" : gaData[0][2]
        }
    };

    const api_url = PropertiesService.getScriptProperties().getProperty('API_URL');

    var options = {
        'method': 'post',
        'contentType': 'application/json',
        'payload': JSON.stringify(data)
    };

    var response = UrlFetchApp.fetch(api_url, options);
    Logger.log(api_url, options);
}

function getGaData(startDate, endDate) {
    var gaData = Analytics.Data.Ga.get(
        PropertiesService.getScriptProperties().getProperty('ids'),
        startDate, endDate, 
        'ga:users, ga:sessions, ga:pageviews' 
    ).rows;

    return gaData;
}

Googleフォームとの連携と違って、スクリプトエディタから実行できますので、試してみましょう。

スクリーンショット 2020-12-10 21.31.58.png
登録できました!
控えめなページビューでお恥ずかしい限りです。

とりあえず、これで昨日のページビューなどをAnalyticsから取得し、プリザンターに登録することができました。ただ、これを毎日手動でやるのも面倒なので、フォーム連携でも使ったトリガーを設定して自動化します。

スクリーンショット 2020-12-10 21.01.00.png

これで毎日午後1時〜2時の間で自動的にスクリプトが走って、プリザンターに情報が登録されます。
素晴らしい!

おわりに

いやあ、Google Apps Script、本当に便利。
Analytics APIも非常にシンプルにアクセスできるので、思ったより簡単に出来てしまいました。
ドキュメントが豊富なのもありがたいところです。
GASを使うことでもっとプリザンターを便利に使える予感が青天井で有頂天で絶好調です。

Analyticsのデータをプリザンターに集積してMetabaseで視覚化、というのも面白そうですよね。
プリザンターをデータハブとして、様々なサービスと連携させることで、可能性は無限大です。宇宙です。
もっとプリザンターをいろいろなものと連携させてみたい欲求も無限大です。全集中です。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1