簡潔な回答
SERP APIで特定の国と都市のGoogle検索結果を取得するにはどうすればよいですか?
SerpCrypto を使う場合、gl に国コード、hl に言語、location に City, Region, Country で書いた都市名(例: Austin, Texas, United States)を設定します。電話結果を取得するには device=mobile を追加します。各組み合わせは1回の検索として1クレジットで、$0.30/1K検索 から利用でき、応答には適用された設定がそのまま返ります。暗号資産で支払い、KYC不要です。
各ロケーションパラメータは何をしますか?
国(gl)、言語(hl)、Googleドメイン、都市レベルの位置文字列、デスクトップまたはモバイル.
| パラメータ | デフォルト | 効果 |
|---|---|---|
gl | us | 検索結果の国。ISO 3166-1の2文字を小文字で指定します。イギリスには gb を使います。 |
hl | en | インターフェースの言語: ラベル、People Also Ask、一部のスニペットがこれに従います。 |
location | なし | 国の中の正確な場所。ローカルパックや都市レベルのランキングに使います。 |
google_domain | gl のドメイン | 検索を実行するGoogleドメイン(例: google.de)。Bingでは無視されます。 |
device | desktop | desktop または mobile: レイアウトやローカルブロックが両者で異なります。 |
gl、hl、locationの違いは何ですか?
gl はどの国の検索結果を取得するかを指定します。hl はその人が読む言語を指定し、インターフェースや、しばしば質問やスニペットが変わります。location は国を都市や地域に絞り込み、検索クエリにローカルな意図がある場合に重要になります。
これらは自由に組み合わせられます。スイスにいるフランス語話者は gl=ch、hl=fr です。ベルリンからの英語での検索は gl=de、hl=en、location=Berlin, Berlin, Germany です。gl と location の国は同じにしてください。ある国の都市に別の国の gl を組み合わせると、実際の訪問者には見えない結果になります。
都市をターゲットにするにはどうすればよいですか?
場所は英語で、小さい単位から大きい単位の順に書きます: City, Region, Country。例: Austin, Texas, United States、Manchester, England, United Kingdom、Munich, Bavaria, Germany、Lyon, Auvergne-Rhone-Alpes, France。通りの名前や郵便番号ではなく、都市名を使ってください。
応答内の search_parameters.location を確認してください。適用された場所が表示されます。使用できない値は 400 invalid_parameter を返し、クレジットは消費されないので、場所のリストを安価にテストできます。
# The same query from two cities: compare the local packs
for city in "Austin, Texas, United States" "Denver, Colorado, United States"; do
curl -sG "https://serpcrypto.com/api/v1/search" \
-H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
--data-urlencode "q=emergency plumber" \
--data-urlencode "location=$city" \
-d gl=us -d hl=en -d device=mobile \
| jq -r --arg city "$city" '.local_results[]? | "\($city)\t\(.position)\t\(.title)"'
done一般的な市場にはどのコードを使えばよいですか?
頻出25市場。google_domainはglのドメインがデフォルトなので、設定が必要なことはほとんどありません。
| 国 | gl | 一般的な hl | Googleドメイン |
|---|---|---|---|
| アメリカ | us | en | google.com |
| イギリス | gb | en | google.co.uk |
| カナダ | ca | en、fr | google.ca |
| オーストラリア | au | en | google.com.au |
| アイルランド | ie | en | google.ie |
| ニュージーランド | nz | en | google.co.nz |
| ドイツ | de | de | google.de |
| フランス | fr | fr | google.fr |
| スペイン | es | es | google.es |
| イタリア | it | it | google.it |
| オランダ | nl | nl | google.nl |
| スイス | ch | de、fr、it | google.ch |
| ポーランド | pl | pl | google.pl |
| スウェーデン | se | sv | google.se |
| トルコ | tr | tr | google.com.tr |
| ブラジル | br | pt-BR | google.com.br |
| メキシコ | mx | es | google.com.mx |
| アルゼンチン | ar | es | google.com.ar |
| インド | in | en、hi | google.co.in |
| 日本 | jp | ja | google.co.jp |
| 韓国 | kr | ko | google.co.kr |
| インドネシア | id | id | google.co.id |
| ベトナム | vn | vi | google.com.vn |
| シンガポール | sg | en | google.com.sg |
| 南アフリカ | za | en | google.co.za |
言語コードはGoogleがインターフェースで使用しているものです。バイリンガル国家の場合は、対象読者が読む言語を選んでください。
どのGoogleドメインを使えばいいですか?
通常は不要です。google_domainを省略すれば、上の表のようにglの国のドメインがAPIによって使われます。特定の構成を再現したい場合のみ設定してください。例えばgoogle.comとgl=gbの組み合わせです。
ドメインだけでは結果の国は決まりません。実際に効いてくるのはglとlocationであり、だからこそ回答には3つすべてがsearch_parametersに記録されます。
モバイルとデスクトップで結果は変わりますか?
多くの場合、変わります。モバイル版のページではブロックの順序が異なったり、近隣に関わる検索意図でローカル結果が多く表示されたり、スニペットが短くなったりすることがあります。訪問者の大半がスマートフォンを使うならdevice=mobileを追跡し、全体像を把握したいなら両方を追跡して、各ランキングと一緒にデバイスを保存してください。
デバイスごとに別々の検索になるため、両方を追跡するとそれらのキーワードのクレジットは2倍になります。100,000検索パックの$0.56/1K検索では、1,000キーワードを2デバイスで30日間追跡すると60,000回の検索を消費します。
1つのスクリプトで複数の国を比較するにはどうすればいいですか?
市場のリストをループし、APIが実際に適用した内容を保存します。Pythonの例では、1つの検索クエリを都市をそれぞれ指定して3か国に送信し、使用されたドメインと最初のリンクを出力します。
import os
import requests
MARKETS = [
{"gl": "de", "hl": "de", "location": "Munich, Bavaria, Germany"},
{"gl": "fr", "hl": "fr", "location": "Lyon, Auvergne-Rhone-Alpes, France"},
{"gl": "br", "hl": "pt-BR", "location": "Curitiba, State of Parana, Brazil"},
]
for market in MARKETS:
r = requests.get(
"https://serpcrypto.com/api/v1/search",
params={"q": "running shoes", **market},
headers={"Authorization": "Bearer " + os.environ["SERPCRYPTO_API_KEY"]},
timeout=60,
)
r.raise_for_status()
applied = r.json()["search_parameters"]
top = r.json().get("organic_results", [])[:1]
print(applied["gl"], applied.get("google_domain"), [x["link"] for x in top])Bingも同じパラメータを受け付けますか?
q、gl、hl、device、pageについてははい: engine=bingで同じコードを使用します。google_domainはBingには適用されず、無視されます。応答は同じフレームで、organic_resultsとrelated_searchesを含みます。ユースケースについてはBingページをご覧ください。
位置に関する質問
ZIPコードやGPS座標から検索できますか?
バージョン1ではできません。locationは都市レベルの地名を受け付けます。地図上の地点周辺の結果を得るには、エリア名を指定した検索クエリとともにengine=google_mapsを使用してください(例: dentist Brooklyn)。
gl=deなのに英語のラベルが返るのはなぜですか?
hlはデフォルトでenになるためです。ドイツ在住の人が見るドイツ語のインターフェース、質問、ラベルを得るには、hl=deも設定してください。
位置は検索の価格を変えますか?
いいえ。国、都市、言語、デバイスにかかわらず、すべての検索は1クレジットです。プリペイドの検索クレジットに有効期限はありません。未使用の検索は、使用するまでアカウントに残ります。
イギリスのコードはどれですか?
gbを使用してください。これはISO 3166-1コードです。対応するGoogleドメインはgoogle.co.ukで、gl=gbのときにAPIが自動的に選択します。