リソースを変更する

Google Ads API では、ユースケースに応じてリソースを変更する複数の方法が用意されています。

  • リソース サービスの変更: 変更可能なリソースごとに、その特定のリソースタイプのオペレーションを実行する専用のサービスがあります。たとえば、Campaign リソースは、キャンペーンの作成、更新、削除に CampaignService.MutateCampaigns エンドポイントを使用します。
  • 一括変更: GoogleAdsService.Mutate エンドポイントは、複数のリソースタイプにわたる一連の変更オペレーション(v23 以降では、キャンペーンの予約や見積もりなどのサポートされているアクション オペレーションも含む)を 1 つの同期リクエストでラップします。
  • 非同期バッチジョブ: 大規模なミューテーションや長時間実行されるワークロードの場合、BatchJobService は同期リクエストのタイムアウトのリスクを回避しながら、オペレーションを非同期で実行します。GoogleAdsService.Mutate とは異なり、BatchJobService は常に部分障害セマンティクスで実行され、validate_only モードまたはアクション オペレーション(book_campaigns_operation、quote_campaigns_operation)をサポートしていません。部分障害は常にアクティブであるため、BatchJobService は、基盤となるサービスが部分障害をサポートしていないリソース オペレーション(CustomerOperation、CampaignConversionGoalOperation、ConversionGoalCampaignConfigOperation、CustomConversionGoalOperation、CustomerConversionGoalOperation など)を MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE で拒否します。

一括変更のメリット

GoogleAdsService.Mutate を使用すると、次のメリットがあります(実装ガイダンスについては、変更のベスト プラクティスをご覧ください)。

  • 異なるリソース サービスにわたるアクションのグループ化: 個々のリソース サービス呼び出しは単一のリソースタイプに対するオペレーションのみを受け入れますが、GoogleAdsService.Mutate を使用すると、1 回の呼び出しで複数のリソースタイプを変更できます。
  • 一時的なリソース名: 新しく作成された親エンティティに負の整数 ID(customers/CUSTOMER_ID/campaigns/-1 など)を割り当て、同じリクエスト内の子オペレーションでそれらの一時的な ID を参照できます。

これらの機能を使用すると、GoogleAdsService.Mutate を使用してキャンペーン階層全体をアトミックに作成し、すべてのオペレーションが同時に成功または失敗するようにしたり、partial_failure を true に設定して有効なオペレーションを個別にコミットしたりできます。