Usa los Goal y CampaignGoalConfig
recursos de la API de Google Ads para configurar objetivos relacionados con el ciclo de vida del cliente.
La API de Google Ads admite objetivos de adquisición de clientes y
objetivos de retención para administrar de manera eficiente los ajustes del valor del ciclo de vida del cliente
a través de tus campañas de Google Ads.
Si tu cuenta de Google Ads utiliza el seguimiento de conversiones de múltiples cuentas, debes configurar los objetivos de ciclo de vida a nivel del cliente en la cuenta de conversiones de Google Ads en lugar de hacerlo directamente en tu cuenta de Google Ads. Sin embargo, debes establecer las configuraciones a nivel de la campaña en tu cuenta. Esto es similar a la forma en que administras otros objetivos cuando utilizas el seguimiento de conversiones de múltiples cuentas.
Tipos de objetivos de ciclo de vida del cliente
Los objetivos de ciclo de vida del cliente se configuran a nivel de la cuenta con el
Goal recurso. Un objetivo representa un objetivo específico del ciclo de vida y se define por su goal_type.
Los tipos de objetivos de ciclo de vida admitidos son los siguientes:
NEW_CUSTOMER_ACQUISITION- Para adquirir clientes nuevos de manera eficiente asignando ajustes de valor a sus conversiones
CUSTOMER_RETENTION- Para volver a atraer a los clientes existentes, valiosos e inactivos
LOYALTY_RETENTION- Para impulsar la retención y la participación específicamente entre los miembros del programa de lealtad
Configura los objetivos de ciclo de vida del cliente
A nivel del cliente, configura un objetivo de ciclo de vida creando un
Goal. Puede haber como máximo un Goal por tipo de objetivo (NEW_CUSTOMER_ACQUISITION, CUSTOMER_RETENTION o LOYALTY_RETENTION) en una cuenta de Google Ads.
Configuración del objetivo de adquisición de clientes nuevos
Para configurar la adquisición de clientes nuevos (NCA), establece goal_type en
NEW_CUSTOMER_ACQUISITION y configura los parámetros en el
new_customer_acquisition_goal_settings campo con el
GoalService.
El campo new_customer_acquisition_goal_settings.value_settings utiliza
CustomerLifecycleOptimizationValueSettings para
especificar los ajustes del valor de conversión para los clientes adquiridos:
value_settings(CustomerLifecycleOptimizationValueSettings):value_adjustment(oneof):additional_value(double): Valor de conversión incremental que se agregará a las conversiones por compras de la primera compra de un cliente nuevo.value_multiplier(double): Multiplicador que se aplicará al valor de conversión de la primera compra de un cliente nuevo (no compatible conNEW_CUSTOMER_ACQUISITION; compatible conLOYALTY_RETENTION)
high_lifetime_value_adjustment(oneof):additional_high_lifetime_value(double): Valor de conversión incremental para los clientes nuevos que se identifican como valiososhigh_lifetime_value_multiplier(double): Multiplicador del valor de conversión que se aplicará a los clientes nuevos valiosos (aún no es compatible)
El valor del ciclo de vida del cliente alto debe ser mayor que el valor, y el multiplicador del valor del ciclo de vida del cliente alto debe ser estrictamente mayor que el multiplicador de valor, si está establecido.
def create_nca_goal(client: GoogleAdsClient, customer_id: str) -> None:
"""Sends an API request to add a new New Customer Acquisition Goal.
Args:
client: an initialized GoogleAdsClient instance.
customer_id: a client customer ID.
"""
goal_operation: GoalOperation = client.get_type("GoalOperation")
goal = goal_operation.create
goal.goal_type = client.enums.GoalTypeEnum.NEW_CUSTOMER_ACQUISITION
# Configure the value adjustments.
value_settings = goal.new_customer_acquisition_goal_settings.value_settings
value_settings.additional_value = 50.0
value_settings.additional_high_lifetime_value = 100.0
goal_service = client.get_service("GoalService")
goal_service.mutate_goals(
customer_id=customer_id, operations=[goal_operation]
)
Configuración del objetivo de retención de clientes
Para configurar la retención de clientes, establece goal_type en CUSTOMER_RETENTION y configura los parámetros en el campo retention_goal_settings.
Antes de crear un objetivo de retención, debes cumplir con los requisitos previos que se describen en Acerca del objetivo de retención. Esto incluye tener una campaña de máximo rendimiento y una lista de usuarios de Segmentación por clientes.
def create_retention_goal(client: GoogleAdsClient, customer_id: str) -> None:
"""Sends an API request to add a new Customer Retention Goal.
Args:
client: an initialized GoogleAdsClient instance.
customer_id: a client customer ID.
"""
goal_operation: GoalOperation = client.get_type("GoalOperation")
goal = goal_operation.create
goal.goal_type = client.enums.GoalTypeEnum.CUSTOMER_RETENTION
value_settings = goal.retention_goal_settings.value_settings
value_settings.additional_value = 50.0
value_settings.additional_high_lifetime_value = 100.0
goal_service = client.get_service("GoalService")
goal_service.mutate_goals(
customer_id=customer_id, operations=[goal_operation]
)
Esto crea un nuevo objetivo de retención a nivel de la cuenta para la cuenta de cliente especificada, que se aplica a todas sus campañas. De forma predeterminada, este objetivo se orienta a todos los usuarios de tus listas de usuarios de Segmentación por clientes.
Configuración del objetivo de retención de lealtad
Para configurar los objetivos de retención de lealtad para los miembros del programa de lealtad, establece goal_type en LOYALTY_RETENTION y configura los parámetros en el campo loyalty_retention_goal_settings (LoyaltyRetentionGoal).
A diferencia de los objetivos NEW_CUSTOMER_ACQUISITION y CUSTOMER_RETENTION (que utilizan
ajustes de valor aditivos), los objetivos LOYALTY_RETENTION admiten el parámetro de configuración
value_multiplier en value_settings con
CustomerLifecycleOptimizationValueSettings:
def create_loyalty_retention_goal(
client: GoogleAdsClient, customer_id: str
) -> None:
"""Sends an API request to add a new Loyalty Retention Goal.
Args:
client: an initialized GoogleAdsClient instance.
customer_id: a client customer ID.
"""
goal_operation: GoalOperation = client.get_type("GoalOperation")
goal = goal_operation.create
goal.goal_type = client.enums.GoalTypeEnum.LOYALTY_RETENTION
goal.loyalty_retention_goal_settings.value_settings.value_multiplier = 1.5
goal_service = client.get_service("GoalService")
goal_service.mutate_goals(
customer_id=customer_id, operations=[goal_operation]
)
Segmenta tus públicos
Debes usar el UserListCustomerType recurso para segmentar tus públicos para los objetivos de ciclo de vida del cliente (incluidos los objetivos de adquisición de clientes nuevos, retención de clientes y objetivos de retención de lealtad). Debes asociar cada lista de usuarios con una o más categorías creando un UserListCustomerType para cada combinación de lista de usuarios y categoría.
Usa UserListCustomerTypeService para
crear instancias de UserListCustomerType.
El UserListCustomerTypeService solo admite operaciones create y remove
, por lo que, si deseas actualizar un UserListCustomerType existente, debes
quitarlo y, luego, crear uno nuevo con las actualizaciones necesarias.
Un UserListCustomerType solo se puede asignar a una lista de usuarios, pero una lista de usuarios puede tener varias instancias de UserListCustomerType asociadas siempre que no haya conflictos entre las instancias de UserListCustomerType. Si intentas
asignar UserListCustomerType instancias con las siguientes combinaciones de
customer_type_category a la misma lista de usuarios, se generará un error
UserListCustomerTypeError.CONFLICTING_CUSTOMER_TYPES:
Primer customer_type_category |
Segundo 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 |
LOYALTY_TIER_X_MEMBERS |
LOYALTY_TIER_Y_MEMBERS |
Configura los parámetros de configuración de los objetivos de ciclo de vida de la campaña
A nivel de la campaña, puedes configurar anulaciones o
opciones de segmentación específicas de la campaña con CampaignGoalConfig. Una vez
que tengas un objetivo a nivel de la cuenta, usa su resource_name para crear un
CampaignGoalConfig con el método mutate_campaign_goal_configs en el
CampaignGoalConfigService.
Configuración de adquisición de clientes nuevos de la campaña
Para anular la configuración o configurar la segmentación para la NCA a nivel de la campaña,
configura el campo campaign_new_customer_acquisition_settings del tipo
CampaignNewCustomerAcquisitionGoalSettings:
value_settings_override(Tipo:CustomerLifecycleOptimizationValueSettings): Ajustes de valor personalizados para anular la configuración a nivel de la cuentatarget_option(Tipo:CustomerLifecycleOptimizationMode): Controla el modo de optimización del ciclo de vida del cliente. Las opciones son las siguientes:TARGET_ALL: La campaña se orienta a clientes nuevos y existentes, pero establece ofertas más altas para los clientes nuevos con los ajustes de valor configurados.TARGET_SPECIFIC: La campaña se orienta solo a clientes nuevos. Los ajustes de ofertas no se aplican a esta opción.
def create_campaign_nca_config(
client: GoogleAdsClient,
customer_id: str,
goal_resource_name: str,
campaign_resource_name: str,
) -> None:
"""Sends an API request to add a new CampaignGoalConfig for NCA.
Args:
client: an initialized GoogleAdsClient instance.
customer_id: a client customer ID.
goal_resource_name: the resource name of an existing NCA Goal.
campaign_resource_name: the resource name of an existing Campaign.
"""
operation: CampaignGoalConfigOperation = client.get_type(
"CampaignGoalConfigOperation"
)
goal_config = operation.create
goal_config.campaign = campaign_resource_name
goal_config.goal = goal_resource_name
# Set the target option to target both new and existing customers.
nca_settings = goal_config.campaign_new_customer_acquisition_settings
nca_settings.target_option = (
client.enums.CustomerLifecycleOptimizationModeEnum.TARGET_ALL
)
# Optionally override value settings.
nca_settings.value_settings_override.additional_value = 60.0
campaign_goal_config_service = client.get_service(
"CampaignGoalConfigService"
)
campaign_goal_config_service.mutate_campaign_goal_configs(
customer_id=customer_id, operations=[operation]
)
Configuración de retención de clientes de la campaña
Para anular la configuración o configurar la segmentación para los objetivos de retención a nivel de la campaña, configura el campo campaign_retention_settings del tipo
CampaignRetentionGoalSettings:
value_settings_override(Tipo:CustomerLifecycleOptimizationValueSettings): Ajustes de valor personalizados para anular la configuración a nivel de la cuentatarget_option(Tipo:CustomerLifecycleOptimizationMode): Controla el modo de optimización. El valor predeterminado esTARGET_ALL. Para establecerlo enTARGET_SPECIFIC, tu cuenta debe estar incluida en la lista de entidades permitidas correspondiente.
def create_campaign_retention_config(
client: GoogleAdsClient,
customer_id: str,
goal_resource_name: str,
campaign_resource_name: str,
) -> None:
"""Sends an API request to add a new CampaignGoalConfig for Retention.
Args:
client: an initialized GoogleAdsClient instance.
customer_id: a client customer ID.
goal_resource_name: the resource name of an existing Retention Goal.
campaign_resource_name: the resource name of an existing Campaign.
"""
operation: CampaignGoalConfigOperation = client.get_type(
"CampaignGoalConfigOperation"
)
goal_config = operation.create
goal_config.campaign = campaign_resource_name
goal_config.goal = goal_resource_name
goal_config.campaign_retention_settings.target_option = (
client.enums.CustomerLifecycleOptimizationModeEnum.TARGET_ALL
)
# Accounts on the allowlist can set TARGET_SPECIFIC instead:
# goal_config.campaign_retention_settings.target_option = (
# client.enums.CustomerLifecycleOptimizationModeEnum.TARGET_SPECIFIC
# )
campaign_goal_config_service = client.get_service(
"CampaignGoalConfigService"
)
campaign_goal_config_service.mutate_campaign_goal_configs(
customer_id=customer_id, operations=[operation]
)
El valor predeterminado de campaign_retention_settings.target_option es TARGET_ALL si no se establece. La opción para establecer TARGET_SPECIFIC solo está disponible para los usuarios que se encuentran en la lista de entidades permitidas correspondiente.
Configuración de retención de lealtad de la campaña
Para anular la configuración o configurar el comportamiento específico de los miembros de lealtad a nivel de la
campaña para los objetivos LOYALTY_RETENTION, configura el
campaign_loyalty_retention_settings campo del tipo
CampaignLoyaltyRetentionGoalSettings en
CampaignGoalConfig:
value_settings_override(tipo:CustomerLifecycleOptimizationValueSettings): Ajustes de valor personalizados para anular la configuración del valor de retención de lealtad a nivel de la cuentaenable_bid_adjustments_for_loyalty_members(tipo:bool): Indica si se deben habilitar los ajustes de la oferta para los miembros del programa de lealtad en esta campaña.show_targeted_loyalty_member_benefits_in_pla(tipo:bool): Indica si se deben mostrar los beneficios segmentados para miembros de lealtad en formato de anuncio de ficha de producto (PLA) en los países aptos
def create_campaign_loyalty_retention_config(
client: GoogleAdsClient,
customer_id: str,
goal_resource_name: str,
campaign_resource_name: str,
) -> None:
"""Sends an API request to add a new CampaignGoalConfig for Loyalty.
Args:
client: an initialized GoogleAdsClient instance.
customer_id: a client customer ID.
goal_resource_name: the resource name of an existing Loyalty Goal.
campaign_resource_name: the resource name of an existing Campaign.
"""
operation: CampaignGoalConfigOperation = client.get_type(
"CampaignGoalConfigOperation"
)
goal_config = operation.create
goal_config.campaign = campaign_resource_name
goal_config.goal = goal_resource_name
# Enable bid adjustments and targeted loyalty benefits in PLAs.
loyalty_settings = goal_config.campaign_loyalty_retention_settings
loyalty_settings.enable_bid_adjustments_for_loyalty_members = True
loyalty_settings.show_targeted_loyalty_member_benefits_in_pla = True
campaign_goal_config_service = client.get_service(
"CampaignGoalConfigService"
)
campaign_goal_config_service.mutate_campaign_goal_configs(
customer_id=customer_id, operations=[operation]
)
Validación y errores
Cuando configures los objetivos de ciclo de vida del cliente, es posible que encuentres las siguientes restricciones y errores:
Errores de validación de objetivos
- Configuración de objetivos duplicada
- Si creas un objetivo de ciclo de vida duplicado cuando ya existe uno, se generará un error
GoalError.NEW_CUSTOMER_ACQUISITION_GOAL_ALREADY_EXISTS(para la NCA),GoalError.RETENTION_GOAL_ALREADY_EXISTS(para los objetivos de retención) oGoalError.LOYALTY_RETENTION_GOAL_ALREADY_EXISTS(para los objetivos de retención de lealtad). - Configuración de valores no válida
- Cuando configures los parámetros de configuración de valores de los objetivos de ciclo de vida, si el valor del ciclo de vida alto está
presente, también debe estar presente el valor estándar
(
GoalError.HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT), y el valor del ciclo de vida alto debe ser mayor que el valor, si está establecido (GoalError.HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE). - Del mismo modo, para los parámetros de configuración de valores multiplicativos, si el multiplicador del valor del ciclo de vida alto está
presente, también debe estar presente el multiplicador de valor
(
GoalError.HIGH_LIFETIME_VALUE_MULTIPLIER_PRESENT_BUT_VALUE_MULTIPLIER_ABSENT), y el multiplicador del valor del ciclo de vida alto debe ser estrictamente mayor que el multiplicador de valor (GoalError.HIGH_LIFETIME_VALUE_MULTIPLIER_LESS_THAN_OR_EQUAL_TO_VALUE_MULTIPLIER).
Errores de validación de la configuración de objetivos de la campaña
- Conflicto de anulación de valor específico del objetivo
- Para los objetivos de adquisición de clientes nuevos, si
target_optionse establece enTARGET_SPECIFIC(para orientar los anuncios solo a clientes nuevos), no se deben configurar las anulaciones de valor a nivel de la campaña (CampaignGoalConfigError.CAMPAIGN_OVERRIDE_VALUES_SET_FOR_NEW_CUSTOMER_ACQUISITION_TARGET_SPECIFIC_OPTION). Los ajustes de ofertas no se aplican cuando se segmentan los anuncios solo para clientes nuevos. - Anulación de configuración de valores no válida
- Cuando configures las anulaciones de la configuración de valores de ciclo de vida a nivel de la campaña, si el valor del ciclo de vida alto está presente, también debe estar presente el valor estándar (
CampaignGoalConfigError.HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT), y el valor del ciclo de vida alto debe ser mayor que el valor, si está establecido (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE). Del mismo modo, para los parámetros de configuración de valores multiplicativos, si el multiplicador del valor del ciclo de vida alto está presente, también debe estar presente el multiplicador de valor (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_MULTIPLIER_PRESENT_BUT_VALUE_MULTIPLIER_ABSENT), y el multiplicador del valor del ciclo de vida alto debe ser estrictamente mayor que el multiplicador de valor (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_MULTIPLIER_LESS_THAN_OR_EQUAL_TO_VALUE_MULTIPLIER). - Compatibilidad con el tipo de campaña de valor del ciclo de vida del cliente alto
- Las anulaciones del valor del ciclo de vida del cliente alto y las anulaciones del multiplicador del valor del ciclo de vida del cliente alto solo se deben establecer para los tipos de campañas admitidos (
CampaignGoalConfigError.CAMPAIGN_OVERRIDE_HIGH_LIFETIME_VALUE_NOT_SUPPORTED_FOR_CAMPAIGN_TYPEoCampaignGoalConfigError.CAMPAIGN_OVERRIDE_HIGH_LIFETIME_VALUE_MULTIPLIER_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE). - Objetivos incompatibles
- Se muestra un error si una campaña intenta aplicar objetivos de optimización del ciclo de vida del cliente incompatibles de forma simultánea (
CampaignGoalConfigError.CANNOT_USE_INCOMPATIBLE_CLO_GOALS). En la siguiente tabla, se describen las combinaciones de objetivos mutuamente excluyentes que activan este error:
| Tipo o modo de objetivo de ciclo de vida del cliente | Objetivo o modo incompatible |
|---|---|
Retención de clientes ("Ofertar solo por clientes inactivos" /
TARGET_SPECIFIC)
|
Adquisición de clientes nuevos ("Ofertar solo por clientes nuevos" /
TARGET_SPECIFIC, "Establecer ofertas más altas para los clientes nuevos" /
TARGET_ALL), prospección
|
Retención de clientes ("Establecer ofertas más altas para los clientes inactivos" /
TARGET_ALL)
|
Adquisición de clientes nuevos ("Ofertar solo por clientes nuevos" /
TARGET_SPECIFIC), prospección
|
| Retención de lealtad (multiplicador de valor) |
Adquisición de clientes nuevos ("Ofertar solo por clientes nuevos" /
TARGET_SPECIFIC), retención de clientes ("Ofertar solo por clientes inactivos" / TARGET_SPECIFIC), prospección, ganancia bruta
|
| Retención de lealtad (beneficios en PLA) |
Adquisición de clientes nuevos ("Ofertar solo por clientes nuevos" /
TARGET_SPECIFIC), prospección, ganancia bruta
|
| Prospección |
Adquisición de clientes nuevos ("Ofertar solo por clientes nuevos" /
TARGET_SPECIFIC, "Establecer ofertas más altas para los clientes nuevos" /
TARGET_ALL)
|
Recupera los objetivos de ciclo de vida
Al igual que con otros recursos de la API de Google Ads, usa los métodos search o searchStream
de GoogleAdsService para recuperar los objetivos y las configuraciones de ciclo de vida.
La siguiente consulta recupera los detalles de cada Goal configurado en una cuenta de la API de Google Ads:
SELECT
goal.goal_id,
goal.goal_type,
goal.owner_customer,
goal.new_customer_acquisition_goal_settings.value_settings.additional_value,
goal.new_customer_acquisition_goal_settings.value_settings.additional_high_lifetime_value,
goal.retention_goal_settings.value_settings.additional_value,
goal.retention_goal_settings.value_settings.additional_high_lifetime_value,
goal.loyalty_retention_goal_settings.value_settings.value_multiplier
FROM goal
Del mismo modo, la siguiente consulta recupera los detalles de cada CampaignGoalConfig:
SELECT
campaign_goal_config.campaign,
campaign_goal_config.goal,
campaign_goal_config.goal_type,
campaign_goal_config.campaign_new_customer_acquisition_settings.target_option,
campaign_goal_config.campaign_new_customer_acquisition_settings.value_settings_override.additional_value,
campaign_goal_config.campaign_new_customer_acquisition_settings.value_settings_override.additional_high_lifetime_value,
campaign_goal_config.campaign_retention_settings.target_option,
campaign_goal_config.campaign_retention_settings.value_settings_override.additional_value,
campaign_goal_config.campaign_loyalty_retention_settings.value_settings_override.value_multiplier,
campaign_goal_config.campaign_loyalty_retention_settings.enable_bid_adjustments_for_loyalty_members,
campaign_goal_config.campaign_loyalty_retention_settings.show_targeted_loyalty_member_benefits_in_pla
FROM campaign_goal_config