リソース サービス ミューテーション

リソースの専用サービスを使用することは、Google Ads API で単一のリソースタイプのエンティティを作成、更新、削除する最も直接的な方法です。

変更エンドポイント

変更可能な各リソースには、対応するサービスとオペレーション タイプがあります。専用のサービスを使用してリソースを変更するには、オペレーションで次のいずれかのフィールドに入力し、サービスの変更エンドポイントに送信します。

  • 作成(create): 作成する新しいリソース オブジェクト。
  • 更新(update): 変更されたフィールドを指定する update_mask とともに、変更されたリソース オブジェクト。
  • 削除(remove): 削除するターゲット リソースの resource_name 文字列。

たとえば、新しい Campaign を作成するには、次の手順を完了します。

  1. 選択した属性を使用して Campaign オブジェクトを構築します。
  2. CampaignOperation の create フィールドに割り当てます。
  3. MutateCampaignsRequest でオペレーションを CampaignService.MutateCampaigns に送信します。

この同じパターンは、Google Ads API のすべてのリソース固有のサービスに適用されます。

次の REST JSON ペイロードは、CampaignService.MutateCampaigns へのリクエストを示しています。

{
  "customerId": "CUSTOMER_ID",
  "operations": [
    {
      "create": {
        "name": "Interplanetary Cruise #1",
        "advertisingChannelType": "SEARCH",
        "status": "PAUSED",
        "manualCpc": {},
        "campaignBudget": "customers/CUSTOMER_ID/campaignBudgets/BUDGET_ID",
        "containsEuPoliticalAdvertising": "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING"
      }
    }
  ],
  "partialFailure": false,
  "validateOnly": false
}

複数のオペレーションと制限事項

ミューテート リクエストの operations フィールドは繰り返されるため、単一のリクエストに、そのリソースタイプの複数のオペレーション(リクエストあたり最大 10,000 件のオペレーション)を含めることができます。デフォルトでは、partial_failure を true に設定しない限り、リクエスト内のすべてのオペレーションがアトミックに実行されます。

ただし、個々のリソース サービスには次の 2 つの重要な制限があります。

  • 単一のリソースタイプ: リソース サービスへのリクエストは、その特定のサービスによって管理されるリソースのみを変更できます。
  • 一時リソース ID や相互参照がない: リソース固有の mutate 呼び出しのオペレーションは個別に処理されます。一時的な負の ID(customers/CUSTOMER_ID/campaigns/-1 など)を割り当てたり、同じリクエスト内の他のオペレーションから新しく作成されたエンティティを参照したりすることはできません。

1 つのリクエストで複数のリソースタイプを変更する必要がある場合や、依存オペレーション間で一時リソース名を参照する必要がある場合は、代わりに GoogleAdsService.Mutate を使用します。

バージョン固有の違い

リソースを変更する場合は、サポートされている Google Ads API バージョン間の次の違いに注意してください。

  • ライフサイクル目標サービス: v25 以降では、新規顧客の獲得(new_customer_acquisition_goal_settings)、顧客維持(retention_goal_settings)、ロイヤリティ維持(loyalty_retention_goal_settings)を含むすべてのライフサイクル目標が、標準の繰り返し operations フィールドを使用して GoalService.MutateGoals と CampaignGoalConfigService.MutateCampaignGoalConfigs を介して変更されます。これは、CustomerLifecycleGoalService.ConfigureCustomerLifecycleGoals と CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals(v24 以前の新規顧客の獲得で使用され、単一の operation フィールドを受け入れる)に代わるものです。
  • キャンペーンの日付と時刻のフィールド: Campaign を作成または更新する場合、v23 以降では start_date_time と end_date_time(yyyy-MM-dd HH:mm:ss)が使用されます。これにより、v22 で使用されていた日付のみの start_date フィールドと end_date フィールドが置き換えられます。
  • 合成コンテンツの構成証明の可変性: Asset.synthetic_content_info と Ad.synthetic_content_info は v22 以降のスキーマに表示されますが、synthetic_content_info.advertiser_attestation.status フィールドと synthetic_content_info.advertiser_attestation.source フィールドは v23 以降でのみ変更可能です(system_attestation は常に OUTPUT_ONLY です)。v22 で advertiser_attestation サブフィールドを変更しようとすると、変更不可フィールド エラー("The field attempted to be mutated is immutable" または "Field cannot be set")が返されます。