Docly Child

Google Search Consoleのデータを取得する

878 views

この記事では、Google Search Consoleからデータを取得する方法を紹介します。

 


 GetSearchAnalytics(Seach Consoleのデータを取得)

Google Search Consoleの検索パフォーマンスデータを取得するためには、GetSearchAnalyticsアクションを使用します。

このアクションでは、Google Search Consoleの検索パフォーマンス画面に表示される以下の値が取得できます。

  • 合計クリック数(clicks)
  • 合計表示回数(impressions)
  • 平均CTR(ctr)
  • 平均掲載順位(position)
  • 取得できるデータの種類(dimensions)に指定した値の内訳
    (※上記画像の例であれば、デバイス:”PC”を意味する”DESKTOP”というテキストが取得されます)

 ワークフローの設定例

ここでは例として、以下条件を満たすデータをSearch Consoleから取得するサンプルを作成します。

  • 集計サイトのドメインがhttps://hofefuga.com/である
  • 集計対象期間は1ヶ月前の末日(2022/11/30)から2022/12/26とする
  • クエリ(検索キーワード)に “ファイル” が含まれている
  • デバイスがPC(DESKTOP)である

手始めに、GetSearchAnalyticsアクションに基礎的な情報を設定します。

  • GetSearchAnalyticsアクションをワークフローに設置します
  • プロバイダID(provider)に、Search Consoleのコネクションを指定します
  • プロパティのURLまたはドメイン名(siteUrl)に、データ取得対象ページのドメインを入力します

集計対象の期間(1ヶ月前の月末~2022/12/26)を設定します

  • リクエスト期間の開始日付(startDate)の右端のカレンダーアイコンをクリックします
  • 「相対日時」タブに移動します
  • 「先月月末」をクリックします
    ※数値=1, 単位=ヶ月, 前後=前,初末オプション=月末とする形でもOKです
  • OKをクリックします
  • リクエスト期間の終了日付(endDate)を設定します
  • 2022-12-26と直接入力するか、カレンダーの日付選択タブから2022-12-26を直接選択します。

取得するデータの種類(dimensions)を設定します。

  • 取得するデータの種類(dimensions)入力欄右端の、Search Consoleのアイコンをクリックします
  • device, queryにそれぞれチェックを入れます
  • 決定をクリックします

 

次に、取得するデータを絞り込みます(フィルタリング)
絞り込みの命令文は、JavaScriptの配列形式(要素はオブジェクト)を使用します。テンプレートは以下となります

[{"dimension":"3で選択したdimensionのいずれか","operator":"完全一致(equals)or含む(contains)or完全一致ではない(notEquals)or含まない(notContains)","expression":"クエリやページのURL、デバイスの種類、国名"}]

今回のフィルター条件は以下となるため、対応するフィルタオブジェクトを作成していきます。

#フィルター条件① クエリに “ファイル” が含まれている

  • dimension「クエリ」に対する条件であるため、dimensionを”query”とします
  • 「~~を含む」という演算を使用するため、operatorを”contains”とします
  • 上記により「クエリに~~を含む」までができています
    「~~」は今回「ファイル」であるため、expressionを”ファイル”とします
  • これにより以下クエリが出来上がります。

{"dimension":"query","operator":"contains","expression":"ファイル"}

#フィルター条件② デバイスが “PC” である

  • dimension「デバイス」に対する条件であるため、dimensionを”device”とします
  • 「~~と完全一致する」という演算を使用するため、operatorを”equals”とします
  • 上記により「デバイスが~~と完全一致する」までができています
    「~~」は今回「PC(内部的にはDESKTOP)」であるため、expressionを”DESKTOP”とします
  • これにより以下クエリが出来上がります。

{"dimension":"device","operator":"equals","expression":"DESKTOP"}

# 2つの条件をGetSearchAnalyticsアクション用に加工する

GetSearchAnalyticsアクションのfiltersパラメータへのインプットは、配列形式である必要があります。
よって、上で作成した2つの条件式を配列のカッコで囲い、条件式をカンマで区切ります。

[{"dimension":"query","operator":"contains","expression":"ファイル"},{"dimension":"device","operator":"equals","expression":"DESKTOP"}]

最後に、↑のクエリをGetSearchAnalyticsアクションのfilterに入力します。

ワークフローを実行して、取得された値を確認します。

Search Consoleの検索パフォーマンス画面に表示されている 「+新規」ボタンから実現できる動作を指定している形になります。

各dimensionにfilterを適用する際の注意点は、以下となります。

#dimensionをpageにした場合

dimensionをpageとしたfilterオブジェクトを作成する場合、expressionに指定するURLは、エンコード済みである必要があります。

NG例:https://support.autoro.io/docs/example/検索結果のスクレイピング/
OK例:https://support.autoro.io/docs/example/%e6%a4%9c%e7%b4%a2%e7%b5%90%e6%9e%9c%e3%81%ae%e3%82%b9%e3%82%af%e3%83%ac%e3%82%a4%e3%83%94%e3%83%b3%e3%82%b0/

※どちらも同じページのURLです

#diimensionをdeviceにした場合

expressionに指定できるデバイスは、以下いずれかになります。

  • DESKTOP
  • MOBILE
  • TABLET

# dimensionをcountryにした場合

expressionに国名を指定する際の国名の表記は、ISO 3166-1 alpha-3表記(リンク)である必要があります。

//例:日本
JPN //例;セルビア
SRB

より詳細なフィルターの作成方法については、以下をご参照ください。

画面上の結果と対応する値が取得できていることが確認できます。

出力される値はJSONとなります。この値はそのままスプレッドシート/Excelに貼り付ける事ができません。
JSONをスプレッドシート/Excelに貼り付けたい場合は、ConvertJSONToArrayアクションを使用する必要があります。

参考:JSONから配列への変換

# Search Consoleのデータを取得
+get_search_analytics_1:
  action>: GetSearchAnalytics
  provider: ''
  siteUrl: 'https://hogefuga.com/'
  startDate: '2022-12-26'
  endDate: ${moment().subtract(1, 'months').endOf('month').format('YYYY-MM-DD')}
  dimensions: ["device","query"]
  filters: [{"dimension":"query","operator":"contains","expression":"ファイル"},{"dimension":"device","operator":"equals","expression":"DESKTOP"}]
  rowLimit: 1000
  private: false
  meta:
    display:

 仕様上の注意点

最新のデータを取得した場合のデータの正確性

仕様により、GetSearchAnalyticsアクションの集計対象期間の日付をアクション実行時点から3日以内の値とした場合、
手元のブラウザで開いたSearch Consoleの検索パフォーマンス画面に表示されている数値と、GetSearchAnalyticsアクションで取得した値に、差異が発生する場合があります。

これは、ブラウザで開いた検索パフォーマンス画面に表示されている最新のデータが「暫定値(確定していない数値)」であるために発生します。詳細は、以下のGoogle公式情報をご参照ください。

参考:検索パフォーマンス レポート – Search Console ヘルプ

 

値が取得できなかった場合

GetSearchAnalyticsアクションに指定した条件で値が取得できなかった場合のログは、以下となります(エラーは発生しません)。
上述の実行結果と異なり、rowsプロパティが存在しません。この事実は条件式に使用することが可能です。

{
  "responseAggregationType": "byProperty"
}

<Google Search Console>

このページは役に立ちましたか?