本記事では、PythonでGoogle Search Console APIを使い検索クエリの一覧を抽出する方法をご紹介します。
設定のための画面イメージ、Pythonのソースコードを公開しているので、Google Search ConsoleとPythonの環境さえあれば、Google Search Console APIをすぐに使えるようになると思います。
想定読者
・ブログなどの自分のサイトを持っていて、Google Search Console(サチコ)を使っている。
・PythonでなにかAPIを使ってみたい。
※本時期は、2020年11月18日時点の情報となります。
PythonでGoogle Search Console APIを使う事前準備
![]()
PythonでGoogle Search Console APIを使う前提条件
PythonでGoogle Search Console APIを使う前提条件を次の通りです。
・Google、Google Search Console(サチコ)にログインできるアカウントがある。
・Pythonを動作させる環境がある。
本記事のPythonの実行環境
今回は、以下の実行環境でプログラムを実行しています。
・Python 3.7.6
・Jupyterlab 1.2.6
Google Search Console APIを使うための設定手順
![]()
Google Search Console APIを使うための設定手順として、次の5ステップを行います。
step
1 「Google Developer Console」でプロジェクトを作成
まず、Googleアカウントにログインした状態で、「Google Developer Console」にアクセスします。
Google APIsロゴの右の部分をクリックし、「新しいプロジェクト」をクリックします。
![]()
「プロジェクト名」に任意の名前を入力し、「作成」ボタンをクリックします。
![]()
step
2「Google Search Console API」を有効化する
ステップ1で作成したプロジェクトの「Google Search Console API」を有効化します。
左のメニューから「ダッシュボード」を選択肢し、「APIとサービスの有効化」をクリックします。
![]()
検索窓で「console」と検索し、「Google Search Console API」をクリックします。
![]()
「有効にする」をクリックします。
![]()
step
3サービスアカウントを作成する
Step1で作成したプロジェクトにサービスアカウントを作成します。このアカウントでGoogle Search Consoleにアクセスしてデータを抽出することとなります。
プロジェクト画面の左メニュー「認証情報」を選択し、「サービスアカウントを管理」をクリックします。
![]()
「サービスアカウントを作成」をクリックします。
![]()
「サービスアカウント名」に任意の名前を入力し、「完了」をクリックします。
![]()
step
4サービスアカウントの鍵を作成する
ここでは、Step3で作成したサービスアカウントの認証情報である鍵を作成します。
操作列のメニューをクリックし、「鍵を作成」をクリックします。
![]()
キーのタイプは、「JSON」を選択し、「作成」をクリックします。
そうすると、鍵のファイルがパソコンのローカルフォルダにダウンロードされます。
![]()
step
5Google Search Consoleでサービスアカウントのアクセス権を付与する
まず、自身のGoogle Search Consoleを開きます。
画面左のメニューの「設定」を選択します。
![]()
「ユーザーと権限」を選択します。
![]()
ユーザー管理画面で、左上にある「ユーザーを追加」をクリックします。
![]()
「メールアドレス」を入力し、権限は「フル」を選択して、「追加」をクリックします。
![]()
メールアドレスは、「Google Developer Console」のサービスアカウント画面の「メール」の部分をコピーして貼り付けます。
![]()
ここまででGoogle Search Console APIを使うための設定が終わりです。
次は、実際にGoogle Search Console APIを使うためPythonのソースコードをみていきます。
PythonでGoogle Search Console APIを使い検索クエリの一覧を出力する方法
![]()
PythonでGoogle Search Console APIを使つための準備
まず、PythonでGoogle Search Consoleを使うために次の3つの準備をします。
・新規の作業フォルダを作成し、サービスアカウントの鍵と新規のipynbファイルを置く
・必要なライブラリのインストールする
2つ目のGoogle Search Console APIを使うために必要なライブラリを次の通りインストールします。
pip install --upgrade google-api-python-client
pip install oauth2client
次は、ようやくPythonの実際のソースコードをみていきます。
PythonでGoogle Search Console APIを使い検索クエリの一覧を出力するソースコード
それでは、新しく作ったipynbファイルに上からソースを書いていきます。
まずは、インストールしたライブラリをインポートします。
import pandas as pd
#Google Search Console APIを使うためのライブラリのインポート
from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
まずは、変数を設定します。
key_file_locationは、鍵のファイル名を入力します。.jsonの拡張子も忘れずつけましょう。
urlには、自身のサイトのURLを入力します。
#変数の設定
scope = ['https://www.googleapis.com/auth/webmasters.readonly']
key_file_location = '鍵のファイル名を入力(XXXXXXXXXX.json)'
url = '自分のサイトのURLを入力'
認証して、Google Search Console APIのサービスを立ち上げます。
これはコピペでOKです。
#認証して、APIを立ち上げる
credentials = ServiceAccountCredentials.from_json_keyfile_name(key_file_location, scope)
webmasters = build('webmasters', 'v3', credentials=credentials)
Google Search Consoleからデータを抽出する条件を設定します。
ここでは、2020年10月の検索クエリを抽出しています。
次のサイトをみれば、他の設定の抽出条件も設定できます。
Query your Google Search analytics data(Google公式HP)
#抽出条件の設定
dimensions_list = ['query', 'page']
start_date = '2020-10-01'
end_date = '2020-10-31'
row_limit = 50
#抽出条件をdict型にする。
request = {
'startDate': start_date,
'endDate': end_date,
'dimensions': dimensions_list,
'rowLimit': row_limit
}
次に、設定した抽出条件をもとに、APIで抽出を行います。
これもコピペでOKです。
#Google Search Consoleから抽出する
response = webmasters.searchanalytics().query(siteUrl=url, body=request).execute()
最後に、抽出した結果をDataFrame型(表形式)に加工します。
responseはdict型で、リスト型も入子になっているので、json_normalize()を使うと、一発でDataFrame型に変換できます。
#抽出結果を、json_normalizeでDataFrame型にする
df = pd.json_normalize(response['rows'])
#'keys'列を'query'列, 'page'列に分け、'keys'列は削除する
for i, dimension in enumerate(dimensions_list):
df[dimension] = df['keys'].apply(lambda row: row[i])
df = df.drop(columns='keys')
#JupyterLabでdfを出力
df
実行結果は、次のようになり、ちゃんと検索クエリに関する情報の一覧が出力されました。
![]()
これによって次の項目を把握することができます。
・クリック数
・インプレッション数
・クリック率(CTR)
・対象期間の平均の検索順位
・検索クエリ
・対象ページのURL
こんな感じで、Google Search ConsoleからAPIを使って、自分の欲しい情報を取得することができます。
これを使えば、PythonでPandasを使って表形式で加工したり、グラフ化したりと、サイト管理を効率化・自動化できそうですね。
-

【保存版】PythonでできるExcel操作のまとめ一覧
Excelで作業するのって大変だな〜 なにか楽な方法ないかな〜 Excelの集計や単純作業は、Pythonで楽にできるよ!!この一覧 ...
続きを見る
-

【保存版】Python/Matplotlibで仕事で使えるグラフ作成のまとめ一覧
Pythonでデータは集約したけど、うまく可視化できないかな〜 グラフ種類や設定の数が多過ぎて。。 Pythonでは、いろんなグラフ ...
続きを見る
ぜひぜひGoogle Search Console APIを使って、いろんなことを試してみてください。
以上となります。
最後まで読んでいただき、ありがとうございました。
0からPythonを勉強したい方向け
おすすめのUdemy講座を紹介します。筆者もこの講座で勉強しました。