このガイドでは、REST エンドポイントを直接呼び出す例を紹介します。 クライアント ライブラリを使用します。
前提条件
以下のサンプルはすべて、bash にコピーして貼り付けるためのものです。 シェルを実行します。
開発者トークンも必要です。 アカウントへのアクセスに問題がなく、 クライアント アカウントを 1 つ以上含む Google 広告 MCC アカウント。
環境変数
以下にアカウントの認証情報と ID を入力し、 環境変数を構成します。 承認ガイドに、 OAuth 2.0 アクセス トークン。
API_VERSION="17"
DEVELOPER_TOKEN="DEVELOPER_TOKEN"
OAUTH2_ACCESS_TOKEN="OAUTH_ACCESS_TOKEN"
MANAGER_CUSTOMER_ID="MANAGER_CUSTOMER_ID"
CUSTOMER_ID="CUSTOMER_ID"
追加のオブジェクト ID(省略可)
以下の例の一部は、既存の予算またはキャンペーンで使用できます。もし 既存のオブジェクトの ID がある場合は、以下に入力してください。
BUDGET_ID=BUDGET_ID
CAMPAIGN_ID=CAMPAIGN_ID
それ以外の場合は、2 つの変更 - サンプルの作成で新しい予算が作成されます。 役立ちます
検索
クエリ クックブック ガイドには、 これらのサンプルは、Google 広告のデフォルトの画面の一部に対応しています。 環境変数を使用できます。Google のインタラクティブ クエリ ビルダーツールは、 カスタムクエリをインタラクティブに作成するための優れたリソースでもあります。
ページ分けあり
search
メソッドはページ分けを使用し、ページサイズは 10,000 アイテムに固定されています。
query
とともに指定された page_token
。
cURL
curl -f --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:search" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data '{ "query": " SELECT campaign.name, campaign_budget.amount_micros, campaign.status, campaign.optimization_score, campaign.advertising_channel_type, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, campaign.bidding_strategy_type FROM campaign WHERE segments.date DURING LAST_7_DAYS AND campaign.status != 'REMOVED' ", "page_token":"${PAGE_TOKEN}" }'
GAQL
SELECT campaign.name, campaign_budget.amount_micros, campaign.status, campaign.optimization_score, campaign.advertising_channel_type, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, campaign.bidding_strategy_type FROM campaign WHERE segments.date DURING LAST_7_DAYS AND campaign.status != 'REMOVED'
ストリーミング
searchStream
メソッドは、すべての結果を 1 つのレスポンスにストリーミングするため、
pageSize
フィールドはサポートされていません。
cURL
curl -f --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:searchStream" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data '{ "query": " SELECT campaign.name, campaign_budget.amount_micros, campaign.status, campaign.optimization_score, campaign.advertising_channel_type, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, campaign.bidding_strategy_type FROM campaign WHERE segments.date DURING LAST_7_DAYS AND campaign.status != 'REMOVED' " }'
GAQL
SELECT campaign.name, campaign_budget.amount_micros, campaign.status, campaign.optimization_score, campaign.advertising_channel_type, metrics.clicks, metrics.impressions, metrics.ctr, metrics.average_cpc, metrics.cost_micros, campaign.bidding_strategy_type FROM campaign WHERE segments.date DURING LAST_7_DAYS AND campaign.status != 'REMOVED'
変更
複数の変換オペレーション(create
、update
、または remove
)を 1 つの
operations
配列を入力して、単一の JSON リクエスト本文を作成します。
作成
この例では、1 つのリクエストで 2 つの共有キャンペーン予算を作成しています。
curl -f --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/campaignBudgets:mutate" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data "{ 'operations': [ { 'create': { 'name': 'My Campaign Budget #${RANDOM}', 'amountMicros': 500000, } }, { 'create': { 'name': 'My Campaign Budget #${RANDOM}', 'amountMicros': 500000, } } ] }"
次の例では、既存のキャンペーン予算の BUDGET_ID
を使用しています。できます。
前のステップの出力からコピーして貼り付けます。
BUDGET_ID=BUDGET_ID
他のリソースを参照するリソースは、
リソース名。以下で作成したキャンペーン
文字列値のリソース名で campaignBudget
を参照します。
curl -f --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/campaigns:mutate" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data "{ 'operations': [ { 'create': { 'status': 'PAUSED', 'advertisingChannelType': 'SEARCH', 'geoTargetTypeSetting': { 'positiveGeoTargetType': 'PRESENCE_OR_INTEREST', 'negativeGeoTargetType': 'PRESENCE_OR_INTEREST' }, 'name': 'My Search campaign #${RANDOM}', 'campaignBudget': 'customers/${CUSTOMER_ID}/campaignBudgets/${BUDGET_ID}', 'targetSpend': {} } } ] }"
更新
update
オペレーションを使用して、既存のオブジェクトの属性を更新します。次の
例で、既存のキャンペーンを使用します。前のスライドから
示されます。
CAMPAIGN_ID=CAMPAIGN_ID
すべての更新には updateMask
フィールドが必要です。フィールドのカンマ区切りのリストです。
リクエストに含める必要がある JSON 属性、
更新されますupdateMask
にリストされているがリクエストに存在しない属性
オブジェクトでクリアされます。updateMask
に表示されていないが存在する属性
指定されても無視されます。
curl -f --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/campaigns:mutate" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data "{ 'operations': [ { 'update': { 'resourceName': 'customers/${CUSTOMER_ID}/campaigns/${CAMPAIGN_ID}', 'name': 'A changed campaign name #${RANDOM}', }, 'updateMask': 'name' } ], }"
削除
オブジェクトを削除するには、リソース名を remove
オペレーションとして指定します。
curl -f --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/campaigns:mutate" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data "{ 'operations': [ { 'remove': 'customers/${CUSTOMER_ID}/campaigns/${CAMPAIGN_ID}' } ], }"
部分的な障害
1 つのリクエストに複数のオペレーションが含まれている場合は、必要に応じて
partialFailure
。true
の場合、オペレーションが正常に完了し、
無効なオペレーションはエラーを返します。false
の場合、リクエスト内のすべてのオペレーション
すべて有効な場合にのみ成功します。
次の例では、既存のキャンペーンを使用します。ここからコピー&ペーストして サンプル出力を作成します。
CAMPAIGN_ID=CAMPAIGN_ID
次のリクエストには 2 つのオペレーションが含まれています。まず、
入札戦略が適用され、次のテストでは
無効な ID が含まれています。2 番目のオペレーションではエラー(
キャンペーン ID が無効)であり、partialFailure
が false
に設定されているため、
最初のオペレーションも失敗し、既存のキャンペーンの入札戦略も
更新されません。
curl --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/campaigns:mutate" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data "{ 'partialFailure': false, 'operations': [ { 'update': { 'resourceName': 'customers/${CUSTOMER_ID}/campaigns/${CAMPAIGN_ID}', 'manualCpc': { 'enhancedCpcEnabled': false } }, 'updateMask': 'manual_cpc.enhanced_cpc_enabled' }, { 'remove': 'customers/${CUSTOMER_ID}/campaigns/INVALID_CAMPAIGN_ID' } ] }"
グループ化されたオペレーション
googleAds:mutate
メソッドは、次を含むオペレーションのグループの送信をサポートします。
リソースが含まれています。さまざまなタイプの多数のオペレーションを
グループとして実行すべき一連の操作が連結されています。
どのオペレーションも失敗する場合は一連のオペレーションが成功し、いずれかのオペレーションが失敗した場合はすべて失敗
失敗します
この例では、キャンペーンの予算、キャンペーン、広告グループ、 まとめて処理できます。連続する各オペレーションは、 見ていきますいずれかのオペレーションが失敗すると、オペレーション グループ全体が失敗します。
負の整数(-1
、-2
、-3
)がリソースでプレースホルダとして使用されます。
実行時にシーケンスの結果が動的に入力されます。
学びました。
curl -f --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/googleAds:mutate" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data "{ 'mutateOperations': [ { 'campaignBudgetOperation': { 'create': { 'resourceName': 'customers/${CUSTOMER_ID}/campaignBudgets/-1', 'name': 'My Campaign Budget #${RANDOM}', 'deliveryMethod': 'STANDARD', 'amountMicros': 500000, 'explicitlyShared': false } } }, { 'campaignOperation': { 'create': { 'resourceName': 'customers/${CUSTOMER_ID}/campaigns/-2', 'status': 'PAUSED', 'advertisingChannelType': 'SEARCH', 'geoTargetTypeSetting': { 'positiveGeoTargetType': 'PRESENCE_OR_INTEREST', 'negativeGeoTargetType': 'PRESENCE_OR_INTEREST' }, 'name': 'My Search campaign #${RANDOM}', 'campaignBudget': 'customers/${CUSTOMER_ID}/campaignBudgets/-1', 'targetSpend': {} } } }, { 'adGroupOperation': { 'create': { 'resourceName': 'customers/${CUSTOMER_ID}/adGroups/-3', 'campaign': 'customers/${CUSTOMER_ID}/campaigns/-2', 'name': 'My ad group #${RANDOM}', 'status': 'PAUSED', 'type': 'SEARCH_STANDARD' } } }, { 'adGroupAdOperation': { 'create': { 'adGroup': 'customers/${CUSTOMER_ID}/adGroups/-3', 'status': 'PAUSED', 'ad': { 'responsiveSearchAd': { 'headlines': [ { 'pinned_field': 'HEADLINE_1', 'text': 'An example headline' }, { 'text': 'Another example headline' }, { 'text': 'Yet another headline' } ], 'descriptions': [ { 'text': 'An example description' }, { 'text': 'Another example description' } ], 'path1': 'all-inclusive', 'path2': 'deals' }, 'finalUrls': ['https://www.example.com'] } } } } ] }"
アカウント管理
アカウントの作成
createCustomerClient
メソッドを使用して新しいアカウントを作成します。URL は
クライアント アカウント ID ではなく MCC アカウント ID が必要です。新しいクライアント
その MCC アカウントの配下に作成されます。
curl f --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${MANAGER_CUSTOMER_ID}:createCustomerClient" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data "{ 'customerClient': { 'descriptiveName': 'My Client #${RANDOM}', 'currencyCode': 'USD', 'timeZone': 'America/New_York' } }"
アクセス可能なアカウントを一覧表示する
listAccessibleCustomers
メソッドに対する単純な GET
リクエストを使用してリストを取得する
指定された OAuth 2.0 アクセス トークンでアクセス可能な Google 広告アカウントの数。管理者なし
またはクライアント アカウント ID を使用する必要があります。
curl -f --request GET "https://googleads.googleapis.com/v${API_VERSION}/customers:listAccessibleCustomers" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \
バイナリ アセットのアップロード
assets:mutate
メソッドは、アップロードと管理に使用されます。
アセット。画像などのバイナリデータは、
パディングありの標準 Base64 エンコードを使用した文字列。Standard または
パディングありかどうかにかかわらず、URL セーフの Base64 エンコードを使用できます。
この例では、サンプルを簡潔にするために 1 ピクセルの GIF をエンコードしています。実際には、
data
ペイロードははるかに大きい。
base64
コマンドライン ユーティリティ(
GNU コア ユーティリティ)
を使用して、1 ピクセルの GIF 画像をエンコードします。
base64 1pixel.gif
base64 でエンコードされた値は、API リクエストの data
属性として指定されます。
curl -f --request POST "https://googleads.googleapis.com/v${API_VERSION}/customers/${CUSTOMER_ID}/assets:mutate" \ --header "Content-Type: application/json" \ --header "developer-token: ${DEVELOPER_TOKEN}" \ --header "login-customer-id: ${MANAGER_CUSTOMER_ID}" \ --header "Authorization: Bearer ${OAUTH2_ACCESS_TOKEN}" \ --data "{ 'operations': [ { 'create': { 'name': 'My image asset #${RANDOM}', 'type': 'IMAGE', 'imageAsset': { 'data': 'R0lGODlhAQABAAAAACH5BAEAAAAALAAAAAABAAEAAAIA' } } } ] }"