GoogleAnalyticsに気温のデータを毎日インポートする方法
ダイエット7戦7勝(7リバウンド)、連勝街道まっしぐらの篠キチです。こんばんは。
とある案件の打ち合わせ中、お客様から「売上と気温に相関関係がある」ような話題が出て、ふとGoogleAnalyticsに気温のデータをインポートして分析に活かすという提案を思いつきました。そういえば27℃を超えたらアイスクリームが売れ始めるという話も、どこかで聞いたことがあるような気がします。
とはいえ思いつくだけではしょうがないので、実現方法を検討しているときにこんな情報に行き着きました。
Googleアナリティクスに天気データをインポートする方法(SEM Technologyさん)
紹介されているのは晴れ・曇りなどの天候情報をインポートする方法ですが、気象データの取得元であるOpen Weather MAPからは気温のデータも問題なく取れます。少し手を加えれば気温のインポートもできそうな気がします。
というわけで、実際に使えるかどうか試してみました。
Googleスプレッドシートでサーバーレス定期実行!
で、このSEM Technologyさんが紹介されている方法がなかなか変わっていて、Open Weather MAPからのデータ取得もGoogleAnalyticsへのインポートもなんとGoogleスプレッドシートで実現しています。
正確にはGoogle Apps Script(Excelでいうマクロ的なもの)を使ってるんですが、スクリプトでOpenWeatherMAPから都道府県ごとの天候の情報を取得してスプレッドシートに転記、その後にGoogleAnalyticsへスプレッドシートに転記した情報をAPI経由でインポートしていくという流れのようです。
とはいえ、動きとしては理解できましたが、このスクリプト実行をどうやって自動化するのか気になります。1日1回手動でスプレッドシートを開いてスクリプトを実行する、なんてことはしたくありません。
実はGoogle Apps Scriptにはcronのようにスクリプトを定期実行させる機能があり、Googleスプレッドシートに書いたスクリプトもトリガー設定しておけば決められた時間に自動で動作させることができるのです。マクロ付のExcelをクラウドに保存しておくだけで、決まった時間にマクロを定期実行してくれちゃうようなもんです。しかもサーバーレスで。すごい時代になったもんだ。
まあよく考えたらスプレッドシートはクラウドに保存してあるからスクリプトもサーバ実行になるわけで、当たり前といえば当たり前な感じではあります。
またGoogle Apps Scriptは実態はJavaScriptなので、見慣れた構文で書くことができて覚えやすいというのも利点として大きいと思いました。
サーバーレスでcron的なものをサーバサイドのjavascriptで書き放題。アイデア次第でいろんなことができそうです。
ちょっと補足
天候のデータ取得やGAへのインポート、cron的な定期実行まで含んだスクリプト付のGoogleスプレッドシートのひな形をSEM Technologyさんが用意して下さってるので、これをコピーして記事に書かれている方法に沿っていけば基本的に問題なくできるはずです。
ただし事前にGoogle AnalyticsのAPIを使えるようにする必要があり、この方法がSEM Technologyさんの記事中ではあまり触れられていません。
方法としてはまずGoogle API Consoleにアクセスし、プロジェクトの作成をしたあとでライブラリ内の「その他の一般的なAPI」にあるAnalytics APIを選択して、有効にするという流れです。
この手順はLIGさんの記事の序盤が参考になると思います。今回はAPIを有効化すればとりあえずOKのはずです。
無事動いてます
結論として、気温データをインポートするために多少スクリプトをいじったり、cron的なトリガーの実行タイミングを調整したりしましたが、あまり手間をかけることも無くやりたいことは実現できました。現在は1日1回、正午時点の気温を都道府県別に紐付ける形でGoogleAnalyticsにインポートしています。
いまさらではありますが、GoogleスプレッドシートとGoogle Apps Scriptの組み合わせ、なかなか面白そうだなと思いましたよ。
※写真素材は前回の記事に続いて毎度おなじみフリー写真素材ぱくたその現役グラドル茜さやさんフリー素材を使わせていただきました。
TAG
約3年半にわたり君臨したランチェスター最年長の座を譲り、今はただの猫・鉄道・Perfume好きな不惑おじさん。好きなスタバオーダーはクワットロベンティノーホイップソイホワイトモカ。
TAG
- Android
- AWS
- Bitrise
- CodePipeline
- Firebase
- HTML
- iOS
- IoT
- JavaScript
- KPI
- Linux
- Mac
- Memcached
- MGRe
- MGReのゆるガチエンジニアブログ
- MySQL
- PHP
- PICK UP
- PR
- Python
- Ruby
- Ruby on Rails
- SEO
- Swift
- TIPS
- UI/UX
- VirtualBox
- Wantedly
- Windows
- アクセス解析
- イベントレポート
- エンジニアブログ
- ガジェット
- カスタマーサクセス
- サーバ技術
- サービス
- セキュリティ
- セミナー・展示会
- テクノロジー
- デザイン
- プレスリリース
- マーケティング施策
- マネジメント
- ラボ
- リーンスタートアップ
- 企画
- 会社紹介
- 会社紹介資料
- 勉強会
- 実績紹介
- 拡張性
- 採用
- 日常
- 書籍紹介
- 歓迎会
- 社内イベント
- 社員インタビュー
- 社長ブログ
- 視察
- 開発環境