Google Search ConsoleとPython APIの連携方法を紹介します。
Google Search Consoleとは
ウェブサイトの情報を無料で確認できるツールとなります。Googleが自分(自社)のサイトどのように評価しているかが数値として確認出来たり、オーガニック検索などで、どのような検索キーワードで閲覧者がこのサイトに流入しているのかを確認出来たりします。
現在利用している多くの方は、それまでトラフィックが多かったブログ記事で急にトラフィックが落ち込んだ原因を調べたり、ウェブサイト全体で獲得しているインプレッション数を確認したりしているのではないでしょうか。
Google Analytics との違い
似たようなツールにGoogle Analyticsという物もあります。
Google Analytics : サイトアクセス後のデータを用いて、
サイトに訪問したユーザーが「どこからきて」「どのようなページを見て」「どれくらい滞在した」を確認するツール
Google Search Console : サイトアクセス前のデータを用いて、
検索結果に自分のサイトが「どのような検索ワードで」「どれくらい表示され」「どれくらいクリックされた」を確認するツール
となります。
Google Cloud Platformの設定
Google Cloud Platformの設定に関しては関係記事としてGoogle Analyticsでも取り上げています。
今回も同様に
1. 新規プロジェクトを作成
2. そのプロジェクトにGoogle Search Console APIを登録
3. サービスアカウントを作成でJSONファイルを作成し、ダウンロード
4. Google Search Console画面で環境設定
5. Ptyhonでのアクセス
という流れになります。
プロジェクトの作成
【サービスアカウント】で【サービスアカウントを作成】をクリックします
3か所入力がありますが、自分の分かりやすいものを入れておけばよいです。ただし、2番目のサービスアカウントのメールアドレスは後ほど使う事になります。
【作成して続行】で、プロジェクトへのアクセスを許可を選びますが、
フルアクセスしたければ【オーナー】、ある程度制限したければ【参照者】ぐらいにして完了に進みます。
キー、鍵を追加を選択します。
JSONのカギを作成し、ダウンロードすることになります。このファイルは後ほど使います。
認証情報の取得ができる以下の画面になりますので、「メール」の部分を控えておきます。
以上がGoogle Cloud Platform側での設定です。
Google Search Console の設定
自分のGoogle Search Consoleを開き、画面左メニューの【設定】を選択し、【ユーザーの権限】を選びます。
右上の【ユーザーを追加】から先程確認したメールアドレスを入力します。権限は【フル】を選択します。
これで Google Search Console の設定は終了です。
Pythonでのコーディング
Pythonを自分の環境で使えるようにしておいてください。
また、必要であれば管理者権限でコマンドプロンプトを起動し、下記コマンドを実行してモジュールをインストールしてください。
pip install --upgrade google-api-python-client
pip install oauth2client
PythonのJupyter notebookで実行できますが、そのファイルと同じディレクトリ階層、もしくは相対的に分かる場所に先程のJSONファイルを置いてください。Google Colaboratoryでも動きます。
Google Colaboratoryの使い方についてはこちらを参考にしてください。
実際のコードは以下のようになります。
!pip install --upgrade google-api-python-client
!pip install oauth2client
Google Colaboratoryでも実行可能です。入力する変数としては
KEY_FILE_LOCATION には ‘生成したJsonファイル.json’ を指定します。
url には自身のサイトのURLを指定します。
注意点として、URLの指定ですが、単純にドメインを入れただけでは動かないことがあるようです。
url = ‘sc-domain:worth2know.com’
と【sc-domain:】という文字を入れてあげると動くことが私の環境では確認できています。
今回は検索期間も指定できるように start_date end_date も指定します。
Webサービスでは検索件数が1000件となっていますが、最大で25000行まで設定できるようです。
今回の例では500行にしてあります。
from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']
KEY_FILE_LOCATION = '生成したJsonファイル.json'
url = 'sc-domain:worth2know.com'
d_list = ['query', 'page']
start_date = '2021-09-01'
end_date = '2021-09-30'
row_limit = 500
credentials = ServiceAccountCredentials.from_json_keyfile_name(KEY_FILE_LOCATION, SCOPES)
webmasters = build('webmasters', 'v3', credentials=credentials)
print(webmasters.sites().list().execute())
実際のデータ抽出と、CSVファイルへの書き出し。
import pandas as pd
from googleapiclient.discovery import build
from google.oauth2 import service_account
body = {
'startDate': start_date,
'endDate': end_date,
'dimensions': d_list,
'rowLimit': row_limit
}
response = webmasters.searchanalytics().query(siteUrl=url, body=body).execute()
df = pd.io.json.json_normalize(response['rows'])
for i, d in enumerate(d_list):
df[d] = df['keys'].apply(lambda x: x[i])
df.drop(columns='keys', inplace=True)
df.to_csv('{}.csv'.format(start_date), index=False)
display(df)
見ていただいて分かるように、上記の例では、
・クリック数
・インプレッション数
・クリック率
・対象期間の平均検索順位
・検索クエリ
・対象ページURL
などが取得できることが分かります。
CSVにも書き出すこともできますので、様々な視点から分析・改善などが可能になると思います。
より多くのことを知りたい場合はオリジナルのリファレンスガイドを参照ください。
ーーー
参考にしたサイト
ーーー
SEO関係の記事を紹介します。
コメント