2020/10/21 : GA4でBigQueryにデータを簡単に送れるようになりました。
これまでGoogleアナリティクスのローデータを使って予測やレコメンドのモデル作成に使う場合は、ローデータ形式になるようなカスタムレポートを作成して、それをPythonなどでループで取得するのが主なやり方(他にもやり方はあるとは思いますがなかなか面倒)でした。
それが今回、Googleが新しいプロパティ形式のWeb + Appプロパティをリリースしたことで、GoogleアナリティクスのWebデータもBigQueryに出力することが可能になりました。
今回はその手順を紹介していきますが、Googleアナリティクスのアカウントとプロパティ作成手順は省略します。
Firebaseでプロジェクトを作成
「なんでWebなのにFirebaseを使わないといけないの?」と思う方がいるかも知れません。今回のポイントがFirebaseなのです。
簡単に説明すると、
Webサイト→Firebase→(Googleアナリティクス & BigQuery)
という流れでデータが送られるようになります。そのため、 Firebase が必須となります。
それではまずは Firebase にてプロジェクトを作成します。
「プロジェクトを追加」をクリックします。
プロジェクトに名前をつけます。なんでも構いませんが、ドメイン名+○○というようにした方がわかりやすいです。
つづいて、Googleアナリティクスとの紐付けを行います。「このプロジェクトでGoogleアナリティクスを有効にする」にチェックを入れて、「続行」ボタンをクリックします。
するとGoogleアナリティクスのプロパティ一覧が表示されますので、そこから追加したいプロパティ先を選ぶか、「新しいアカウントを作成」を選択します。そのWebサイトのプロパティを作成済みならば、そのプロパティを選んでも全く問題ありません。
「新しいプロジェクトの準備ができました」と出たら無事完成です。
今作成したプロジェクトのホーム画面に遷移するので、左上の「プロジェクトの概要」の右側にある歯車をクリックします。そして「プロジェクトを設定」をクリックします。
Firebaseの料金設定を変更
GoogleアナリティクスもFirebaseも通常は無料ですが、BigQueryにFirebaseからデータを出力する場合は、Firebaseの料金設定を変更する必要があります。Firebaseの料金設定についてはFirebaseの料金設定で確認できます。
Firebaseのホーム画面の左側のメニューの下に「Spark」と書かれた箇所がありますので、そこをクリックすると料金プランのポップアップが表示されますので、「Blaze・従量制」を選択します。
Firebase→BigQueryに転送すること自体は費用はほとんどかかりません。BigQuery側でのデータの保管料とクエリ(SQL)の実行にかかる費用が発生します。
次に、費用の請求先を設定します。画面の下に「ご請求先」と表示されますが、BigQueryなどのGCP(Google Cloud Platform)を使用したことがない場合はここで請求先のアカウントを作成する必要があります。
今回は省略しますので、詳しくはCloud 請求先アカウントの作成、変更、閉鎖(Google)を参照願います。
Androidダミーアプリの登録
「アプリが必要なの??」と思う方もいるかも知れませんが、実際にはアプリは不要ですが、アプリの登録が必要です。
Firebaseのプロジェクトのホーム画面から左上の「プロジェクトの概要」の右側にある歯車をクリックし、「プロジェクトのを定」をクリックします。
次に「全般」をクリックして、画面の下の方にある「マイアプリ」の中にあるAndroidのアイコンをクリックします。
アプリを登録しますが、「Androidパッケージ名」は適当で構いません。入力後「アプリを登録」ボタンをクリックします。
続いて下記のような「設定ファイルのダウンロード」が出てきますが、無視して「次へ」をクリックします。
すると「Firebase SDKの追加」や「アプリを実行してインストールを確認」の項目に移りますが、ここも無視して右下にある「このステップをスキップ」をクリックして終了します。
FirebaseとBigQueryの連携
プロジェクトのホーム画面から先程と同様に「プロジェクトの概要」の右側にある歯車をクリックします。そして、「統合」タブをクリックするとその下に「BigQuery」が表示されますので、クリックします。
「FirebaseとBigQueryのリンク」が表示されますので、「次へ」をクリックします。
続いて「エクスポートに広告IDを含める」にチェックを入れて、下にある「BigQueryにリンク」をクリックします。
Googleアナリティクスの設定
Googleアナリティクスへ行き、今回選択(もしくは作成)したアカウントを開きます。そこに新しいプロパティが作成していれば成功です。たまに作成に時間がかかりますので、見つからない場合は数十分時間をおいてから再確認してください。
新しく作成されたプロパティをクリックします。
左下の歯車をクリックし、右側に表示される「プロパティ」の中から「データストリーム」をクリックします。
すると、右側に「ストリームを追加」というボタンがあるので、そこから「ウェブ」を選択します。
「データストリームの設定」が表示されますので、URLやストリーム名(何でもOK)を入力します。さらに、「測定機能の強化」にもチェックを入れ、「ストリームを作成」をクリックします。
すると、前の画面に戻り、「データストリーム」に今作成したWeb用のデータストリームと先ほど設定したAndroidのダミーデータが登録されていればOKです。
Googleタグマネージャー(GTM)の設定
最後に、タグマネージャーの設定になります。Googleアナリティクスの設定画面でタグマネージャーでの設定方法が記載されています。ここの上部にある「測定ID」(G-XXXXXX)をコピーしておいてください。
まずは、Googleタグマネージャーへ行き、現在使用しているコンテナーを開きます。(新規に作成しても問題ありませんが、既存の他のタグも使う可能性がある場合は既存のコンテナーを選んだほうが良いでしょう)
左側のメニューから「タグ」をクリックして、右上の「新規」をクリックします。
「Googleアナリティクス:アプリ+ウェブの設定」を選択します。
名前は何でも構いません。測定IDに先程Googleアナリティクスでコピーしておいた G-XXXXXX を貼り付けます。トリガーは「All Pages」を選択します。
最後に、このタグを公開したら設定は終了です。
BigQueryのテーブル例
一定時間が経過するとBigQueryのテーブルにデータが溜まっていきます。
Datasetは今回 analysis_プロパティIDで、テーブル名はevents_YYYYMMDDとなります。 テーブルのスキーマについてはBigQuery Export のスキーマを参照してください。 具体的には1つのイベント(ページビューやイベント、セッションの開始等)毎に1行追加されています。
なお、BigQueryに初めて触れる方には少々わかりにくいのが配列とSTRUCTです。BigQueryは普通のテーブルとは違い、カラムの中に配列や構造体を持つことができます。
※構造体はカラムの中に複数のカラムを持つようなものとイメージしてください。
BigQueryのテーブル構造や扱い方については改めて紹介したいと思いますので、ご質問等ありましたらコメントしていただけると嬉しいです。
2020/11/26: 配列を使うのに必須のUNNESTの使い方について記事を作成しました。