Lifecycle Goals

Use the CustomerLifecycleGoal and CampaignLifecycleGoal resources of the Google Ads API to configure goals related to the customer lifecycle. The Google Ads API supports customer acquisition goals for efficiently acquiring new customers through your Google Ads Search and Performance Max campaigns.

If your Google Ads account is using cross-account conversion tracking, then you must configure customer lifecycle goals in the Google Ads conversion account instead of directly in your Google Ads account. You should still set campaign lifecycle goals in your account, however. This is similar to how you manage other goals when using cross-account conversion tracking.

Configure customer lifecycle goals

At the customer-level, configure a lifecycle goal by creating or updating a CustomerLifecycleGoal. There can be at most one CustomerLifecycleGoal per Google Ads account. The customer_acquisition_goal_value_settings.value field defines the additional value adjustment to add to a new customer's first purchase conversion. You can read the customer_acquisition_goal_value_settings.high_lifetime_value of the goal, but this field is immutable in the Google Ads API.

Segment your audiences

You must use the UserListCustomerType resource to segment your audiences for customer lifecycle goals. You must associate each user list with one or more categories by creating a UserListCustomerType for each combination of user list and category.

Use the UserListCustomerTypeService to create UserListCustomerType instances. If you have previously populated the CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.existing_user_lists field, then your account will already contain related UserListCustomerType instances.

The UserListCustomerTypeService only supports create and remove operations, so if you want to update an existing UserListCustomerType you must remove it and then create a new one with the necessary updates.

A UserListCustomerType can only be assigned to one user list, but a user list can have multiple associated UserListCustomerType instances as long as there are no conflicts between the UserListCustomerType instances. Trying to assign UserListCustomerType instances with the following combinations of customer_type_category to the same user list will result in a UserListCustomerTypeError.CONFLICTING_CUSTOMER_TYPES error:

First customer_type_category Second customer_type_category
PURCHASERS CONVERTED_LEADS
PURCHASERS QUALIFIED_LEADS
PURCHASERS CART_ABANDONERS
CONVERTED_LEADS QUALIFIED_LEADS
DISENGAGED_CUSTOMERS CONVERTED_LEADS
DISENGAGED_CUSTOMERS QUALIFIED_LEADS
DISENGAGED_CUSTOMERS CART_ABANDONERS

Configure campaign lifecycle goals

At the campaign level, configure a lifecycle goal by creating or updating a CampaignLifecycleGoal. There can be at most one CampaignLifecycleGoal per campaign.

The customer_acquisition_goal_settings field of a campaign-level goal lets you set the optimization mode of the campaign as well as override the value settings from the parent customer goal.

The optimization_mode can be one of the following values:

TARGET_ALL_EQUALLY
The campaign targets new and existing customers equally. This is the default optimization mode.
BID_HIGHER_FOR_NEW_CUSTOMERS
The campaign targets both new and existing customers, but bids higher for customers that are predicted be new and are not in one of the existing_user_lists.
TARGET_NEW_CUSTOMERS
The campaign only targets new customers.

The value_settings are the same as the customer_acquisition_goal_value_settings on the customer-level goal. Use these campaign-level settings to override the values for a specific campaign.

Retrieve lifecycle goals

As with other resources in the Google Ads API, use the search or searchStream methods of GoogleAdsService to retrieve lifecycle goals.

The following query retrieves the details of every CustomerLifecycleGoal in a Google Ads account:

SELECT
  customer_lifecycle_goal.lifecycle_goal_customer_definition_settings.existing_user_lists,
  customer_lifecycle_goal.lifecycle_goal_customer_definition_settings.high_lifetime_value_user_lists,
  customer_lifecycle_goal.customer_acquisition_goal_value_settings.value,
  customer_lifecycle_goal.customer_acquisition_goal_value_settings.high_lifetime_value
FROM customer_lifecycle_goal

Similarly, the following query retrieves the details of every CampaignLifecycleGoal:

SELECT
  campaign_lifecycle_goal.campaign,
  campaign_lifecycle_goal.customer_acquisition_goal_settings.optimization_mode,
  campaign_lifecycle_goal.customer_acquisition_goal_settings.value_settings.value,
  campaign_lifecycle_goal.customer_acquisition_goal_settings.value_settings.high_lifetime_value
FROM campaign_lifecycle_goal