順位は市場ごとに異なります。同じキーワードでも、米国・ブラジル・ドイツではまったく異なる結果が表示されることがあります。国パラメータを備えたGoogle Search APIを使えば、各市場を正確に追跡できます。ここでは serp.cheap を使った方法を紹介します。
gl パラメータ
gl は、どの国のGoogleにクエリを送るかを選択し、適切なTLDと地域言語を使用します:
import requests
def rank_in(keyword, domain, gl):
data = requests.post("https://api.serp.cheap/v1/search",
headers={"X-API-Key": "YOUR_KEY"},
json={"q": keyword, "gl": gl}).json()
for r in data["organic"]:
if domain in r["link"]:
return r["position"]
return None
for market in ["us", "gb", "de", "br"]:
print(market, rank_in("running shoes", "nike.com", market))
対応国
us、br、gb、de、fr、es、it、mx、ca、au、jp、nl — 12市場、それぞれ正しいGoogleのTLDと言語を使用します。hl を追加すると、国内での表示言語を上書きできます(例:カナダでのフランス語の結果)。
市区町村レベルの意図
serp.cheapは国レベルでローカライズします。市区町村や地区レベルの意図には、場所をクエリに組み込み("emergency plumber austin tx")、gl を国に固定してください。そのフレーズに対するローカルインテントのSERPを取得できます。
マルチ市場ダッシュボードを作る
キーワードリストを gl の値全体でループし、(date, keyword, market, position) を保存します。これで位置情報対応の順位トラッカーが完成します。保存とスケジューリングのパターンについては Pythonで順位トラッカーを作る を参照してください。
コスト
キーワード・市場ごとに1リクエスト。1日あたり50キーワード × 4市場 = 200リクエストで、フレッシュ取得なら約$0.12/日、キャッシュヒットがあればそれ以下です。