{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/google-ads/json-schema/google-ads-google-ads-googleads-v25-services-mutate-campaign-goal-configs-request-schema.json",
  "title": "GoogleAdsGoogleadsV25Services__MutateCampaignGoalConfigsRequest",
  "description": "Request message for CampaignGoalConfigService.MutateCampaignGoalConfigs.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-ads-customers-campaigngoalconfigs-api-openapi.yml#/components/schemas/GoogleAdsGoogleadsV25Services__MutateCampaignGoalConfigsRequest",
  "type": "object",
  "properties": {
    "operations": {
      "description": "Required. The list of operations to perform on the campaign goal configs.",
      "items": {
        "$ref": "#/$defs/GoogleAdsGoogleadsV25Services__CampaignGoalConfigOperation"
      },
      "type": "array"
    },
    "validateOnly": {
      "description": "Optional. If true, the request is validated but not executed. Only errors are returned, not results.",
      "type": "boolean"
    },
    "partialFailure": {
      "type": "boolean",
      "description": "Optional. If true, successful operations will be carried out and invalid operations will return errors. If false, all operations will be carried out in one transaction if and only if they are all valid. Default is false."
    }
  },
  "$defs": {
    "GoogleAdsGoogleadsV25Common_CampaignGoalSettings_CampaignLoyaltyRetentionGoalSettings": {
      "description": "Loyalty retention campaign goal settings.",
      "type": "object",
      "properties": {
        "enableBidAdjustmentsForLoyaltyMembers": {
          "type": "boolean",
          "description": "Whether to adjust bids for loyalty members."
        },
        "showTargetedLoyaltyMemberBenefitsInPla": {
          "description": "Whether to show targeted loyalty member benefits in PLA format in eligible countries.",
          "type": "boolean"
        },
        "valueSettingsOverride": {
          "description": "Loyalty retention goal campaign specific value settings.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__CustomerLifecycleOptimizationValueSettings"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common_CampaignGoalSettings_CampaignNewCustomerAcquisitionGoalSettings": {
      "description": "New Customer Acquisition campaign goal settings.",
      "type": "object",
      "properties": {
        "targetOption": {
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The mode is used when the campaign optimizes for all customers, which is the default value.",
            "This mode configures the campaign to target only customers who have previously interacted but are now lapsed or disengaged."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TARGET_ALL",
            "TARGET_SPECIFIC"
          ],
          "description": "New Customer Acquisition goal optimization mode for this campaign. Defaults to TARGET_ALL. Whether the campaign is targeting new customers only.",
          "type": "string"
        },
        "valueSettingsOverride": {
          "description": "New Customer Acquisition goal campaign specific value settings.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__CustomerLifecycleOptimizationValueSettings"
        }
      }
    },
    "GoogleAdsGoogleadsV25Common_CampaignGoalSettings_CampaignRetentionGoalSettings": {
      "type": "object",
      "properties": {
        "targetOption": {
          "description": "Retention goal optimization mode for this campaign. Defaults to TARGET_ALL. Only customers on the allowlist can set target_option.",
          "type": "string",
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "The mode is used when the campaign optimizes for all customers, which is the default value.",
            "This mode configures the campaign to target only customers who have previously interacted but are now lapsed or disengaged."
          ],
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "TARGET_ALL",
            "TARGET_SPECIFIC"
          ]
        },
        "valueSettingsOverride": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common__CustomerLifecycleOptimizationValueSettings",
          "description": "Retention goal campaign specific value settings."
        }
      },
      "description": "Retention campaign goal settings."
    },
    "GoogleAdsGoogleadsV25Common__CustomerLifecycleOptimizationValueSettings": {
      "type": "object",
      "properties": {
        "valueMultiplier": {
          "format": "double",
          "type": "number",
          "description": "Conversion value multiplier."
        },
        "additionalValue": {
          "description": "Incremental conversion value.",
          "type": "number",
          "format": "double"
        },
        "additionalHighLifetimeValue": {
          "description": "Incremental high lifetime conversion value.",
          "type": "number",
          "format": "double"
        },
        "highLifetimeValueMultiplier": {
          "format": "double",
          "type": "number",
          "description": "High lifetime conversion value multiplier."
        }
      },
      "description": "Lifecycle goal optimization value settings."
    },
    "GoogleAdsGoogleadsV25Resources__CampaignGoalConfig": {
      "type": "object",
      "properties": {
        "campaignRetentionSettings": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_CampaignGoalSettings_CampaignRetentionGoalSettings",
          "description": "Retention goal campaign settings."
        },
        "campaignNewCustomerAcquisitionSettings": {
          "description": "New customer acquisition goal campaign settings.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_CampaignGoalSettings_CampaignNewCustomerAcquisitionGoalSettings"
        },
        "campaignLoyaltyRetentionSettings": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Common_CampaignGoalSettings_CampaignLoyaltyRetentionGoalSettings",
          "description": "Loyalty retention goal campaign settings."
        },
        "goal": {
          "type": "string",
          "description": "Immutable. The resource name of the goal this link is attached to."
        },
        "campaign": {
          "type": "string",
          "description": "Immutable. The resource name of the campaign for this link."
        },
        "goalType": {
          "x-enumDescriptions": [
            "Not specified.",
            "Used for return value only. Represents value unknown in this version.",
            "Retention goal, which allows advertisers to optimize campaigns to win back lapsed customers. (https://support.google.com/google-ads/answer/14792043?hl=en)",
            "New customer acquisition goal, which allows advertisers to optimize campaigns to acquire new customers.",
            "Loyalty retention goal, which allows advertisers to optimize campaigns for retaining loyalty program members."
          ],
          "type": "string",
          "description": "Output only. The goal type this link is attached to.",
          "enum": [
            "UNSPECIFIED",
            "UNKNOWN",
            "CUSTOMER_RETENTION",
            "NEW_CUSTOMER_ACQUISITION",
            "LOYALTY_RETENTION"
          ]
        },
        "resourceName": {
          "description": "Immutable. The resource name of the campaign goal config. campaign goal config resource names have the form: `customers/{customer_id}/campaignGoalConfigs/{campaign_id}~{goal_id}`",
          "type": "string"
        }
      },
      "description": "A link between a campaign and a goal enabling campaign-specific optimization."
    },
    "GoogleAdsGoogleadsV25Services__CampaignGoalConfigOperation": {
      "type": "object",
      "properties": {
        "update": {
          "description": "Update an existing campaign goal config.",
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__CampaignGoalConfig"
        },
        "updateMask": {
          "description": "FieldMask that determines which fields are modified in an update.",
          "type": "string",
          "format": "google-fieldmask"
        },
        "create": {
          "$ref": "#/$defs/GoogleAdsGoogleadsV25Resources__CampaignGoalConfig",
          "description": "Create a new campaign goal config."
        },
        "remove": {
          "description": "Remove an existing campaign goal config.",
          "type": "string"
        }
      },
      "description": "A single mutate operation on the campaign goal config."
    }
  }
}