天気データをGoogleアナリティクスに取り込むメリット

ビジネスの売上やWebサイトの訪問数に気象データが関わっているケースは決して少なくありません。例えば、デリバリーサービスであれば雨の日に多くの売上が上がるケースが多いでしょう。また、空港や航空会社のWebサイトは大雨や雪、台風などの荒天のときに多くのサイト訪問が発生すると思います。ビールの売り上げが気温に結びついている可能性も考えられます。

デフォルトのGoogleアナリティクスの機能ではこれらの天気データに結びつけて分析することはできないですが、自分でデータを準備してGoogleアナリティクス上にデータを入れてしまえばそんな分析も可能になります。

データインポートとは?

Googleアナリティクスのデータインポート機能は、オフラインデータと計測データを紐付けるための仕組みです。オフラインデータは、CSVファイルのアップロードによって登録します。また、手動によるアップロードだけでなく、APIによるアップロードも可能なため、定期的なデータ更新も可能です。

やってみよう

全体の構成

今回の記事では手軽に天気データをGoogleアナリティクスに取り込み、分析できる状態にすることを目標としています。そのため、無料で今すぐ始めれるような構成を目標とするため、下記の内容を想定しています。必要に応じて、他の技術に置き換えて実行してもらっても構いません。

  • 利用するAPIは無料で利用できるもを使用
  • APIの呼び出しからデータのアップロードまでGoogleスプレッドシートのAppsスクリプトを使用
  • 天気データは都道府県単位に設定する(市区町村単位で設定するとデータ量が膨大になり, Appsスクリプトでの処理が困難なため)

利用する天気データAPIの決定

気象データを取得してくるには、データを提供している事業者のAPIを利用する必要があります。APIを提供しているサービスを調べると下記の表のようなサービスがみつかります。見ての通り、商用利用を禁止していたり、有料のAPIがほとんどです。無料で商用利用となると、Open Weather Map一択のようです。今回の記事もOpen Weather Mapを想定して進めます。Open Weather MapのAPIは無料で利用できるものの、ユーザー登録を行って、アプリケーションIDの発行を行うのが推奨されていますので、ユーザー登録とアプリケーションIDの発行を行ってください。

サービス名 個人利用 商用利用
Weather Hacks 不可
tenki RSS 法人運営は不可
Yahoo!天気・災害RSS 不可
天気予報API 不可 有料
コンテンツポケット 不可 有料
Wave Hunter 不可 有料
Open Weather Map 可(有料プランも有)

Googleアナリティクスに天気データをセットするディメンションを作成

天気データをディメンションとして見れるようにするために、カスタムディメンションを作成します。カスタムディメンションの作成方法については既に多くの記事が出ているので、割愛しますが、設定内容としては、以下を想定しています。

項目 設定値
名前 天気データ
範囲 セッション
アクティブ チェックあり

データインポートのためのデータセットを準備する

データインポートについては、情報源が少ないと思うため、少し丁寧に説明していきます。

アナリティクス設定から「データのインポート」を選択

「データのインポート」メニューから「+新しいデータセット」をクリック

データセットのタイプの選択画面で、「地域データ」を選択し、次のステップに

データセットの詳細の名前欄はわかりやすいもの(ここでは「天気データ」)を, 有効なビューを指定します(基本的には全てのビューを指定で問題ありません)

データセットスキーマの設定で、キーとなる項目(ディメンション)とインポート格納先の項目(ディメンション)を選択します。ここでは、キーに「地域ID」を指定し、インポートしたデータでは「天気データ」(カスタムディメンションで作成したディメンション名)を登録します。

そして、「ヒットデータを上書きする」については今回はどちらでも構いませんが、「はい」を選択しておきます

最後に、「カスタムデータソースIDを取得」ボタンをクリックし、ID文字列を控えておきます。ID文字列は後ほど利用します

スプレッドシートにデータの雛形を準備する

気象データや地域データを一時的に保管するためのGoogleスプレッドシートを作成します。今回は簡単に作成できるように、雛形を準備しました。下記のURLからスプレッドシートを開き、自分のGoogle Doscにコピーしてお使いください。

雛形スプレッドシート共有URL

このスプレッドシートには、2つのシートがあります。「Data」シートは、地域データとそれぞれの地域における現在の気象データを一時的に保管するためのシートになっています。「Configuration」シートは、Googleアナリティクスに気象データをアップロードするために必要な設定項目があります。

スプレッドシートをコピーして、自分用のものを作成したら、Configurationシートを表示させて、設定項目を自分のGoogleアナリティクスの情報に合わせて変更していきます。またここまでのステップで取得した、Open Weather MapのAPIを利用するためのアプリケーションIDやGoogleアナリティクスのデータインポート用のカスタムデータソースIDもConfigurationシートに入力してください。

スプレッドシートのスクリプトの動作状況をチェックする

Googleスプレッドシートのメニューに「GA天気インポート」があるはずです。この「GA天気インポート」内の「手動実行」をクリックすることで、インポート処理を最後まで実行することができます。少し待つと、E列に各地域ごとの天気データがAPI経由で取得され設定されると思います。また、Googleアナリティクスとの連携が問題なければ、Googleアナリティクスの「アナリティクス設定>プロパティ>データのインポート>アップロードを管理」に、データが追加されていることが確認できると思います。

もし、Googleアナリティクスにデータがアップロードされない場合は、Configurationシートに入力した設定内容が正しいかや、GoogleアナリティクスのAPI周りの権限について調べてみるといいと思います(GoogleアナリティクスのAPI権限については, 追って別の記事を書きます)。

アップロードまで問題なく実行できれば、あとはこの処理を自動で定期的に実行するだけです。では、スプレッドシートメニューの「GA天気インポート」内の「トリガーの登録」をクリックしてください。トリガーが設定され、毎日6時間ごとに天気データのアップロードを行います。アップロードされる時間は、0-1時、6-7時、12-13時、18-19時となっています。
もし、一時的に自動実行を停止したいときは、同じメニューの「トリガーの削除」を選ぶことで、自動実行を止めることができます。

まとめ

Googleアナリティクスの「データのインポート」機能を使えば、天気データをGoogleアナリティクスに取り込むことも意外と簡単にできるんだ!と思っていただければ幸いです。「データのインポート」機能自体は、まだまだ情報が少ない機能ですが、使いどころさえ分かってしまえば非常に協力な武器になります。他にも様々なデータを取り込んで、解析を行ってみましょう。