| App | Google Ads |
| Operation ID | gads_manage_customer_lifecycle_goals |
| Type | Action |
| Connection | gads (required) |
| Credits per run | 1 |
| Agent / MCP tool | Yes |
| Requires approval | Yes (write operation) |
Inputs
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
account | GadsAccountItem or object or array of object or string or integer | Yes | - | Google Ads account owning the resource. With cross-account conversion tracking, manage account goals in the conversion account and campaign configurations in the advertising account. Account-level changes can affect multiple campaigns. |
resource | enum (GOAL, CAMPAIGN_GOAL_CONFIG, USER_LIST_CUSTOMER_TYPE) | Yes | - | GOAL: account-level NEW_CUSTOMER_ACQUISITION, CUSTOMER_RETENTION or LOYALTY_RETENTION goals (create/update, no remove). CAMPAIGN_GOAL_CONFIG: link a campaign to an existing goal, override values or set targeting (create/update/remove). USER_LIST_CUSTOMER_TYPE: classify an existing audience for lifecycle goals (create/remove; change a classification by removing and creating it). One resource type per call. Read existing resources with gads_run_gaql_query FROM goal, campaign_goal_config or user_list_customer_type. |
operations | string or array of object | Yes | - | Native Google REST operations array or JSON string, forwarded unchanged. Each entry contains create, update or remove as supported by the selected resource; updates include updateMask (comma-separated camelCase paths) and resourceName. Do not wrap entries in goalOperation/campaignGoalConfigOperation. Use real resource names returned by Google; separate service calls cannot reference temporary IDs from another call. All native settings are supported. GOAL example: [{“create”:{“goalType”:“NEW_CUSTOMER_ACQUISITION”,“newCustomerAcquisitionGoalSettings”:{“valueSettings”:{“additionalValue”:50}}}}]. Other goal settings are retentionGoalSettings and loyaltyRetentionGoalSettings. Value settings expose additionalValue or valueMultiplier, and additionalHighLifetimeValue or highLifetimeValueMultiplier; Google determines which adjustments and campaign types are eligible. Only one account goal of each type is allowed: read and update an existing goal before creating another. CAMPAIGN_GOAL_CONFIG example: [{“create”:{“campaign”:“customers/123/campaigns/456”,“goal”:“customers/123/goals/789”,“campaignNewCustomerAcquisitionSettings”:{“targetOption”:“TARGET_SPECIFIC”}}}]. For acquisition, TARGET_SPECIFIC means bid for new customers only (no valueSettingsOverride); TARGET_ALL bids higher for new customers while also targeting existing customers. campaignRetentionSettings accepts targetOption and valueSettingsOverride; retention TARGET_SPECIFIC requires Google allowlisting. campaignLoyaltyRetentionSettings accepts valueSettingsOverride, enableBidAdjustmentsForLoyaltyMembers and showTargetedLoyaltyMemberBenefitsInPla. Update example: [{“update”:{“resourceName”:“customers/123/campaignGoalConfigs/456~789”,“campaignNewCustomerAcquisitionSettings”:{“targetOption”:“TARGET_SPECIFIC”}},“updateMask”:“campaignNewCustomerAcquisitionSettings.targetOption”}]. To clear a value, include its path in updateMask and omit that value from update. When switching to TARGET_SPECIFIC, clear any existing valueSettingsOverride in the same update. USER_LIST_CUSTOMER_TYPE example: [{“create”:{“userList”:“customers/123/userLists/456”,“customerTypeCategory”:“ALL_CUSTOMERS”}}]. Categories include ALL_CUSTOMERS, PURCHASERS, HIGH_VALUE_CUSTOMERS, DISENGAGED_CUSTOMERS, QUALIFIED_LEADS, CONVERTED_LEADS, PAID_SUBSCRIBERS, CART_ABANDONERS and LOYALTY_TIER_1_MEMBERS through LOYALTY_TIER_7_MEMBERS. Remove example: [{“remove”:“RESOURCE_NAME_FROM_GOOGLE”}]. This classifies existing lists; it does not upload audience members. |
partial_failure | boolean | No | False | Allow valid operations to succeed while returning errors for failed entries. Default false: each call is atomic. |
validate_only | boolean | No | False | Validate without applying changes. No resource IDs are created; validation cannot supply a new goal ID for a later campaign call. Default false. |
GadsAccountItem
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
value | string | Yes | - | |
label | string | Yes | - | |
managerId | string | Yes | - | The manager ID for the Google Ads account. Ask user to use the dropdown to select accounts, this manager id is selected background and not shown to the user. |
Output
Type:Dict
Returns Google’s results with resourceName and any structured partialFailureError. validate_only=true identifies dry runs, which do not create resource IDs. A validation confirmation is added only when Google returns no partial failure.
Fields: results, partialFailureError, validate_only, message
