こんにちは、中都です。
Google広告のデータを毎日BigQueryに残したいなら、Google標準の「BigQuery Data Transfer Service」で自動転送を設定できます。転送元にGoogle Adsを選び、広告アカウント・保存先・更新スケジュールを指定する方法です。設定自体にSQLやプログラムを書く必要はありません。
以前、Google広告のデータをスプレッドシートへ連携する方法を紹介したところ、「そのままBigQueryに連携する方法も知りたい」という声をいただきました。今回は、設定から転送されたデータの確認まで、順番に説明していきます。
動画でも解説しています
Google広告をBigQueryに蓄積すると、何が楽になる?
毎週の広告レポートを作るとき、こんなところで手が止まっていませんか?
- データを集め直すのが手間:Google広告からCSVを出し、日付をそろえ、シートへ貼り付ける作業を繰り返している。
- 細かく分析するとシートが重い:日別・キーワード別・デバイス別に残すと、行数が増えて扱いづらくなる。
- 広告とほかのデータを一緒に見たい:GA4やCRMのデータと、保存する場所がばらばらになっている。
正直、手元のデータに関数を組んで分析するなら、僕はスプレッドシートも好きです。ただ、キーワード別のデータを日別・デバイス別に分けて残していくと、行数が増えて、シートが重くなってしまうんですよね。
この記事でできるようになること
Google広告のデータを、BigQueryに毎日自動で取り込む設定を作ります。CSVを取り込む作業を繰り返す状態から、必要なデータを継続して蓄積する状態へ進めます。
| この記事で進めること | できたと判断する目安 |
|---|---|
| 広告アカウント・保存先・日次スケジュールを設定する | 転送設定が保存され、意図した次回実行日時が表示される |
| 更新ウィンドウと取得項目を選ぶ | 取り直す日数と、停止済みの項目を含めるかを説明できる |
| 初回の取り込みを確かめる | 転送が正常終了し、保存先のテーブルでデータが見られる |
設定の保存と、データの取り込み完了は別の段階です。実行予定の時刻を待ち、初回の成功を確認した後、翌日以降の更新も確かめましょう。
最初に設定して、あとは自動でデータがたまっていく。データを集め直す手間が減ると、その分「何を分析するか」に取りかかりやすくなります。この点はやっぱり便利です。ただし、保存先をそろえるだけで広告と売上が自動的につながるわけではありません。あとで組み合わせるには、日付・キャンペーン・顧客など、比較や結合に使う項目を決めておきます。
設定前に確認する権限と料金
まず、次の準備を済ませてください。すでにGA4などを保存しているGoogle Cloudプロジェクトがあれば、そのプロジェクトを使えます。
- Google Cloudのプロジェクトと請求先:プロジェクトを用意し、課金を有効にします。未作成の場合は、Google公式の事前準備から進めてください。
- BigQuery側の権限:転送の作成と保存先データセットの設定を行える権限が必要です。公式手順ではBigQuery管理者ロールが例示されています。会社の環境では管理者に必要な権限を確認します。
- Google広告側の権限:対象の顧客ID、またはMCCへの読み取り権限が必要です。個人のGoogleアカウントで新しく認可する場合は、2段階認証も有効にします。
- 保存場所:既存のGA4などと一緒に分析する予定なら、そのデータセットのロケーションを確認しておきます。
Google広告からの転送自体は無料ですが、BigQueryの保存とクエリ実行には別途料金がかかる場合があります。「Google広告との連携が無料」と「データ基盤全体がずっと無料」は分けて考えてください。無料枠や料金はBigQueryの公式料金表で確認できます。
以下の画像は実演時の画面です。現在の画面では項目名や並びが異なる場合があります。権限・転送条件はGoogle公式の設定ガイドも参照してください。
1. データ転送を開き、APIを有効にする
Google Cloudのデータ転送画面を開き、画面上部のプロジェクトが保存先のものになっているか確かめます。メニューから進む場合は「BigQuery」→「データ転送」です。
「転送を作成」を押します。初めて使うプロジェクトでは、BigQuery Data Transfer APIを有効にするダイアログが表示されるので、「APIを有効にする」を押してください。すでに有効なら、この確認は表示されません。
転送元の「ソース」を選べる画面へ進めば、この段階は完了です。
2. Google Adsと広告アカウントを指定する
ソースの一覧から「Google Ads」を選びます。「Google Ad Manager」など、名前の似た別サービスを選ばないようにしてください。
次にGoogle広告を開き、対象アカウントの顧客IDを確認します。初めての設定なら、まず1つの広告アカウントを対象にすると、あとでデータを照合しやすくなります。
BigQueryの「Customer ID」へそのIDを入力します。ここではハイフンを除いた10桁で入力します。レポートタイプは「標準」を選び、用意されたレポートを転送する設定にします。
対象アカウントのIDと「標準」が入ったことを確認したら、続いて取得するデータの範囲を決めます。
3. 取得項目と更新ウィンドウを決める
チェック項目は、とりあえず全部オンにするより、何を残したいかに合わせて選ぶほうが分かりやすいです。
- Exclude removed/disabled items:削除済み・無効な項目や指標を転送対象から除外します。停止済みキャンペーンの実績も分析したいなら、除外設定は安易にオンにしないでください。僕の実演でも、動かしていない広告のデータを確認するためオフにしています。
- Include Tables new to Google Ads:Google Adsで追加されたテーブルを含める項目です。実演ではオンにしています。
- Include PMax Campaign Tables:PMax向けのテーブルを含めます。PMaxを分析したい場合に選びます。
- Table Filterなど:取得するテーブルを絞るための任意項目です。どのテーブルが必要かまだ分からなければ、まず標準レポートの内容を確認してから絞ります。
更新ウィンドウは、毎回さかのぼって取り直す日数です。保存期間のことではありません。たとえば「7」なら、日次転送の際に直近7日分を更新します。Google広告は後からコンバージョンなどの値が変わることがあるため、この取り直しに意味があります。
実演では7日を指定しています。現在の設定範囲は1〜30日、既定値は7日です。初回もこの範囲から取り込まれるため、もっと古いデータが必要なら、後述のバックフィルを使います。7日より遅れて確定した値まで、7日の設定で必ず反映されるとは限りません。
4. 保存先データセットと転送名を設定する
「続行」を押して「転送先の設定」へ進み、データセットを選びます。まだ保存先がなければ、データセットの選択欄から新規作成し、名前を入力してください。たとえば google_ads としておくと、広告の保存先だと分かります。
ロケーションは、あとで一緒に分析するデータと合わせます。既存データが東京にあるなら asia-northeast1 を選びます。日本で使うからという理由だけで、すでにあるデータの保存場所を確認せずに選ばないことが大切です。ロケーションをまたぐクエリには制約があります。
データセットを作成したら、転送先の選択欄でその名前を選び直します。続いて「転送構成名」の表示名に、たとえば「Google広告→BigQuery」のように、あとから識別できる名前を入力します。表示名は日本語でも構いません。
5. 日次スケジュール・認可・通知を設定する
「スケジュール オプション」を開き、繰り返しの頻度と時刻を指定します。Google広告の定期転送は、最大で24時間に1回です。まずは毎日1回の実行にします。
時刻欄のタイムゾーンを必ず確認してください。実演の入力欄には「UTC」と表示されています。UTCの03:00は日本時間の12:00です。日本時間の朝3時に実行したいなら、UTCでは18:00になります。開始日の指定も含め、保存後の次回実行予定が意図した日時か確認しましょう。
Googleアカウントで設定する場合、サービスアカウントの選択は任意です。まず自分のGoogleアカウントで進めるなら、そのまま続行します。組織でサービスアカウントを使う場合は、広告アカウントへのアクセス権を含め、管理者と設定をそろえてください。
「通知オプション」では、失敗に気づけるようメール通知を設定できます。Pub/Subによる通知は、通知を受ける別の仕組みを用意している場合の選択肢です。
設定を確認して「保存」を押します。Googleの認可画面が表示されたら、対象広告を閲覧できるGoogleアカウントを選び、BigQuery Data Transfer Serviceによるアクセスの内容を確認して許可します。初回や新しいリージョンでは認可が必要になります。認可画面が出なければ、既存の認可が使われている場合もあります。
保存後に転送の一覧または詳細へ戻り、設定名・保存先・次回実行予定を確認できれば、転送設定は完了です。実際にデータが入ったかは、次の手順で確かめます。
6. 転送の成功とテーブルの中身を確認する
作成した転送を開き、「実行履歴」を見ます。対象日の行が「正常に完了しました」になっているか確認してください。予定や保留中の表示だけでは、取り込み完了ではありません。
初回は、直近の1日が完了したあとに、過去日の取り込みが並ぶことがあります。画像でも、残りの日付が「自動的にバックフィルがスケジュールされます」と表示されています。この実行予定の間隔を、通常の日次更新の頻度と混同しないようにしましょう。
次にBigQueryへ戻り、プロジェクトの下にある保存先データセットを展開します。作られたテーブルを1つ開いて「プレビュー」を押してください。実演ではキーワードのテーブルを開き、キーワードの文字列が入っていることを確認しています。
ここまで、基本は画面上で項目を選び、入力する作業でした。結構簡単だったと思いませんか? ポチポチと進めると、「あ、意外とすんなり行けたな」という感じですよね。
ここで、かなり多くのテーブルが作られていることに気づくと思います。僕も最初から全部を見切れたわけではありません。まずは必要な項目があるテーブルを1つ選び、列名とデータを見てみるところからで大丈夫です。
ただ、キーワードの一覧が見えたことと、広告費・クリック・CVの数字が正しいことは別です。実績を集計する際は、レポートに合うテーブルを選び、Google広告の管理画面と同じ顧客ID・期間・タイムゾーン・指標の定義にそろえて照合します。費用列が cost_micros などマイクロ単位なら、通貨単位への換算も必要です。Google広告レポートとBigQueryテーブルの対応を参照してください。
データが入った後、AIとの会話で数字を調べたい方へ向けて、末尾でSynapse MCPを使う方法も紹介します。
データが入らないときに確認すること
権限エラーになる
Google Cloudの転送作成権限と、Google広告を読める権限は別です。認可したGoogleアカウントで、設定した顧客IDを開けるか確認してください。個人認証なら2段階認証も確認します。実行履歴から失敗した行の詳細を開き、どちらの権限で止まったのかを切り分けます。
保存したのに、すぐ実行されない
まず次回実行予定とタイムゾーンを見ます。指定時刻の前なら、実行を待ちます。「すぐに開始」を選んだ場合でも、設定が保存された時点で全日分の取り込みが終わるわけではありません。予定・実行中・正常完了を分けて確認してください。
過去データや停止済みキャンペーンが見つからない
更新ウィンドウの外にある日付は、転送詳細の「バックフィルのスケジュール構成」から対象期間の取り込みを指定します。取得できる過去の範囲はGoogle広告側のデータ保持条件にも左右されます。また、削除済み・無効な項目の除外を有効にしていないかも確認してください。
まとめ:まずは1つの広告アカウントで、自動転送を確認する
Google Adsを転送元に選び、取得項目・保存先・日次スケジュールを設定すれば、広告データをBigQueryへ蓄積できます。まずは実行履歴とテーブルを確認し、翌日も更新されるところまで見届けてください。
データを集める仕組みができたら、「何を比べたいか」を1つ決めるところから分析を始めましょう。日別の費用、キャンペーン別のCVなど、身近な問いからで大丈夫です。
Google広告もGA4も、Synapse MCPならAIにそのまま聞ける
ここまでは、Google広告をBigQueryへ蓄積する方法を説明しました。一方で、「まず先週の広告費やCPAを見たい」「気になった数字を、その場で追加質問したい」ということもありますよね。
そうした普段の分析には、私たちが提供するSynapse MCPも使えます。Google広告やGA4などをClaude・ChatGPTにつなぎ、いつもの言葉で質問すると、AIが接続先の実データを取得して答える仕組みです。
この章で紹介するのは、Google広告やGA4のデータを直接AIへつなぐ方法です。BigQueryへの転送設定とは別に、Synapse MCPで媒体を接続します。
広告費やCPAの比較を、会話で頼む
Google広告を接続したら、たとえば次のように聞けます。自分で毎回CSVを切り出さず、費用・クリック・CVを取り出し、期間ごとの比較へ進められます。
接続したGoogle広告の、直近の完了した月曜〜日曜と、その前の月曜〜日曜をキャンペーン別に比較して。広告費・クリック・CV・CPAを表にし、使った顧客ID・日付・通貨と、取得したキャンペーンの件数・範囲も示して。CVが0ならCPAは算出不可にして、まず数値の変化を教えて。
接続と最初の取得は、Google広告をAIで分析する手順で説明しています。
GA4の探索を組まなくても、PVやよく読まれる記事を聞ける
GA4のPVの期間比較やページ別集計も、同じように質問できます。探索レポートの項目を自分で組み立てなくても、知りたい数字を言葉で伝えて集計を頼めます。
| 知りたいこと | そのまま試せる質問例 |
|---|---|
| 先月と今月のPVを比べたい | 「今月1日から昨日までと、先月の同じ日数のPVを比較して。対象サイト、実際の日付、増減数と増減率も教えて」 |
| 人気の記事を知りたい | 「今月1日から昨日までで、PVが多い記事を10件教えて。記事を見分けられるよう、ページタイトルとURLも付けて」 |
| 増えた流入元を知りたい | 「7日前から昨日までと、その前の7日間を比べ、セッション数が増えた流入元を教えて」 |
これらは接続後に試すための質問例です。月の途中では完了した日数をそろえ、比較期間がそろわない場合は、集計する日付を先に確認します。人気記事を調べるときは記事のURL範囲も伝え、回答が取得した範囲内の順位か、サイト全体の順位かを確かめてください。
ここからの3枚は、GA4・Search ConsoleをClaudeへ接続して分析した記事の実演です。接続から表・グラフへ進む流れを見てみてください。
接続した後は、「直近のアクセス状況を教えて」と質問すると、AIがデータを取りに行きます。検索でどれくらい表示・クリックされたかも、表で返してもらえます。
さらに「GA4のデータをグラフ化して」と続けると、取得した数字をグラフにまとめてもらえます。出力形式は利用するAIの機能によって異なります。
CSVを用意して添付することなく、いつものAIから自社データの答えが返ってくる。控えめに言って便利でしかないです。僕自身も、AIとSynapse MCPをお客様へのレポート作成に使っています。
数字を出した後も、「どのページが増えた?」「次に何を調べるとよさそう?」と会話を続けられます。集計して終わらず、気になった変化を次の質問で掘り下げられるのが、AIにつないで使うよさです。
まずは、自分のGoogle広告をつないで聞いてみる
最初は1つの広告アカウントを選び、「7日前から昨日までの広告費・クリック・CVを教えて」と聞いてみてください。回答に使った顧客ID・日付・通貨も出してもらい、Google広告の管理画面と同じ条件で照合します。数字を1回確認できたら、「前の週と比べて」と質問を続けてみてください。
