本記事では、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講座を紹介します。筆者もこの講座で勉強しました。