こんにちは! データサイエンティストのウマたん(@statistics1012)です!
マーケターであれ、ブロガーであれ、個人であれ、法人であれ、SEOに携わる人なら必ず利用する「Google search console」。

Googleの提供する無料ツールであり、検索順位や流入キーワードを測るのに非常に有用なツールです。
この度、Google search consoleの検索キーワードを定点観測SEOツールに登録する際、管理画面上では1000キーワードまでしか出力できないことに気付きまして・・・
PythonでGoogle search consoleのAPIを叩き5000行出力することに挑戦してみたのでまとめておきます!
・Google search consoleとは
・Google search consoleのAPIを叩き5000行出力する方法
ちなみに、以下のUdemyのコースでGoogle Search ConsoleのAPIでWebメディアのSEO改善に役立つアプリの作り方を公開していますので興味のある方はチェックしてみてください!
Python✕Google Search ConsoleAPIでWebメディアのSEO改善に役立つWebアプリを作ろう!

【時間】 | 3時間 |
---|---|
【レベル】 | 初級〜中級 |
Google Search ConsoleのAPIを使ってWebメディアのSEO改善に役立つアプリを作ってみよう!
今なら購入時に「T5FVH5RN296K」という講師クーポンコードを入れると90%オフ以上の割引価格になりますのでぜひご受講ください!
目次 [非表示]
PythonでGoogle search consoleのAPIを利用する手順
Pythonに移る前にいくつかの手順が必要になります。
Step1:Google Cloud Platformで プロジェクトを作成する
まず、GoogleプロダクトのAPIを利用するためにはGoogle Cloud Platformへの登録が必要になります。
Googleアカウントさえ持っていれば無料で利用できますので以下のURLからGoogle Cloud Platformのプロジェクトを作成しましょう!
Google Cloud Platformで プロジェクトを作成する

Step2:Google search consoleの APIを登録する
Google Cloud Platformでプロジェクトが作成できたら、次はGoogle search consoleのAPIを登録していきます。
以下のURLからGoogle search consoleのAPIを登録していきましょう!
Google search consoleの APIを登録する
先ほど作成したプロジェクトを指定してGoogle search consoleのAPIを登録していきましょう!
この時、認証を続ける画面が出ますが一旦進まなくて大丈夫です。
Step3:サービスアカウントを作成
続いてプロジェクトの中でサービスアカウントを作成していきます。

以下のURLからプロジェクトに紐づくサービスアカウントを作成してください。
Step4:キーを作成し、JSONファイルをダウンロード
この時キーを作成するボタンがあるのでそこから秘密鍵を作成しましょう!

この時JSONファイルでダウンロードするようにします。
Step5:Google search consoleの管理画面上でユーザーの追加
最後にGoogle search consoleの管理画面上に、先ほど設定したサービスアカウントのメアドを登録していきます。
設定>ユーザーと権限>ユーザーを追加
でサービスアカウントに表示されているメアドを追加しましょう!
これで前準備が終了です!続いては実際にPythonを動かしていきます!
Pythonを使ってAPIを叩く方法

先ほどダウンロードしたJSONファイルをPythonファイルと同じディレクトリに移動します。
Pythonを実行する前にpip installしていきます。
pip install --upgrade google-api-python-client
pip install oauth2client
その後で以下のコードをPythonで実行しましょう!
import pandas as pd | |
from googleapiclient.discovery import build | |
from oauth2client.service_account import ServiceAccountCredentials | |
url = ['https://www.googleapis.com/auth/webmasters.readonly'] | |
file = '[JSONファイルの置き場所]' | |
credentials = ServiceAccountCredentials.from_json_keyfile_name(url, file) | |
webmasters = build('webmasters', 'v3', credentials=credentials) | |
domain = '[あなたのドメイン]' | |
dimensions = ['query', 'page'] | |
startDate = '2019-10-01' | |
endDate = '2019-11-01' | |
rowLimit = 5000 | |
body = { | |
'startDate': startDate, | |
'endDate': endDate, | |
'dimensions': dimensions, | |
'rowLimit': rowLimit | |
} | |
response = webmasters.searchanalytics().query(siteUrl=domain, body=body).execute() | |
df = pd.io.json.json_normalize(response['rows']) | |
for i, d in enumerate(dimensions): | |
df[d] = df['keys'].apply(lambda x: x[i]) | |
df.drop(columns='keys', inplace=True) | |
df.to_csv('{}.csv'.format(start_date), index=False) | |
print(df) |
これによりクエリと流入ページ別の流入数が出力されます。
ちなみに公式リファレンスは以下です。
具体的にどんな意味があるのか見ていきましょう!
dimensions = ['query', 'page']
startDate = '2019-10-01'
endDate = '2019-11-01'
rowLimit = 5000
body = {
'startDate': startDate,
'endDate': endDate,
'dimensions': dimensions,
'rowLimit': rowLimit
}
こちらのコードで引っ張ってくる変数と期間・行数を出力できます。クエリは5000行までしか出力できません。
for i, d in enumerate(dimensions):
df[d] = df['keys'].apply(lambda x: x[i])
df.drop(columns='keys', inplace=True)
df.to_csv('{}.csv'.format(start_date), index=False)
QueryとPageがリストに入って出力されるのでそれを別々のカラムに分けてCSVで出力する処理を行っています。
Pythonを使ってGoogle search consoleのAPIを叩く方法 まとめ
実際にやってみると意外と簡単!
それほど時間もかからず行うことが出来ました。
また、収集したデータを可視化したい時は同じGoogleのサービスである”Looker Studio“がオススメ!使い方を以下の記事で解説しているので見てみてください!
ちなみにPythonを学習する方法や他のAPI利用方法については以下の記事でまとめていますのでよければ見てみてください!
・【入門】初心者が短期間でPythonを習得できるようになる勉強法!
・【5分で分かる】Pythonを使って様々なサービスのAPIを利用してみよう!
・【目指せ自動化】Pythonでスプレッドシートを操作して書き込み・読み込みを行う方法!
ちなみに、以下のUdemyのコースでGoogle Search ConsoleのAPIでWebメディアのSEO改善に役立つアプリの作り方を公開していますので興味のある方はチェックしてみてください!