オブジェクトを変更する

API 構造ガイドで説明したように、Google Ads API の各最上位リソースには、リソースのインスタンスの変更をサポートする、対応するリソースタイプ固有のサービスがあります。GoogleAdsService.Mutate を使用して、1 つのリクエストで複数のリソースタイプをアトミックにミューテーションすることもできます。

このガイドでは、CampaignService を使用して Campaign オブジェクトの変更を説明しますが、同じコンセプトが他のすべてのリソースタイプ固有のサービスに適用されます。

変更リクエスト

リソースタイプ固有の各サービスには、変更リクエストを受け入れる mutate メソッドがあります。このリクエストは、次の要素で構成されています。

  • customer_id(REST URL では customerId)
  • operations のコレクション
  • partial_failure、validate_only、response_content_type などの省略可能な実行設定(変更後に変更可能なリソースまたはリソース名のみが返されるかどうかを決定します)

たとえば、CampaignService の MutateCampaigns メソッドは、次の要素で構成される MutateCampaignsRequest を受け入れます。

  • A: customer_id
  • CampaignOperation オブジェクトのコレクション(operations)
  • オプションの実行設定(partial_failure、validate_only、response_content_type は、優先するレスポンス タイプを示します)

運用

CampaignOperation などのオペレーション オブジェクトを使用すると、operation フィールドを設定して、単一のリソースに対して実行するアクションを指定できます。このフィールドは、次の属性で構成される oneof フィールドです。

create
リソースの新しいインスタンスを作成します。
update
update リソースの属性と一致するようにリソースを更新します。このフィールドを設定する場合は、オペレーションの update_mask も設定する必要があります。これにより、更新オペレーション中に変更する属性を Google Ads API に伝えます。各クライアント ライブラリには、update_mask を生成するフィールド マスク ユーティリティまたはヘルパー メソッドが含まれています。
remove
リソース名文字列(customers/1234567890/campaigns/987654321 など)で指定されたリソースを削除します。

operation フィールドは oneof フィールドであるため、1 回のオペレーションで複数のオブジェクトを変更することはできません。たとえば、1 つのキャンペーンを作成して別のキャンペーンを削除する場合は、リクエストに CampaignOperation のインスタンスを 2 つ追加します。1 つは create を設定し、もう 1 つは remove を設定します。

バッチ オペレーション

1 つのオペレーションで作成、更新、削除できるリソースは 1 つだけですが、1 つの変更リクエストに複数のオペレーションを含めることができます。1 つのオペレーションを含む複数の変更リクエストを送信するのではなく、オペレーションを 1 つの変更リクエストにまとめる必要があります。

たとえば、10 個のキャンペーンを作成する場合は、10 個の CampaignOperation オブジェクトを含む 1 つの MutateCampaignsRequest を送信する必要があります。異なるリソースタイプにわたるオペレーションを 1 つのリクエストにグループ化するには、GoogleAdsService.Mutate またはミューテーション リソースを使用します。

mutate レスポンス

レスポンスで返される内容は、変更リクエストの response_content_type フィールドで送信された内容によって異なります。たとえば、MUTABLE_RESOURCE が指定されている場合、レスポンスには、リソースの resource_name と campaign のキャンペーンの変更可能なフィールドの両方が含まれます。デフォルト(RESOURCE_NAME_ONLY)では、各 MutateCampaignResult に resource_name のみが入力されます。

mutate エラー

デフォルト(partial_failure = false)では、変更リクエストのオペレーションは、リクエスト内のすべてのオペレーションが成功した場合にのみ Google 広告アカウントに適用されます。オペレーションが失敗すると、リクエスト全体がロールバックされます。部分的な失敗をサポートする変更リクエスト(リクエスト メッセージに partial_failure フィールドがあるリクエスト)の場合、partial_failure = true を設定すると、有効なオペレーションがコミットされ、失敗したオペレーションはレスポンスの partial_failure_error フィールドでオペレーション固有のエラーを返します。エラー処理の詳細については、部分的な障害のガイドと一般的なエラーのガイドをご覧ください。

変更の追跡

Google 広告アカウントのオブジェクトに加えられた変更を追跡したり、オブジェクトの現在の状態を取得したりするには、change_status リソースと change_event リソースを使用します。

  • change_status は、特定の期間内に変更されたリソースの概要を提供します。
  • change_event には、変更されたフィールドの古い値と新しい値など、変更の詳細な履歴が表示されます。

これらのリソースをクエリするには、GoogleAdsService.SearchStream メソッドまたは GoogleAdsService.Search メソッドを使用します。詳しくは、GoogleAdsService を使用したレポート ストリーミングをご覧ください。