Google Analytics Data API を使用すると、Google Analytics 4(GA4)のレポートデータにプログラムからアクセスできます。Google Analytics 4 は、Web、iOS、または Android アプリの利用状況を把握するのに役立ちます。
- Treasure Data の基礎知識
- Google Analytics 4(GA4)の基礎知識
- Google Analytics 4 アカウント
Google Analytics 4 アカウントまたはサービスアカウント JSON キー
OAuth の使用が最も一般的な方法です。この方法では、セットアップ手順が少なくて済みます。このセクションの残りの部分をスキップして、TD Console に直接移動できます。
実装によっては、JSON キーの使用が必要になる場合があります。この方法では、Google API コンソールからのセットアップ手順が必要です。
Google API Console を開きます: https://console.developers.google.com
API 経由でアクセスしたい Google アカウントにサインインします。
NEW PROJECT を選択します。

- プロジェクトに名前を付けます。

Create を選択します。
Google Analytics Data API v1 を有効にします。プロジェクトの APIs & Services に移動し、+ ENABLE APIS & SERVICES を選択します。

- Library ページから、Google Analytics Data API を検索して入力し、Enter キーを押します。

- Google Analytics Data API を選択します。

- Enable を選択します。

新しいサービスアカウントを作成するために、Service account にアクセスします。
APIs & Services から、Credentials を選択し、次に Service account を選択します。
ステップ 1 のフィールドに入力して、サービスアカウントを作成します。2 つのオプションパラメータはスキップできます。

Done を選択します。
Actions タブを選択します。

- keys を選択します。

- Add key プルダウンから、Create new key を選択します。

- ローカルマシンにダウンロードする JSON キータイプを選択し、Create を選択します。

- 秘密鍵がコンピュータに保存されたという通知が表示されます。ファイルは安全な場所に保管してください。

