elude丸

日々の思い描くことをツラツラと綴るブログ

*

Googleアナリティクスのデータを「スプレッドシート」を介してチャットワークへと流し込む方法

      2017/05/18


Googleアナリティクスをスプレッドシートを通してチャットワークへ流し込みます

自分はSEOやSEMの仕事をする以前、学生の頃はプログラマーとして勉強してきた経歴を持っています。
一時期はOA向けの業務も行っていた程度のプログラム知識は備わっている訳です。
今でも自分で使いたい機能がある場合には、作ったり改良したりしてアレンジを加えています。

実際、「elude-maru.com」で使っているテーマは「Stinger5」という
有名な無料テーマではありますが、ところどころ私なりにアレンジを加えさせて頂いております。

さて、今回することは私の備忘録でもあります。
面白い記事を見たので、私も実践してみたのですが、そこで学んだことを忘れないために
まとめて紹介したいと思います。

参考にさせて頂いた記事がコチラ

GASでチャットワークにGoogleアナリティクスの前日レポートを自動送信

Googleアナリティクスのデータを「チャットワーク」という
ビジネスで使えるチャット機能へと自動で流し込む。という機能を実現しています。

GoogleアナリティクスのデータをGoogle Apps Scriptを使って取り出す

どういう流れでデータがチャットワークへもたらされるのか、先に分かりやすく構図を紹介します。

Google_Analytics_Chat_works

「Googleアナリティクス」->「Googleスプレッドシート」へ書き出し->
書き出したデータを「Google Apps Script」(通称:GAS)で吸い出し->
「チャットワーク」へと自動送信させます。

というのが大まかな対応の流れになります。
そんな流れの中でワタシ的注意点を紹介します。

  1. 「Googleスプレッドシート」を使って「Googleアナリティクス」のデータを書き出す
  2. 「Google Apps Script」と「チャットワーク」の接続
  3. 「Google Apps Script」で「Googleスプレッドシート」し成形し配信

詳しく私の方で書いてしまっては参考にさせて頂いた記事をパクってしまうことになります。
なので、備忘録として私が詰まった所など、忘れてしまわないことを補填させて頂くのが今回の趣向。
詳しくは元記事の方を閲覧して下さい。

1.「Googleスプレッドシート」を使って「Googleアナリティクス」のデータを書き出す

これは以前に書いた、「GoogleAnalyticsをアドオンでスプレッドシートへ流しこむ事で共有可能
の対応でカバーできる内容になります。
注意点としては、ここのデータを「Google Apps Script」で書き出すので
ここで抽出していないデータは取れないということです。
忘れずしっかりと欲しいデータはこの段階で抽出しておくことが重要です。

私がハマった失敗というのは、ここで呼び出していないデータを参照してしまったため
データ抜けが発生し、「あれ?データなしはオカシイだろ」という風になった点です。
迷うようならば、取り出したいデータは全部ここで指定するのがベストかもしれません。

2.「Google Apps Script」と「チャットワーク」の接続

「Google Apps Script」でチャットワークを使うためには
「リソース」>「ライブラリ」からチャットワークが提供しているAPIを検索します。

検索するためのプロジェクトキーは「M6TcEyniCs1xb3sdXFF_FhI-MNonZQ_sT」になります。

利用できる状況にしておくのと同時に
チャットワーク側にもチャットワークのAPI利用する申請を行う必要があります。

そのためには「APIキー」というのが必要になりますので下のリンク先から申込を行いましょう。

チャットワークAPI申込

注意点としては、これがプレビュー版であるということ
つまりまだまだ開発段階であり、仕様の変更・停止などは当然のように起こりえる。ということ。
また、申請後すぐに利用できるわけではなく数営業日が必要ということ。
私の場合、3日ほどかかりましたので、少し気長に待つのが必要です。
利用できるようになったかは、チャットワークに登録しているメールへと連絡が来るので、メール確認は怠らず。

発行されたAPIキーはチャットワーク内の「動作設定」>「API発行」で閲覧できます。

3.「Google Apps Script」で「Googleスプレッドシート」し成形し配信

最後は「Google Apps Script」でのプログラミングとなります。
今回、私が一番引っ掛かったのがココ
プログラミングは苦手という訳ではないのですが
やっぱり定義とかは仕様等を知っていないと迷うことも少なくありませんでした。

詳しいプログラム文に関しては参考にさせて頂いている
記事を参照して頂くのが一番良いと思うので
今回は私が詰まってしまった部分だけを抜粋して紹介します。

var mySS=SpreadsheetApp.getActiveSpreadsheet(); //スプレッドシートを取得
var sheetDaily=mySS.getSheetByName(“Dailyレポート”); //Dailyレポートシートを取得

問題の部分がコチラ。コードが始まってすぐの
スプレッドシートの情報を取得するための定義を行う命令になります。

普通ならこれで問題なく取得してくれるのですが
どうにも私の場合、1行目の「getActiveSpreadsheet()」
アクティブなスプレッドシートが設定されていないため
毎度毎度「Null」が返ってきて
2行目の「getSheetByName()」でエラーを排出してしまいました。

ということで、アクティブでないスプレッドシートも読めるように
「SpreadsheetApp.openById()」を使用することに変更した1行目がこちらです。

var mySS=SpreadsheetApp.openById(“XXXXXXXX”); //スプレッドシート取得

「XXXXXXXX」は対応するスプレッドシートの「ID」になります。
調べ方は「Googleドライブ」から対象のスプレッドシートを右クリックし
「リンクを取得」を選択すると図のようなリンクが表示されます。

Spreadsheet_id

「/open?id=」以降が「XXXXXXXX」となるのでコピーしてください。
文字数が長いため直打ちは避けて、コピーして貼り付けが一番。

こうすることで、指定したスプレッドシートから読み込みも可能となります。
複数のスプレッドシートを使うような場面では、より幅の広い対応が
可能になるかと思うので、注意点として覚えておいて下さい。

以上、Googleアナリティクスのデータを
スプレッドシート経由でチャットワークへと流しこむ注意点の私の備忘録でした。

しかし、この機能。本当に使えるのか?とお思いかもしれませんが
いろんな形で利用が可能だと思っています。

例えば、毎日配信でなく。一週間の流入数の平均を取って
それ以上になった時だけ配信すると、流入増加の察知する効果も持てます。
「Google Apps Script」で条件文さえしっかりすれば実現も可能と考えます。
また、ツイッターからの流入だけを絞ることができれば
SNSなどの更新を担当している部署へと情報の落とし込みも可能で
他部署間でのデータ共有もチャットワークを使うことで容易に出来ます。

わざわざアナリティクスの閲覧権限など、管理がややこしいことをせず。
データを自動的に吐き出すシステムさえ作れば簡単です。

これは是非とも今後共使っていきたい機能なので
今回は備忘録として残させて頂きました。
参考元にさせて頂きました「いつも隣にITのお仕事」本当にありがとうございました。

 - SEM, SEO