じょるブログ

現役理系大学生による大学生に向けた情報サイト

web

google仕事検索(Googe for job)に求人情報を載せる方法 – indexing APIの設定についても解説

投稿日:2019年3月10日 更新日:

 

google仕事検索に求人情報を載せるまでの流れ

  1. 求人情報の構造化データをウェブページに追加
  2. 作成した構造化データが正しいかどうかテスト
  3. Googleに情報提供

    

1. 求人情報の構造化データをウェブページに追加

採用情報を掲載しているページに、構造化データをJSON-LDというJSONベースのデータ形式で記述します。

 

構造化データのサンプル

<script type="application/ld+json"> 
{
  "@context" : "http://schema.org/",
  "@type" : "JobPosting",
  "title" : "居酒屋 ホール・キッチン",
  "description" : "<p>居酒屋のホールスタッフを募集しています</p>
    <ul>
        <li>未経験可、実務経験は一切問いません。
        <li>研修期間あり。研修期間3ヶ月間(研修期間中は時給1,000円)</li>
        <li>シフト制
        <li>週2日以上、1日3時間以上
       <li>勤務曜日・時間は相談に応じます!
    </ul>",
  "identifier": {
    "@type": "PropertyValue",
    "name": "会社名",
    "value": "123"
  },
  "datePosted" : "2019-01-01",
  "validThrough" : "2019-06-01",
  "employmentType" : "PART_TIME",
  "hiringOrganization" : {
    "@type" : "Organization",
    "name" : "会社名",
    "sameAs" : "会社URL"
  },
  "jobLocation" : {
    "@type" : "Place",
    "address" : {
      "@type" : "PostalAddress",
      "streetAddress" : "1-2-3",
      "addressLocality" : "渋谷区代々木神園町",
      "addressRegion" : "東京都",
      "postalCode" : "1250052",
      "addressCountry": "JP"
    }
  },
  "baseSalary": {
    "@type": "MonetaryAmount",
    "currency": "JPY",
    "value": {
      "@type": "QuantitativeValue",
      "value": 1000,
      "unitText": "HOUR"
    }
  }
}
</script>

各プロパティの詳細はこちらをご覧ください。

  

2.  作成した構造化データが正しいかどうかテスト

こちらのサイトに、構造化データのテキストか、作成した採用ページのURLを貼り付けます。

  

例として、上記の構造化データのテキストを入力してみます。

  

入力して”テスト実行”というボタンをクリックすると以下のような画面に切り替わります。

この画面の右側の”JobPosting”というところにエラーなしと書かれていれば問題ありません。

構造化データに推奨データが含まれていないと警告が出ることがありますが、エラーがなければ問題ありません。

  

”JobPosting”というところをクリックすると以下のようにデータが表示され、エラーや警告がある場合は、下にエラー内容が表示されます。

  

緑色の”プレビュー”をクリックすると、どのように表示されるか、確認することができます。

  

3. Googleに情報提供

googleに作成した採用ページの情報を提供するには、Indexing APIを使用する方法と、Google に新しいサイトマップを送信する方法の2つの方法があります。

Googleでは、Indexing API の方が早く Googlebot に対しページをクロールするよう指示を出せるため、Indexing APIを使用する方法を推奨しています。

  

手法1  Indexing APIを使用する

  1. Indexing API を有効にする。
  2. 新しいサービス アカウントを作成する。
  3. Search Console で所有権を確認
  4. アクセス トークンを取得し、 API 呼び出しを認証する。
  5. リクエストを送信して、新規、更新済み、削除済みのウェブページを Google に通知する。

  

1. Indexing API を有効にする。

まず、セットアップツールを使用して、Google API コンソールでのプロジェクトの作成、API の有効化、認証情報の作成を行います。

 

セットアップツールのURLにアクセスすると以下のような画面が表示されます。

プロジェクトを作成が選択されている状態で”続行”をクリックします。

  

するとAPIが有効になるので、”認証情報に進む”をクリックして、認証情報の設定を行います。

  

使用するAPIの欄で”indexing API”を選択します。APIを呼び出す場所、アクセスするデータの種類を選択したら、”必要な認証情報”をクリックします。

  

