プログラマー向けモードで表示中ビジネスユーザー向けへ
Bright Data 学習ポータル
UC-SERP-006SERPLv3

Ad Intelligence(広告出稿分析)

競合広告の出稿状況・訴求・ランディング先を分析し、自社戦略に活かす。

SERP API

KPI 例

  • 出稿検知率
  • 訴求トレンド
  • 期間比較

広告出稿分析では、競合サイトのページを直接巡回する前に、まず検索面でどの広告が出ているかを追うだけでも有効です。Bright Data の docs では SERP API が paid ads を含む各種 SERP 要素を返せるとされており、競合の訴求や出稿状況を継続観測する用途に向いています。

誰の課題か

  • 広告運用担当が、競合がどのキーワードで露出しているかを追いたい
  • マーケティングが、広告見出しや訴求軸の変化を見たい
  • リサーチ担当が、国別に出稿の有無や傾向を比較したい

推奨製品セット

製品役割使いどころ
SERP API広告枠の取得検索結果内の広告情報を JSON で取得する
API Access認証方式バッチや監視ジョブから呼ぶ
  • Google の広告面は通常結果と別配列で返るため、オーガニック結果とは保存先を分けるほうが扱いやすくなります。
  • 広告表示は地域差が大きいので、比較対象ごとに country を固定します。

最小実装イメージ

curl

curl -X POST "https://api.brightdata.com/request" \
  -H "Authorization: Bearer $BRIGHTDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "zone": "serp_api1",
        "url": "https://www.google.com/search?q=travel+insurance",
        "format": "json",
        "method": "GET",
        "country": "us"
      }'

Python

import os
import requests
 
API_KEY = os.environ["BRIGHTDATA_API_KEY"]
 
response = requests.post(
    "https://api.brightdata.com/request",
    headers={
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json",
    },
    json={
        "zone": "serp_api1",
        "url": "https://www.google.com/search?q=travel+insurance",
        "format": "json",
        "method": "GET",
        "country": "us",
    },
    timeout=60,
)
response.raise_for_status()
data = response.json()
 
for section_name in ("top_ads", "bottom_ads", "top_pla", "jackpot_pla"):
    for ad in data.get(section_name, []):
        print(
            section_name,
            ad.get("title"),
            ad.get("link"),
        )
  • Google SERP では広告が複数の位置に分かれて返ることがあります。
  • 保存時は section_name を持たせ、上部広告と下部広告を混同しないようにします。

運用ポイント

  • 広告出稿の有無は日ごとに揺れるため、単発観測ではなく時系列で見る前提にします。
  • 広告の見出しやリンク先だけでなく、どの位置に出ていたかも合わせて保存します。
  • 地域比較をする場合は、同一キーワードでも国ごとに別ジョブで取得します。
  • オーガニック結果と広告結果を同じ表に混ぜると分析が崩れやすいため、保存先を分けます。

関連リンク