google-ads について
curl と jq で Google Ads API を照会するコマンドラインスキルです。アカウントの確認や GAQL レポートに対応し、OAuth と開発者トークンを使ってキャンペーン、広告グループ、キーワード、顧客データを取得します。
主な機能
- 01アクセス可能な顧客アカウントの一覧表示
- 02searchStream による GAQL レポート実行
- 03キャンペーンと広告グループの照会
- 04キーワードと顧客指標の取得
- 05マネージャーアカウントのコンテキスト処理
活用シーン
- 01OAuthユーザーが使えるアカウントの確認
- 02キャンペーン費用、クリック、コンバージョンの確認
- 03広告グループとキーワードの調査
- 04マネージャーアカウントでのレポート実行
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ acedatacloud/ skills --skill google-adsインストール後、Claude Code で/google-adsを入力して読み込まれたか確認します。
詳細
curl + jq を使ってGoogle Ads APIにクエリします。2 つの認証情報と 1 つのコンテキストヘッダーが必要です。
$GOOGLE_ADS_TOKEN— ユーザーの OAuth ベアラー(adwordsスコープ)→Authorization: Bearer $GOOGLE_ADS_TOKEN$GOOGLE_ADS_DEVELOPER_TOKEN— プラットフォームのデベロッパートークン(サーバー側で注入)→ ヘッダーdeveloper-token: $GOOGLE_ADS_DEVELOPER_TOKENlogin-customer-id— マネージャー(MCC)スコープの呼び出しでのみ必要です。リクエストの実行に使うマネージャー ID、または設定されている場合は$GOOGLE_ADS_LOGIN_CUSTOMER_IDを指定します(数字のみ、ハイフンなし)。customers:listAccessibleCustomersでは不要です。
API バージョン: ベース URL は
https://googleads.googleapis.com/<vNN>です。Google は約 4 か月ごとに新しいvNNをリリースし、古いバージョンを廃止するため、バージョンをハードコードすると、いずれ動作しなくなります。この例ではv25を使っています(2026-07 時点でサポート対象)。すべての呼び出しが 404 を返す場合、そのバージョンは利用できません。廃止済みか、まだリリースされていない可能性があります。customers:listAccessibleCustomersを試してください。サポート対象のバージョンは 401/200 を返し、利用できないバージョンは 404 を返します。例で使われているバージョンから 1 つずつ下げて試し、新しいvNNが存在すると決めつける前に、Google のサポート対象バージョン一覧を確認してください。
$GOOGLE_ADS_DEVELOPER_TOKEN が空の場合、コネクターの設定が完了していません。API を呼び出さず、その旨を伝えてください(呼び出すと 401/DEVELOPER_TOKEN_NOT_APPROVED が返されます)。
VER="v25"; BASE="https://googleads.googleapis.com/$VER"
AUTH="Authorization: Bearer $GOOGLE_ADS_TOKEN"; DEV="developer-token: $GOOGLE_ADS_DEVELOPER_TOKEN"
# Customers the OAuth user can access (ids are returned as customers/<id>)
curl -sS -H "$AUTH" -H "$DEV" "$BASE/customers:listAccessibleCustomers" | jq '.resourceNames'
GAQL(searchStream)でレポートする
CID="1234567890" # target customer id, digits only
# Manager (MCC) access → send login-customer-id; direct access → drop the header.
# Array, not a plain string: the header value contains a space and would split.
LOGIN=(); [ -n "$GOOGLE_ADS_LOGIN_CUSTOMER_ID" ] && LOGIN=(-H "login-customer-id: $GOOGLE_ADS_LOGIN_CUSTOMER_ID")
curl -sS -H "$AUTH" -H "$DEV" "${LOGIN[@]}" \
-H "Content-Type: application/json" -d '{
"query":"SELECT campaign.name, metrics.cost_micros, metrics.clicks, metrics.conversions FROM campaign WHERE segments.date DURING LAST_30_DAYS ORDER BY metrics.cost_micros DESC"
}' "$BASE/customers/$CID/googleAds:searchStream" \
| jq '.[].results[]? | {campaign: .campaign.name, cost_usd: (.metrics.costMicros|tonumber/1e6), clicks: .metrics.clicks, conv: .metrics.conversions}'
GAQL リソース:campaign、ad_group、ad_group_criterion(キーワード)、customer。費用は metrics.cost_micros です(÷ 1,000,000 でアカウント通貨に換算)。
注意点
- すべてのエンドポイントで 404 が返る場合は、認証情報ではなく
VERが原因です — バージョンが廃止済みか、まだリリースされていません。個別の呼び出しで 404 が返る場合は、その呼び出しに問題があります。リソースが見つからない(顧客 ID が不正)か、パスが間違っている可能性があります。認証をデバッグする前に、customers:listAccessibleCustomersでバージョンが有効か確認してください。 - 2 つの認証情報と 1 つのコンテキストヘッダーが必要です。 すべての呼び出しで
developer-tokenが必須です。login-customer-idが必要なのは、マネージャー(MCC)アカウントとして操作する場合のみです。customers:listAccessibleCustomersはこのヘッダーなしで動作します。マネージャースコープの呼び出しでこれを省略すると、ここで 401/403 が発生する主な原因になります。 - 顧客 ID は URL/ヘッダーで数字のみにしてください(
123-456-7890のハイフンを削除します)。 searchStreamは、それぞれに.results[]を含むチャンクの配列を返します。.[].results[]?でフラット化してください。- 費用はアカウント通貨のマイクロ単位です。1e6 で割ってください。