- 秘密鍵情報を使用して、インテグレーションの設定ファイルを編集します。ファイルは次のようになります。
{
"type": "service_account",
"project_id": "central-stream-314923",
"private_key_id": "94d03bf7dd9c05bc122c695d1aa13f2a8a28f88e",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w**********************AoIBAQCNhAICLr/dozCQ\nTW9ZNMNJ6RF+fVqhd0FUbw0VBIwy6BWu/LuaocJrzl2DHChAl0PNvGCDUAObBTRz\nbUT/HOu47q**********7ENGK\nOir9VChG+Qubq25bAtOq/yTVEPJgnj*******AGVjojVnK4f\n2YtW6ti7xBPwFBF1RPY56yTDeVQVko+KK3x+LFS+lTj1+jBBjvedWHrpQQfRHqV/\nVtXyKyDybQlnfAOucMHzMxjQVLN4f9D7JVxCe52Wp7RaALCIdkKDqN/ffkNMF9QT\nCjffudeTAgMBAAECggEAFMQnS0yy6QI2cSZ7zXpZofHqmEYq04DdfFdjcw8cx6eY\n7vm1Seas0gcRX9j06y2HTJx1CS/np4rm/H0vX8RNrvCPYXrOJzUG2DOnW9pwi9Hl\nKb1Z0VErenzy/em78BI958fXIJ4vv5pjNUZ94njEBE4tbuWEJyTODMyuCfoXpye4\nkCDY6DJFxDKUA7tZOTcK3t0YiVV0O2MwcUhJdr107kw4F1HXY/mlh87ki5z3tMy0\nISBKjvau2aWf0SVLZHtlo88JZGUak7tkuxnWaXQN+dUo1rZWKj867pBT4KWXzAbJ\nUVQ7pBrDFri90fNQ5XFsQdS//dO2pFEn+1Aum86Q0QKBgQDB4RHjBWdJ3eMyvWWi\nipdCx4gC6G5Hqjt+icKv9yddyV/WvuMH82xDAHUJJBzaj9I45O5D+07O6TZO8CkZ\n6Tqq92N3HEkHZWiUTo91C4qbO4ai5SXxpnWn5gsYc+JYPqNp1b+T1gZjA4Pj8l+t\neJ7VDGxu0tjK17Vj13turImXCQKBgQC629KRpvq9FAIWuA8NAXBSeqNyzktPVdOZ\n5GJvwCevVzIapvwZPoZTaJ6xehta1hrR859ZReZx/j7ntoOjAjGw1rS//T5N98Hf\nt+JpCemAa5ApcoUBAXmlb80jIHysRBgMUTLcTKnZuFT3RwsD1xtXjRct0doIF8EC\nd8RLE7FkuwKBgQCJSuGIuwXWqBtAjiBPxwawUm29aWzWsPTqeZF1XHbzEiwc/RX2\nRmmu1L8MFxebqmb6xRr45xh6q2k64xSn9aIG+aLk8RHB/AzfoPYzs1WW8cM4zT5e\nbjs5B01qJn3tcYX051l/zfq92Ppny/X2+Mi5I9ARdpvwoGoh5rDQwbu5SQKBgHx8\naGtKsC75Pm7+TmCevcLlGzEoCHohNqiGw6GphYbF84ZYCwmSYxD8WQTp0YGRtCp9\nQILME7uL40KhkE8v7gTe9WoWf8SXs5ykt/y8cshwYImMVtmVrwItWp/1S7nEX7UM\n/3JOzLVUnZ5jwQ3c58VLJM8MyFGt6ZMIUUinJP5zAoGAICmOlDqPWR2RXPo+9SkN\nok82AjvsjeUMDsiCkEVsAQMBZkYbND0047BAg7STqVjIaJg0zYFvQ5oow5zgu1lk\n46nxtfQm3U58lILErGsmClxcOZR2nO7kvm0PJMUgENADGhP5pqE+8w+e4JC45Ojw\nX7X+hhL/a7pu2Un9O/rXZVM=\n-----END PRIVATE KEY-----\n",
"client_email": "meg-td-service-account@central-stream-314923.iam.gserviceaccount.com",
"client_id": "117460147437348814027",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/meg-td-service-account%40central-stream-314923.iam.gserviceaccount.com"
}}
#### Google Analytics 4にサービスアカウントを追加する
Google Analytics 4にサービスアカウントを追加するには、前のステップで取得したJSONキーファイルが必要です。Google Analytics Data API v1を介してアクセスするGA4プロパティにユーザーを追加するには、Analyst権限が必要です。
1. テキストエディタで`json key`ファイルを開き、`client_email`フィールドを検索してサービスアカウントのメールアドレスを取得します。次のようなアドレスになります: `"client_email": "meg-td-service-account@central-stream-314923.iam.gserviceaccount.com"`
2. Google Analytics [https://analytics.google.com](https://analytics.google.com/)にサインインします。
3. **Admin**を選択し、目的のアカウント/プロパティに移動します。

4. AccountまたはPropertyペイン(アカウントレベルまたはプロパティレベルのどちらでユーザーを追加するかによって異なります)で、**Access Management**を選択します。
5. Account permissionsリストから+を選択し、**Add users**を選択します。

6. jsonキーから控えておいたメールアドレスを入力します。**Viewer**ロール以上(Analyst、Editor、Administrator)を選択します。**Add**を選択します。これで、サービスアカウントがGoogle Analytics Data APIを介してGoogle Analytics 4を使用できるようになりました。

### Google AnalyticsからProperty IDを取得する
Treasure Dataにデータをインポートするには、Property IDが必要です。
1. Google Analytics <https://analytics.google.com/>にサインインします
2. Adminを選択し、目的のアカウント/プロパティに移動します

3. Property IDを取得またはコピーします。これはTreasure Data Import Dataの作成に必要です。
### Google Analyticsからカスタムディメンションまたはカスタム指標名を取得する
カスタムディメンションやカスタム指標を作成して、データをカスタマイズすることができます。
1. Google Analytics [https://analytics.google.com](https://analytics.google.com/)にサインインします。
2. **Admin**を選択し、目的のアカウントに移動して**Configure**を選択します。

3. **Custom definitions**を選択します。


カスタムディメンションまたは指標名は、次のように連結して取得できます: custom{Scope}:{dimension or metric name}
例えば、前の画像では*カスタムディメンション名*にcustomUser:test\_cs\_dimensionを使用し、*カスタム指標名*にcustomEvent:test\_cs\_metricを使用しています。
## TD ConsoleからData Connectorを作成する
### 新しい認証を作成する
Treasure Dataでは、クエリを実行する前にデータ接続を作成して構成する必要があります。データ接続の一部として、統合にアクセスするための認証情報を提供します。
1. **TD Console**を開きます。
2. **Integrations Hub** > **Catalog**に移動します。
3. Google Analytics Data APIを検索して選択します。

4. **Create Authentication**を選択します。
5. 次のいずれかの認証方法を選択します:
### ソースの作成
認証接続を作成すると、自動的に Authentications に移動します。
Google Analytics 4 からディメンション、メトリクス、またはカスタムディメンション、カスタムメトリクスの情報を入力する必要があります。ディメンションとメトリクスのリストについては、<https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema> を参照してください。
1. 作成した接続を検索します。
2. **New Source** を選択します。
3. Data Transfer フィールドに **Source** の名前を入力します。**Next** を選択します。
4. Source Table ダイアログが開きます。ディメンションまたはカスタムディメンション、およびメトリクスまたはカスタムメトリクスの情報を提供する必要があります。


5. 以下のパラメータを編集します:
| Parameters | Description |
| --- | --- |
| Property ID | GA4 プロパティ ID。**Google Analytics からプロパティ ID を取得する** セクションを参照してください |
| Report Mode | Basic または Advanced レポート。Advanced レポートを作成する場合は、<https://developers.google.com/analytics/devguides/reporting/data/v1/advanced> を参照してください |
| Dimensions | ディメンションまたはカスタムディメンション名。ディメンションのリストについては <https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema> を参照し、カスタムディメンションのリストを取得するには **Google Analytics からカスタムディメンションまたはカスタムメトリクス名を取得する** を参照してください。例: - audienceId - customUser:test\_cs\_dimension |
| Metrics | メトリクスまたはカスタムメトリクス名。メトリクスのリストについては <https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema> を参照し、カスタムメトリクスのリストを取得するには **Google Analytics からカスタムディメンションまたはカスタムメトリクス名を取得する** を参照してください。例: - promotionViews - promotionClicks - customEvent:test\_cs\_metric |
| Start Date | レポートデータのクエリを開始する日付。サポートされる形式:YYYY-MM-DD、today、yesterday、NdaysAgo。パラメータ値は大文字と小文字を区別します。例: - 2022-03-12 - today - yesterday - 4daysAgo |
| End Date | レポートデータのクエリを終了する日付。サポートされる形式:YYYY-MM-DD、today、yesterday、NdaysAgo。パラメータ値は大文字と小文字を区別します。例: - 2022-03-12 - today - yesterday - 4daysAgo |
| Advanced Payload | JSON 形式の Advanced レポート定義。詳細については <https://developers.google.com/analytics/devguides/reporting/data/v1/advanced> を参照してください。例:`{ "metrics": [ { "name": "cohortActiveUsers" } ], "dimensions": [ { "name": "cohort" }, { "name": "cohortNthWeek" }, { "name": "country" } ], "cohortSpec": { "cohorts": [ { "dimension": "firstSessionDate", "dateRange": { "startDate": "2022-10-04", "endDate": "2022-10-10" } } ] } }` |
例:

6. **Next** を選択します。

7. **Next** を選択します。
#### データプレビュー
データプレビューはオプションであり、必要に応じてダイアログの次のページに進むために **Next** をクリックしても問題ありません。
1. インポートを実行する前にデータのプレビューを表示するには、**Generate Preview** を選択します。
データプレビューに表示されるデータは、ソースから近似されたものです。実際にインポートされるデータではありません。
2. データがおおよそ期待通りに見えることを確認します。

3. **Next** を選択します。
#### データ配置
データ配置では、データを配置するターゲットのデータベースとテーブルを選択し、インポートを実行する頻度を指定します。
1. **Next** を選択します。
Storage で、インポートしたデータを配置する新しいデータベースを作成するか既存のデータベースを選択し、新しいテーブルを作成するか既存のテーブルを選択します。

2. **Database** を選択 > **Select an existing** または **Create New Database** を選択します。
3. オプションでデータベース名を入力します。
4. **Table** を選択 > **Select an existing** または **Create New Table** を選択します。
5. オプションでテーブル名を入力します。
6. データをインポートする方法を選択します。
- **Append**(デフォルト)- データインポート結果がテーブルに追加されます。
テーブルが存在しない場合は、作成されます。
- **Always Replace** - 既存のテーブルのコンテンツ全体をクエリの結果出力で置き換えます。テーブルが存在しない場合は、新しいテーブルが作成されます。
- **Replace on New Data** - 新しいデータがある場合にのみ、既存のテーブルのコンテンツ全体を結果出力で置き換えます。
7. **Timestamp-based Partition Key** カラムを選択します。
デフォルトキー以外のパーティションキーシードを設定したい場合は、long または timestamp カラムをパーティショニング時間として指定できます。デフォルトのタイムカラムとして、add\_time フィルターを使用した upload\_time が使用されます。
8. データストレージの **Timezone** を選択します。
9. **Schedule** で、このクエリを実行するタイミングと頻度を選択できます。
#### Run once
1. Select **Off**.
2. Select **Scheduling Timezone**.
3. Select **Create & Run Now**.
#### Repeat Regularly
1. Select **On**.
2. Select the **Schedule**. The UI provides these four options: *@hourly*, *@daily* and *@monthly* or custom *cron*.
3. You can also select **Delay Transfer** and add a delay of execution time.
4. Select **Scheduling Timezone**.
5. Select **Create & Run Now**.
After your transfer has run, you can see the results of your transfer in **Data Workbench** > **Databases.**
## ワークフローを使用したインポート
SOURCE を既に作成している場合、ワークフローの td\_load>: オペレーターを使用して Google Analytics 4 からデータをインポートできます。
1. TD Console で、**Integrations Hub** > **Sources** に移動します。

2. コネクターを選択し、その他メニュー(…)を選択します。**Copy Unique ID** を選択します。
td\_load> オペレーターを使用してワークフロータスクを定義します
| |
| --- |
| `+load:` `td_load>: unique_id_of_your_source` `database: ${td.dest_db}` `Table: ${td.dest_table}` |
ワークフローを実行します