Python × API

【画像/コードで解説】PythonでGoogle Search Console APIを使う方法

python-search-console

 

Googleでどんな単語で検索されているか一覧で確認したいな〜

 

PythonでGoogle Search Console APIを使えば、検索クエリやクリック率などが自由に取得できるよ〜

 

本記事では、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を使う事前準備

google-analytics1

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-analytics2

Google Search Console APIを使うための設定手順として、次の5ステップを行います。

 

step
1
「Google Developer Console」でプロジェクトを作成

まず、Googleアカウントにログインした状態で、「Google Developer Console」にアクセスします。

Google Developer Console

 

Google APIsロゴの右の部分をクリックし、「新しいプロジェクト」をクリックします。

アナリティクス1

 

「プロジェクト名」に任意の名前を入力し、「作成」ボタンをクリックします。

アナリティクス2

 

step
2
「Google Search Console API」を有効化する

ステップ1で作成したプロジェクトの「Google Search Console API」を有効化します。

左のメニューから「ダッシュボード」を選択肢し、「APIとサービスの有効化」をクリックします。

アナリティクス3

 

検索窓で「console」と検索し、「Google Search Console API」をクリックします。

コンソール1

 

「有効にする」をクリックします。

コンソール2

 

step
3
サービスアカウントを作成する

Step1で作成したプロジェクトにサービスアカウントを作成します。このアカウントでGoogle Search Consoleにアクセスしてデータを抽出することとなります。

プロジェクト画面の左メニュー「認証情報」を選択し、「サービスアカウントを管理」をクリックします。

コンソール3

 

「サービスアカウントを作成」をクリックします。

アナリティクス7

 

「サービスアカウント名」に任意の名前を入力し、「完了」をクリックします。

アナリティクス8

 

step
4
サービスアカウントの鍵を作成する

ここでは、Step3で作成したサービスアカウントの認証情報である鍵を作成します。

操作列のメニューをクリックし、「鍵を作成」をクリックします。

 

アナリティクス9-2

キーのタイプは、「JSON」を選択し、「作成」をクリックします。

そうすると、鍵のファイルがパソコンのローカルフォルダにダウンロードされます。

アナリティクス10

 

 

step
5
Google Search Consoleでサービスアカウントのアクセス権を付与する

まず、自身のGoogle Search Consoleを開きます。

画面左のメニューの「設定」を選択します。

 

コンソール4

 

「ユーザーと権限を選択します。

コンソール5

 

ユーザー管理画面で、左上にある「ユーザーを追加」をクリックします。

コンソール6

 

「メールアドレス」を入力し、権限は「フル」を選択して、「追加」をクリックします。

コンソール7

メールアドレスは、「Google Developer Console」のサービスアカウント画面の「メール」の部分をコピーして貼り付けます。

アナリティクス11

 

ここまででGoogle Search Console APIを使うための設定が終わりです。

次は、実際にGoogle Search Console APIを使うためPythonのソースコードをみていきます。

 

PythonでGoogle Search Console APIを使い検索クエリの一覧を出力する方法

google-analytics3

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

 

実行結果は、次のようになり、ちゃんと検索クエリに関する情報の一覧が出力されました。

コンソール8

 

これによって次の項目を把握することができます。

・クリック数
・インプレッション数
・クリック率(CTR)
・対象期間の平均の検索順位
・検索クエリ
・対象ページのURL

 

こんな感じで、Google Search ConsoleからAPIを使って、自分の欲しい情報を取得することができます。

これを使えば、PythonでPandasを使って表形式で加工したり、グラフ化したりと、サイト管理を効率化・自動化できそうですね。

 

【保存版】PythonでできるExcel操作のまとめ一覧
【保存版】PythonでできるExcel操作のまとめ一覧

  Excelで作業するのって大変だな〜 なにか楽な方法ないかな〜   Excelの集計や単純作業は、Pythonで楽にできるよ!!この一覧 ...

続きを見る

 

python-matplotlib-graph
【保存版】Python/Matplotlibで仕事で使えるグラフ作成のまとめ一覧

  Pythonでデータは集約したけど、うまく可視化できないかな〜 グラフ種類や設定の数が多過ぎて。。   Pythonでは、いろんなグラフ ...

続きを見る

 

 

ぜひぜひGoogle Search Console APIを使って、いろんなことを試してみてください。

 

以上となります。

最後まで読んでいただき、ありがとうございました。

 

0からPythonを勉強したい方向け

おすすめのUdemy講座を紹介します。筆者もこの講座で勉強しました。

米国データサイエンティストがやさしく教えるデータサイエンスのためのPython講座

よく読まれている記事

se-shikaku 1

  社内SEになるには資格って必要?社内SEでキャリアップするときにおすすめの資格は? 回答としては、 社内SEは、対人スキル、実務での対応力や最新情 ...

社内SEの仕事内容 2

  社内SEってどんな仕事なんだろ~ 検索しても転職サイトの記事ばかりでよく分からない・・   確かにそうですね。。実経験を基に、社内SE( ...

side-work-trial 3

  コロナで会社の経営も不安。。個人でお金稼ぎたいな~ 今、こう考えるサラリーマン、OLの方はごまんといると思います。   僕は、本業では社 ...

adsense-pass 4

【3記事で一発合格】Google AdSense申請に合格したブログ情報 こんにちは、いなサラ(@いなサラ|田舎の情シスサラリーマン)です。 2019年10月5 ...

-Python × API

© 2020 inasala note