名前とアプリケーションIDの欄を入力します。アプリケーションIDの欄には英小文字32字入力してください。※ハイフン、アンダーバーは使えません。

入力したら、”OAuthクライアントIDを作成”をクリックします。

   

ユーザーに表示するサービス名の欄を入力し、”次へ”をクリックします。

  

”ダウンロード”をクリックし、認証情報をダウンロードします。

  

2. 新しいサービス アカウントを作成する。

次に、サービスアカウントを作成します。

[サービス アカウント] ページを開くと以下のような画面が表示されるので”選択”をクリックして、先ほど作成したプロジェクトを選択します。
※デフォルトではプロジェクト名は”My Project”となっています。

  

プロジェクトを選択すると以下の画面に切り替わるので、”サービスアカウントを作成”というところをクリックします。

  

まず、サービスアカウント名を入力し、”作成”をクリックします。

  

次に、役割を選択し、”続行”をクリックします。

  

最後に、”キーを作成”をクリックし、キーのタイプを選択し、”作成”をクリックすると、秘密鍵がダウンロードされます。

  

3. Search Console で所有権を確認

まず、作成したサービスアカウントの画面を開き、メールアドレスを控えておきます。

  

次に、 Search Console に求人情報が掲載されているサイトを登録します。登録が完了したら、Search Consoleにアクセスし、”プロパティの管理”をクリックして”ユーザーの追加/削除”を選択します。

  

”新しいユーザーを追加”をクリックし、先ほど控えたメールアドレスを入力し、”追加”をクリックします。

   

4. アクセス トークンを取得し、 API 呼び出しを認証する。

 ・pythonで行う場合

まず、OAuth アクセス トークンを取得するためのプログラムを実行するのに必要なモジュールを、以下のコマンドでインストールします。

pip install --upgrade google-api-python-client
pip install httplib2

続いて、アクセス トークンを取得するプログラムを作成します。

# -*- coding: utf-8 -*-

from oauth2client.service_account import ServiceAccountCredentials
import httplib2


SCOPES = [ "https://www.googleapis.com/auth/indexing" ]
ENDPOINT = "https://indexing.googleapis.com/v3/urlNotifications:publish"

# service_account_file.json is the private key that you created for your service account.
JSON_KEY_FILE = "サービスアカウント作成時にダウンロードしたjsonファイル.json"

credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES)

http = credentials.authorize(httplib2.Http())

#// Define contents here. This example shows a simple update request. Other types
#// of requests are described in the next step.
content = "{\
  \"url\": \"https://google仕事検索に掲載する採用ページのURL\",\
  \"type\": \"URL_UPDATED\"\
}"

response, content = http.request(ENDPOINT, method="POST", body=content)

print(response)
print("")
print(content)

上記のプログラムのjsonファイル名とgoogle仕事検索に掲載する採用ページのURLの値を変更してください。

作成したプログラムと同じフォルダーに、サービスアカウント作成時にダウンロードしたjsonファイルを移動させます。

   

最後にこのプログラムを実行して、status_code200と出力されれば成功です。

      

    

 ・phpで行う場合

まず、OAuth アクセス トークンを取得するためのプログラムを実行するのに必要なモジュール(google-api-php-client)をこちらのサイトからダウンロードします。

続いて、アクセス トークンを取得するプログラムを作成します。

<?php

require_once './google-api-php-client-2.2.2/vendor/autoload.php';

$client = new Google_Client();

// service_account_file.json is the private key that you created for your service account.
$client->setAuthConfig('サービスアカウント作成時にダウンロードしたjsonファイル.json');
$client->addScope('https://www.googleapis.com/auth/indexing');

// Get a Guzzle HTTP Client
$httpClient = $client->authorize();
$endpoint = 'https://indexing.googleapis.com/v3/urlNotifications:publish';

// Define contents here. The structure of the content is described in the next step.
$content = "{
  \"url\": \"https://google仕事検索に掲載する採用ページのURL\",
  \"type\": \"URL_UPDATED\"
}";

$response = $httpClient->post($endpoint, [ 'body' => $content ]);
$status_code = $response->getStatusCode();

print_r($response);
echo "\n";
echo "$status_code";

上記のプログラムのjsonファイル名とgoogle仕事検索に掲載する採用ページのURLの値を変更してください。

