GA4アカウント、プロパティ作成～カスタムディメンション設定をGoogleシートで一括作成

# GA4の設定はとてもわかりにくい
GA4のアカウントやプロパティを作成する際、毎回GA4の管理画面にアクセスして1つ1つ設定するのは面倒ではないでしょうか？
そこで今回はGA4のアカウントやプロパティ作成、ユーザー登録、カスタムディメンションやキーイベントの登録まで基本的な設定をGoogleシートで行えるようにしてみました。

今回は実際に[Googleシート](https://docs.google.com/spreadsheets/d/1y7q14i0l5T9VJDb5VUXPfj9QOqHKuAvdiSNGkDKposc/edit?usp=sharing)を使って作成する方法を紹介します。

# Googleシートをコピー
まずは、[Googleシート Create GA4 properties - template](https://docs.google.com/spreadsheets/d/1y7q14i0l5T9VJDb5VUXPfj9QOqHKuAvdiSNGkDKposc/edit?usp=sharing)をご自身のGoogleドライブにコピーします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/b2c87d6b-d476-b689-1aa3-812d007a93e0.png)

コピーしたGoogleシートを開き、メニューに「GA4」が表示され、その下には「アカウント」、「プロパティ」などが表示されることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/df65e909-5584-2100-4acd-5c74c796abcb.png)

## メニューが表示されない場合
メニューが表示されない場合はGoogle Apps Scriptを編集する必要があります。
1. 拡張機能＞Apps Scriptを選択して、Apps Scriptを開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/764339b6-4839-8202-698f-6e4488f9a4e0.png)

2. サービスに「AnalyticsAdmin」があることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/22a45ffc-b77a-45ea-4d6e-f06e5f45d79c.png)
追加されていない場合は、手動で追加します。サービスの右側の＋ボタンをクリックして、「Google Analytics Admin API」を選択します。バージョンは「v1alpha」、名前はそのまま「AnalyticsAdmin」として追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/e6ef0edc-07ec-9579-86f5-509f0ed1747c.png)


3. ライブラリに「CreateGA4Properties」があることを確認 　
追加されていない場合は、手動で追加します。ライブラリの右側の＋ボタンをクリックして、
スクリプトIDに「1Ix1XZBnCaCLlTr6NITpptAtkWJga8WBWzsjXRcdx6WAYjVGLcWnqfcVf」を入力して検索します。すると、結果が表示されますので、バージョンは最新のものを選択し、名前はそのまま「CreateGA4Properties」として追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/f65925b3-5082-7491-77e1-646c3b26ac6c.png)

