Googleサーチコンソールの一括エクスポート(bulk data export)を試してみた

「週末なにする?そんな時は、アソビュー!」でおなじみの遊び予約サイト「アソビュー!」のSEOを担当している西本です。

最近嬉しかったことは、長男(小学1年)が図工の授業で書いた絵が、クラスの代表として市が主催する作品展に展示されたことです。絵の才能がある天才だと確信しました。

今回は先日発表されたサーチコンソールの一括エクスポート(bulk data export)についてです。 developers.google.com 早速設定をしてみて、エクスポートされるデータを確認してみたので、その内容を簡単にまとめたいと思います。

最初に結論を書くと、APIと一括エクスポートを比較した結果は以下の通りです。

  • ○設定が容易なためAPIからデータを取得するための対応が不要になる
  • ○詳細なデータが取得出来るため必要なデータを後から取り直す手間が無くなる
  • △取得出来る最新のデータはAPIも一括エクスポートも同じ
  • ×過去データは取得出来ないため過去データが必要な場合はAPI対応が必要
  • ○取得出来る件数がAPIよりも2倍以上多い

■前提

前提として当社ではSEOのモニタリング用途で、サーチコンソールのデータはAPIから取得しBigQueryに格納しRedashで可視化する、という仕組みを構築しています。 tech.asoview.co.jp 尚、APIから取得出来るデータは1プロパティあたり50,000件の上限があるため、主要ディレクトリ毎にプロパティを作成し、サイト全体と各ディレクトリ毎で取得したデータを結合し(※重複レコードは削除)、最大限多くのデータを取得する対応をしています。その既存のAPIから取得しているデータとの比較で確認を進めていきます。

■設定方法

設定方法は詳細に記載してあるので、こちらを参照頂ければすぐに分かると思います。 大きくまとめると以下2点の対応ですが、GCPとサーチコンソールの管理者権限を持っている人なら5分程度で設定は終わると思います。簡単です。

  1. GCPで一括エクスポート用のサービスアカウントを作成する
  2. サーチコンソールでエクスポート先のGCPプロジェクトを設定する

APIからデータを取得する場合、Pythonでプログラムを作成するなどいくつか方法はありますが、一括エクスポートだと簡単な設定のみでデータが取得出来るので便利だと思います。 ※データの連携先がBigQueryなので、データの取得にSQLを書く必要がある点はハードルかもですが。

■取得データ

詳細はこちらを参照頂きたいですが、「searchconsole」というデータセットに以下3つのテーブルが作成されます。

  • ExportLog:データの出力日時
  • searchdata_site_impression:プロパティ毎の集計データ、クエリ毎の集計で使用できる
  • searchdata_url_impression:URL毎の集計データ、クエリ×URLの集計で使用できる ※searchdata_site_impression と searchdata_url_impression の違いはこちらを参照ください。この仕様知らなかった…。

特に searchdata_url_impression は各種リッチリザルトやAMPなど様々なフラグが設定してあり、詳細なデータが確認出来ます。APIから取得する場合、目的に沿った必要なディメンションや指標のみでデータを取得し、後から必要なデータが出てきた時に取り直す羽目になることが往々にしてありますが、一括エクスポートの場合はBigQueryに格納されたデータから各種フラグを使用した集計により詳細なデータが取得出来るため、そのような心配は無いように感じます。

■最新データの取得

APIでデータを取得する場合と比べて、今回の一括エクスポートでより最新のデータが取得出来るようになっているのでは、と期待していました。検証してみたところ、APIと取得出来る最新データの日付は同じでした。

一括エクスポートを設定した以降のエクスポートログの結果は以下の通りです。尚、サーチコンソールで扱う日付はPTで、ログ上の出力日時はUTCだったため、分かりやすくJSTに変換すると以下の通りでした。※PT→JSTの日付の変換はPT+1日で計算しています。

