Java:Search Console APIを使う、サービスアカウント編、その2
Java:Search Console APIを使う、サービスアカウント編の続きである。
サービスアカウントを使うことによってSearch Console APIにアクセスできるようになり、最小限のアクセスを行ったのだが、ここではより詳細を取得してみる。
ドキュメントは以下になる。
- https://developers.google.com/webmaster-tools/search-console-api-original/v3/libraries?hl=ja#java
- https://developers.google.com/api-client-library/java/google-api-java-client/dev-guide?hl=ja
特にqueryのパラメータについては以下だ。
このAPIには、サイトリスト取得、サイトマップ入力、サイト削除等の機能があるのだが、特に大量のサイトを扱うのでも無い限り必要無い。以下ではqueryの機能について見ていく。
コードは前回のサンプルを前提として記述されている。
queryパラメータ
注意:行のソート順は、クリックカウントの降順になる。同じクリックカウントの行に対しては順序不定。
日付範囲
必須なのは開始・終了日付のみだ。これ以外はオプションであり、指定する必要はない。
開始日付<=終了日付であり、この日付は、PST(太平洋標準時、米西海岸標準時)だという。日本時間では無いことに注意。
以下のようにYYYY-MM-DD形式だ。
req.setStartDate("2019-04-23");
req.setEndDate("2019-04-23");
dimensions
ここで指定されたdimensionごとに結果がグループ化され、かつ結果の中にそのdimensionが現れる。
dimensionが何も指定されていなければ、結果は一つの行にまとめられる。
req.setDimensions(Arrays.asList(new String[] {
"page",
"query" ,
}));
例えば、上のように記述すると、結果はウェブページ別、検索文字列別になる。
{"clicks":0.0,"ctr":0.0,"impressions":1.0,"keys":["https://www.gwtcenter.com/eclipse-sets-file-encoding","eclipse utf"],"position":19.0}
{"clicks":0.0,"ctr":0.0,"impressions":1.0,"keys":["https://www.gwtcenter.com/eclipse-sets-file-encoding","eclipse vm引数"],"position":31.0}
{"clicks":0.0,"ctr":0.0,"impressions":2.0,"keys":["https://www.gwtcenter.com/eclipse-sets-file-encoding","eclipse 文字コード"],"position":29.5}
可能な値は以下
- “country”: 3文字で国名を表す。
- “device”: 機器を表す。”desktop”, “mobile”, “tablet”のいずれかが現れる。
- “page”: URI
- “query”: 検索文字列
特別なdimensionとして以下がある。
- “searchAppearance”: 他のdimensionと共に指定できない。
この意味が今ひとつ不明だが、指定すると以下のような行が現れる。
{"clicks":1.0,"ctr":0.043478260869565216,"impressions":23.0,"keys":["AMP_TOP_STORIES"],"position":7.695652173913044}
{"clicks":78.0,"ctr":0.08934707903780069,"impressions":873.0,"keys":["AMP_BLUE_LINK"],"position":9.306987399770906}
searchType
検索対象を指定する。デフォルトは”web”。
req.setSearchType("web");
この他に”image”, “video”がある。
dimensionFilterGroups
指定したdimensionに対してフィルタリングするらしい、例えば”country”は”jpn”だけとか、”query”は”☓☓☓”など。
equalsだけではなくcontains、notEqual、notContainsもある。複数指定する場合は”and”のみの結合が可能。
今回の目的には不要なので詳細省略。
aggregationType
省略
rowLimit
取得する行数制限。1から25,000の範囲。デフォルトは1,000。
startRow
取得開始する行番号で0ベース。デフォルトは0。
queryの結果
結果は、JSON形式の行として返される。
{"clicks":6.0,"ctr":0.21428571428571427,"impressions":28.0,"keys":["https://www.gwtcenter.com/how-to-use-ultraviewer","ultraviewer"],"position":15.357142857142858}
- clicks:クリック数
- ctr:クリックスルー・レート(CTR)、0.0から1.0の値。この場合は検索結果に表示され、それがクリックされた率だろう。
- impressions:インプレッション数、つまり検索結果に表示された回数。
したがって、「ctr = clicks / impressions」となっているはずだ。
-
position:平均検索結果順位。平均値なので整数ではない。
-
keys:dimensionsに指定した値が、その順序で現れる。