4. 関数を追加
メニューを表示させるための関数を追加します。以下のコードを貼り付けます。
```
/*!
* Copyright © 2025 pep4.net
* This software is licensed under the MIT License.
* For more information, see the LICENSE file.
*/
function onOpen() {
  onMenu();
}

function onMenu() {
  const ui = SpreadsheetApp.getUi();
  const locale = Session.getActiveUserLocale(); // ユーザーのロケールを取得
  const isJapanese = locale.startsWith('ja'); // ロケールが日本語かどうかを判定

  // メニューの作成
  const menu = ui.createMenu(isJapanese ? 'GA4 メニュー' : 'GA4 Menu'); // メニューの名前を切り替え
  Logger.log("Locale:" + locale +"\t" +isJapanese);
  // メニュー項目を追加
  if (isJapanese) {
    // サブメニュー1: アカウント関連
    const accountMenu = ui.createMenu('アカウント関連')
      .addItem('アカウントを作成', 'CreateGA4properties.runCreateAccounts')
      .addItem('すべてのアカウントを取得', 'updateAccountsSheet');

    // サブメニュー2: プロパティ関連
    const propertyMenu = ui.createMenu('プロパティ関連')
      .addItem('プロパティを作成', 'CreateGA4properties.runCreateProperties')
      .addItem('データストリームを作成', 'CreateGA4properties.runCreateDataStreams')
      .addItem('ユーザーを追加 & 権限を変更', 'CreateGA4properties.runCreateUsers')
      .addItem('キーイベントを追加', 'CreateGA4properties.runCreateKeyEvents')
      .addItem('カスタムディメンションを追加', 'CreateGA4properties.runCreateCustomDimensions')
      .addItem('カスタム指標を追加', 'CreateGA4properties.runCreateCustomMetrics');

    // サブメニュー3: 設定関連
    const settingsMenu = ui.createMenu('設定更新')
      .addItem('データ保持を更新', 'CreateGA4properties.runUpdateDataRetentionSettings')
      .addItem('アトリビューション設定を更新', 'CreateGA4properties.runUpdateAttributionSettings')
      .addItem('Google シグナルを更新', 'CreateGA4properties.runUpdateGoogleSignalsSettings');

    // メインメニューにサブメニューを追加
    ui.createMenu('GA4') // メインメニュー名
      .addSubMenu(accountMenu) // サブメニュー1を追加
      .addSubMenu(propertyMenu) // サブメニュー2を追加
      .addSubMenu(settingsMenu) // サブメニュー3を追加
      .addToUi(); // UI に追加
  } else {
    // サブメニュー1: アカウント関連
    const accountMenu = ui.createMenu('Account')
      .addItem('Create account', 'CreateGA4properties.runCreateAccounts')
      .addItem('Get All accounts', 'updateAccountsSheet');

    // サブメニュー2: プロパティ関連
    const propertyMenu = ui.createMenu('Property')

      .addItem('Create property', 'CreateGA4properties.runCreateProperties')
      .addItem('Create datastream', 'CreateGA4properties.runCreateDataStreams')
      .addItem('Add users & Change roles', 'CreateGA4properties.runCreateUsers')
      .addItem('Add key events', 'CreateGA4properties.runCreateKeyEvents')
      .addItem('Add custom dimensions', 'CreateGA4properties.runCreateCustomDimensions')
      .addItem('Add custom metrics', 'CreateGA4properties.runCreateCustomMetrics');

    // サブメニュー3: 設定関連
    const settingsMenu = ui.createMenu('Update')
      .addItem('Update data retention', 'CreateGA4properties.runUpdateDataRetentionSettings')
      .addItem('Update attribution setting', 'CreateGA4properties.runUpdateAttributionSettings')
      .addItem('Update Google signals', 'CreateGA4properties.runUpdateGoogleSignalsSettings');

    // メインメニューにサブメニューを追加
    ui.createMenu('GA4') // メインメニュー名
      .addSubMenu(accountMenu) // サブメニュー1を追加
      .addSubMenu(propertyMenu) // サブメニュー2を追加
      .addSubMenu(settingsMenu) // サブメニュー3を追加
      .addToUi(); // UI に追加    
  }
}
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/9985a439-249f-492d-a564-b3ea06729a88.png)

以上で設定は完了です。Apps Scriptを保存して先ほどコピーしたGoogleシートを再読み込みします。メニューに「GA4」が表示されればOKです。

# GA4アカウントの作成
1. accountシートのB列、C列に記入していきます。どちらも必須です。
   - B列：アカウント名
   - C列：地域（一覧から選択）
  複数アカウント作成したい場合は下の画像のように複数行入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/80d1b1d5-533a-3fe3-9206-004dcd2df982.png)

2. メニューから「GA4」＞「アカウント関連」＞「アカウントを作成」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/ee308211-3ffe-3d29-c276-30ddc9260e86.png)
実行すると下記のようなポップアップが表示されますが、無視してください。もし途中でやめたい場合は「Cancel」を押してください。ただし、すぐに終わらないので処理が進んでしまう可能性があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/3b10d2e5-db22-cb82-a058-827b2364cad3.png)
実行中にGoogleアカウントへのアクセス承認のポップアップが出た場合は、「OK」をクリックして承認を進めます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/1178d8f4-640d-ea07-9e63-d69483dbd0ec.png)
GA4アカウントを作成するときにアクセスしたいGoogleアカウントを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/48567f2b-df28-9ceb-a1cd-9cd894cc9436.png)
警告ウィンドウが表示される場合は、「Advanced」を選択し、さらに下に表示される「Go to Create GA4 properties - template 」をクリックして先に進みます。※ここの名前は変更される場合がありますが気にしないで進みます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/3951d0db-a8c8-4167-16fc-b9da6f73afc8.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/9064af39-ff1f-9fc5-06c7-97f5dbdd9c1e.png)

3. ポップアップにURLが表示されますので、そのURLをコピーして別のブラウザ（タブ）でそのページに進みます。なお、複数のGoogleアカウントですでにブラウザにログインしている場合は、該当するGoogleアカウントに合わせてURL内のauthuser=0の数字を1、2と変更して今回使用するGoogleアカウントに変更してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/32636e3a-c9fe-7dc6-e164-ec193f8c8958.png)
すると下記のようなページが表示されますので内容に同意して進みます。
※これを行わないとアカウントは作成されません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/e3044eda-a7aa-bb6b-6fde-6ef307459dbe.png)
4. このあと、ブラウザは無効なページにリダイレクトされますが、無視します。Googleシートに戻り、OKボタンを押します。
すると、下記のようにアカウント作成が完了したポップアップが表示され、GoogleシートにもアカウントIDが記入されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/d06e4916-7713-4f3f-afc7-89232d0cc9b0.png)

## GA4プロパティの作成
propertyシートに記入します。アカウントはaccountシートに記載されているものから選べます。もしaccountシートにないアカウントに対してプロパティを作成したい場合は、accountシートに手動でアカウントIDを入力します。
その他、プロパティ名などすべての項目を入力・選択します。データの保持（G列）以降はわからない場合はそのままで構いません。
複数のプロパティを作成したい場合は、下の行に続けて記載します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/511fa1ad-1cf4-5572-81d4-b348affd4539.png)
入力が完了したら先ほどのアカウントと同様にメニューから「GA4」＞「プロパティ関連」＞「プロパティ作成」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939399/12effc9b-aceb-9409-2c4d-daddeffc423e.png)
成功するとポップアップが表示され、「property」シートのA列にプロパティIDが挿入されます。