日付(PT) 出力日時(UTC) 日付(JST) 出力日時(JST)
2023-02-20 2023-02-22 09:23:23 2023-02-21 2023-02-22 18:23:23
2023-02-21 2023-02-23 14:12:11 2023-02-22 2023-02-23 23:12:11
2023-02-22 2023-02-24 12:18:33 2023-02-23 2023-02-24 21:18:33
2023-02-23 2023-02-25 10:00:58 2023-02-24 2023-02-25 19:00:58
2023-02-24 2023-02-26 07:55:20 2023-02-25 2023-02-26 16:55:20
2023-02-25 2023-02-27 07:18:53 2023-02-26 2023-02-27 16:18:53

上記の通り、JSTに変換すると一応前日分のデータが取得出来ているように思います。今回の検証にあわせてAPIでの取得も確認しましたが、同タイミングで同じ日付のデータが取得出来るようになっていました。そのため、一括エクスポートでもAPIでも取得出来る最新データに違いは無さそうでした。

前日分のデータは一応確認出来ますが、最新のデータが確認出来るのが16:00以降のため、日中帯に実施するモニタリングで使用出来るのは現実的には2日前のデータ、となるかと思います。あと、余談ですが、分かり辛いのでデータ取得の日付をJSTに設定出来るようになると有難いなと以前から常々思っています、対応難しいかもしれないですが。

1点注意点としては一括エクスポートの設定をした以降のデータしか取得出来ない点があります。そのため、過去データが必要な場合はAPIで取得するなど別の対応が必要になります。APIであれば過去データの取得も可能なため、その点はAPIに利点があるように思います。

■取得件数

前提に記載した通り、APIでの取得は1プロパティあたり50,000件の制限があります。ディレクトリ毎にプロパティを作成しているAPI取得と、一括エクスポートで取得出来る件数の違いを確認してみました。取得条件は以下の通りです。

  • 一括エクスポート:searchdata_url_impression を日付で集計、search_typeは「WEB」、queryがnull(匿名化されたクエリ)は除外
  • API:サイト全体+ディレクトリ毎のプロパティ9個に対して、ディメンションにpageとqueryを指定してAPIから取得
日付(PT) 一括 API 割合
2023-02-20 468,931 239,850 195.51%
2023-02-21 516,263 240,529 214.64%
2023-02-22 587,414 253,775 231.47%
2023-02-23 558,968 244,938 228.21%
2023-02-24 580,016 253,212 229.06%
2023-02-25 600,020 233,748 256.70%

上記の通り、ディレクトリ毎にプロパティを作成し最大限に取得件数を増やしたAPIよりも、一括エクスポートの方が2倍以上件数が多い結果となりました。一括エクスポートを利用すれば、サーチコンソールからの取得件数を増やすという目的でディレクトリ毎のプロパティを作成する必要は無さそうです。ただし、URL Inspection APIも1プロパティあたり1日2,000件が上限、という制約があるため、URL Inspection APIのためにディレクトリ毎のプロパティ作成はアリかと思います。

■さいごに

今回はサーチコンソールのデータがBigQueryに連携出来るようになりましたが、GA4やGoogle広告のデータもBigQueryと連携が出来るので、SEOやGoogle広告などGoogleとの関わりが深い集客施策の担当者がBigQueryを扱えるようになる優位性は高いな、と改めて感じました。僕は元エンジニアなのでBigQueryを扱えるようになるまでのハードルは他のSEO担当者に比べると低かったように思いますが、BigQueryを扱えるようになると出来ることの幅が広がるので、おすすめです。僕も特別詳しいわけではないですが、質問などあればこちらまでご連絡ください。可能な範囲でお答え出来ればと思います。

■おまけ

「生きるに、遊びを。」をミッションに掲げる我らがアソビューでは一緒に事業をつくる仲間を絶賛募集中です。すべての人に、遊びの世界をつなげる次の10年を一緒に創りませんか?

www.asoview.com