> ## Documentation Index
> Fetch the complete documentation index at: https://docs.markifact.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage Customer Lifecycle Goals

> Manage Google Ads customer lifecycle goals: new customer acquisition (including bid for new customers only), customer retention and loyalty

Manage Google Ads customer lifecycle goals: new customer acquisition (including bid for new customers only), customer retention and loyalty. Covers account goals, campaign settings and audience classifications. Supports validate-only and partial failures. Read settings with gads\_run\_gaql\_query; these services are separate from gads\_mutate.

| | |
| - | - |
| **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`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.