全てのプロパティでGA4のオプトアウトを一括で行う方法

オプトアウトについて

Google Analytics (UA) のプロパティが存在する場合、2023年2月28日までに「オプトアウト」を行わなければ自動的にGA4のプロパティが作成されてしまいます。

何が問題なのか

既にそのUAプロパティのサイトを対象とするGA4プロパティを作成している場合、一時的にGA4プロパティが二つになってしまい、削除する手間が発生します。
また、GA4プロパティを作成し、UAと紐づけをしている場合、そのGA4プロパティの設定に対し勝手に追加・変更が行われてしまう可能性があるため注意が必要です。

詳細は公式ページをご覧ください。
support.google.com – [UA→GA4] 自動作成された Google アナリティクス 4 プロパティについて

上記の理由により、既にGA4プロパティを作成済みの場合はオプトアウトを行いたい方も多いと思いますので、この記事ではオプトアウトを行う方法を画像付きで説明いたします。

手動でオプトアウトを行う方法

まず、手動でオプトアウトを行う方法を解説します。
方法は下記の通りです。

1. UAの適当なビューを開き、「管理」→プロパティの列にある「GA4設定アシスタント」を開きます。

2. 一番下の「Google アナリティクス 4 プロパティ(基本設定)を自動作成する」がデフォルトではONになっています。
画像赤枠のスイッチをクリックすることでON, OFFを切り替えることができます。

以上が、手動でオプトアウトを行う方法です。
管理しているサイトが少ない場合はこちらの方法で問題ないと思いますが、多い場合はUAのプロパティごとにこの作業を行う必要があり、大変です。

そこで、次の項では自動でオプトアウトを行う方法をご紹介します。

自動でオプトアウトを行う方法

自分が管理している全てのアカウントの全てのプロパティで、一括でオプトアウトを行う方法です。

前提

一つのGoogle アカウントが、自動でオプトアウトを行いたい全てのUAアカウントのアクセス管理において、編集者以上の権限を持っているものとします(以下ユーザーAとします)。

流れ

大まかな流れは下記の通りです。
1. Google スプレッドシートを作成する。
2. そのスプレッドシートでGASを作成する。
3. GASからGoogle Analytics APIを利用して実行者のアカウントリスト・プロパティリストを取得し、Google Analytics Admin APIを利用してオプトアウトを行う。

※注意!
このプログラムの肝となるオプトアウトを操作する「Google Analytics Admin API」はα版(2023年2月16日現在)の関数を利用していますので、破壊的な変更が行われ動作しない、もしくは予期せぬ動作をする可能性があります。
公式ドキュメントをご確認の上、ご自身の責任で利用をお願いいたします。
developers.google.com – アナリティクス管理サービス

手順

まず、動作した場合に対象となるプロパティの一覧を表示するドライランを行う方法を説明します。

1. ユーザーAでログインし、Google スプレッドシートを作成します。タイトルはつけてもつけなくても構いません。
2. スプレッドシートの「拡張機能」→「Apps Script」とクリックします。
3. APIを利用するので左カラムの「サービス」の右にあるプラスボタン「+」をクリックします。

4. 「Google Analytics Admin API」をクリック、バージョンを「v1alpha」に変更、追加ボタンで追加します(IDはそのままにしてください)。

サービスの下に「AnalyticsAdmin」が追加されたと思います。もう一つサービスを追加します。
5. サービスの+を押し、「Google Analytics API」を追加します。バージョン・IDはそのままにしてください。

サービスの下が画像のようになっていればOKです。

6. GASのコード部分にある myFunction 関数を削除して、下記を貼り付けます。

const DRY_RUN = true
const SKIP_ACCOUNT_ID_LIST = [
  // '12345678',
  // '23456789',
]
function myFunction() {
  if (DRY_RUN) {
    console.log("DRY RUN")
  } else {
    console.log("RUN")
    Utilities.sleep(5000)
  }
  const accounts = Analytics.Management.Accounts.list()
  // printObj = {
  //   accountId: {
  //     webPropertyId: webProperty.name,
  //     webPropertyId: webProperty.name,
  //     ...
  //   },
  //   accountId: {
  //     ...
  //   },
  //   ...
  // }
  let printObj = {}

  // アカウントIDごとに処理
  accounts.items.forEach(function (account) {
    let printObjProperties = {}
    let accountId = account.id
    if (SKIP_ACCOUNT_ID_LIST.includes(accountId)) {
      console.log('スキップリストに含まれているためスキップします。アカウントID: ' + accountId)
      return
    }
    let webProperties = Analytics.Management.Webproperties.list(accountId)
    webProperties.items.forEach(function (webProperty) {
      // GA4 プロパティは internalWebPropertyId を持たないため何もしない
      if (! webProperty.hasOwnProperty('internalWebPropertyId')) return

      let webPropertyId = webProperty.internalWebPropertyId
      printObjProperties[webPropertyId] = webProperty.name
      // オプトアウトのリクエスト
      if (! DRY_RUN) optOutRequest(webPropertyId)
    })
    if (! Object.keys(printObjProperties).length) {
      printObj[accountId] = {0: 'このアカウントにはGA4プロパティしか存在しません。'}
    } else {
      printObj[accountId] = printObjProperties
    }
  })
  console.log(printObj)
}

// 引数で指定したプロパティにオプトアウトの設定リクエストを送信する。
// isOptOut ... 真偽値。true にすると、「Google アナリティクス 4 プロパティ(基本設定)を自動作成する」設定が OFF になり、false なら ON になる。
function optOutRequest(internalWebPropertyId, isOptOut = true) {
	AnalyticsAdmin.Properties.setAutomatedGa4ConfigurationOptOut({
		"property": "properties/" + internalWebPropertyId,
		"optOut": isOptOut
	})
}

7. DRY_RUN 定数が「true」となっていることを確認し、「実行」ボタンでmyFunctionを実行します。

8. 初回実行時には画像の確認ウィンドウが表示されます。「権限を確認」を押します。

9. GoogleアカウントのAuthが動作するのでログイン→許可と進みます。GASが動作し、実行ログにプロパティの一覧が出力されます。

10. 「実行ログ」に表示されたプロパティの一覧を確認し、対象のプロパティに問題がない場合は DRY_RUN 定数を「false」とし、実行してください。実際にプロパティの設定が変更されます(オプトアウトされます)。

特定のアカウントを対象外としたい場合は、ドライランで確認したアカウントIDを SKIP_ACCOUNT_ID_LIST 定数で指定してください。
特定のプロパティを対象外としたい場合は想定していませんが、アカウントIDと同様に実装すれば良いかと思います。

まとめ

オプトアウトの期限である2月28日まであとわずかとなりましたが、APIを利用して一括でGA4のオプトアウトを行う方法を紹介しているサイトが見つからなかったため執筆しました。

多数のサイトを運用している方は、是非ご利用ください。

タイトルとURLをコピーしました