作成したプログラムと同じフォルダーに、サービスアカウント作成時にダウンロードしたjsonファイルを移動させます。

また、ダウンロードしたgoogle-api-php-clientの圧縮ファイルを解凍し、フォルダー名を

google-api-php-client-X.X.X から google-api-php-client

に変更して、作成したプログラムと同じフォルダーにそのフォルダーを移動させてください。

  

最後にこのプログラムを実行して、status_code200と出力されれば成功です。

※複数のドメインを設定している場合(wwwの有無、httpとhttpsなど)
“code”: 403, “message”: “Permission denied. Failed to verify the URL ownership.”というようなエラーメッセージが表示される場合があります。全てのドメインにおいて所有権の設定を行うと改善される場合があります。

   

   

     

5. リクエスト送信

indexing API では更新(登録)、削除通知の3種類のリクエストを送信することができます。

    

・更新(登録)リクエスト

採用ページを更新(または新規作成)したことをgoogleに知らせるには、先ほど作成したプログラムを実行します。

   

・削除リクエスト

このリクエストは、インデックスからページを削除したり、URL を再クロールしないようにする際に使用します。

※削除をリクエストする場合は、事前にサーバーからページを削除しておく必要があります。

このリクエストを送信するには、先ほど作成したプログラム中のcontenttypeキーの値を

URL_UPDATED  から  URL_DELETED

に変更して実行してください。

pythonコードサンプル
# -*- coding: utf-8 -*-

from oauth2client.service_account import ServiceAccountCredentials
import httplib2

SCOPES = [ "https://www.googleapis.com/auth/indexing" ]
ENDPOINT = "https://indexing.googleapis.com/v3/urlNotifications:publish"

JSON_KEY_FILE = "サービスアカウント作成時にダウンロードしたjsonファイル.json"

credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES)

http = credentials.authorize(httplib2.Http())

content = "{\
  \"url\": \"https://google仕事検索に掲載する採用ページのURL\",\
  \"type\": \"URL_DELETED\"\
}"

response, content = http.request(ENDPOINT, method="POST", body=content)

print(response)
print("")
print(content)

   

    

・通知リクエスト

このリクエストを実行すると、Google が最後に受信した更新と削除の通知を確認できます。

このリクエストを送信するには、先ほど作成したプログラム中のENDPOINT

POST https://indexing.googleapis.com/v3/urlNotifications:publish
から
https://indexing.googleapis.com/v3/urlNotifications/metadata?url=エンコードされたURL

に変更し、content の文を削除し、

メソッドを”POST”から”GET”に変更して実行します。

pythonコードサンプル
# -*- coding: utf-8 -*-

from oauth2client.service_account import ServiceAccountCredentials
import httplib2

SCOPES = [ "https://www.googleapis.com/auth/indexing" ]
ENDPOINT = "https://indexing.googleapis.com/v3/urlNotifications/metadata?url=エンコードされたURL"

JSON_KEY_FILE = "サービスアカウント作成時にダウンロードしたjsonファイル.json"

credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES)

http = credentials.authorize(httplib2.Http())

response, content = http.request(ENDPOINT, method="GET")

print(response)
print("")
print(content)

   

   

   

手法2  Google に新しいサイトマップを送信する

indexing API を使わずに求人情報を掲載するには、GET リクエストを次の URL に送信し、Google に新しいサイトマップを送信します。

※googleでは indexing API を用いた方法を推奨しています。

http://www.google.com/ping?sitemap=”サイトマップのurl”

linux系でのコマンド

curl http://www.google.com/ping?sitemap=https://サイトマップのurl

   

成功すると

Your Sitemap has been successfully added to our list of Sitemaps to crawl. If this is the first time you are notifying Google about this Sitemap, please add it via http://www.google.com/webmasters/tools/ so you can track its status. Please note that we do not add all submitted URLs to our index, and we cannot make any predictions or guarantees about when or if they will appear.

と返ってきます。

-web

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

apacheでCGIを動作させる方法

apacheがインストールされているサーバーでcgiファイルを実行しようとしたところ、ファイルの内容が表示されるだけで実行されなかった。デフォルトではこのようにcgiファイルは実行できないとのことなの …