Objetivos de ciclo de vida

Usa los recursos Goal y CampaignGoalConfig 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 la configuración 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 recurso Goal. 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 reactivar la participación de 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 recurso 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 el goal_type en NEW_CUSTOMER_ACQUISITION y define los parámetros de configuración en el campo new_customer_acquisition_goal_settings con el GoalService.

El campo new_customer_acquisition_goal_settings.value_settings usa CustomerLifecycleOptimizationValueSettings para especificar los ajustes del valor de conversión de los clientes adquiridos:

  • value_settings (CustomerLifecycleOptimizationValueSettings):
    • value_adjustment (oneof):
      • additional_value (valor de doble precisión): Es el valor de conversión incremental que se agregará a la conversión de la primera compra de un cliente nuevo.
      • value_multiplier (doble): Es el multiplicador que se aplicará al valor de conversión de la primera compra de un cliente nuevo (no se admite para NEW_CUSTOMER_ACQUISITION, pero sí para LOYALTY_RETENTION).
    • high_lifetime_value_adjustment (oneof):
      • additional_high_lifetime_value (doble): Es el valor de conversión incremental para los clientes nuevos que se identifican como de alto valor del ciclo de vida.
      • high_lifetime_value_multiplier (valor de tipo double): Es el multiplicador del valor de conversión que se aplicará a los clientes nuevos con un valor de ciclo de vida alto (aún no se admite).

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 del valor, si se establece.

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 establece los parámetros de configuración 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 segmenta para 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 el campo goal_type en LOYALTY_RETENTION y define los parámetros de configuración en el campo loyalty_retention_goal_settings (LoyaltyRetentionGoal).

A diferencia de los objetivos NEW_CUSTOMER_ACQUISITION y CUSTOMER_RETENTION (que usan 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 recurso UserListCustomerType 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 clientes leales). 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.

UserListCustomerTypeService solo admite operaciones create y remove, por lo que, si quieres 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 y cuando no haya conflictos entre las instancias de UserListCustomerType. Si intentas asignar instancias de UserListCustomerType con las siguientes combinaciones de customer_type_category a la misma lista de usuarios, se producirá un error UserListCustomerTypeError.CONFLICTING_CUSTOMER_TYPES:

Primeros 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 objetivos de ciclo de vida de la campaña

A nivel de la campaña, puedes configurar anulaciones específicas de la campaña o las opciones de segmentación 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 la adquisición de clientes nuevos de la campaña

Para anular la configuración o establecer 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): Son ajustes de valor personalizados para anular la configuración a nivel de la cuenta.
  • target_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 segmenta para 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 solo se segmenta para clientes nuevos. Los ajustes de la oferta 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 la retención de clientes de la campaña

Para anular la configuración o configurar la segmentación de 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): Son ajustes de valor personalizados para anular la configuración a nivel de la cuenta.
  • target_option (Tipo: CustomerLifecycleOptimizationMode): Controla el modo de optimización. El valor predeterminado es TARGET_ALL. Para establecerlo en TARGET_SPECIFIC, tu cuenta debe estar 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 configurar TARGET_SPECIFIC solo está disponible para los usuarios que se encuentran en la lista de entidades permitidas correspondiente.

Configuración de la retención de clientes leales de la campaña

Para anular la configuración o establecer un comportamiento específico para los miembros del programa de lealtad a nivel de la campaña para los objetivos de LOYALTY_RETENTION, configura el campo campaign_loyalty_retention_settings del tipo CampaignLoyaltyRetentionGoalSettings en CampaignGoalConfig:

  • value_settings_override (tipo: CustomerLifecycleOptimizationValueSettings): Son ajustes de valor personalizados para anular la configuración del valor de retención de lealtad a nivel de la cuenta.
  • enable_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 orientados a miembros de programas de lealtad en el 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 producirá un error GoalError.NEW_CUSTOMER_ACQUISITION_GOAL_ALREADY_EXISTS (para NCA), GoalError.RETENTION_GOAL_ALREADY_EXISTS (para objetivos de retención) o GoalError.LOYALTY_RETENTION_GOAL_ALREADY_EXISTS (para objetivos de retención de clientes leales).
Configuración de valores no válida
Cuando configures los parámetros de valor del objetivo de ciclo de vida, si hay un valor del ciclo de vida del cliente alto, también debe haber un valor estándar (GoalError.HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT), y el valor del ciclo de vida del cliente alto debe ser mayor que el valor, si se establece (GoalError.HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE).
Del mismo modo, para los parámetros de valor multiplicativo, si hay un multiplicador de valor del ciclo de vida del cliente alto, también debe haber un multiplicador de valor (GoalError.HIGH_LIFETIME_VALUE_MULTIPLIER_PRESENT_BUT_VALUE_MULTIPLIER_ABSENT), y el multiplicador de valor del ciclo de vida del cliente 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 del objetivo de la campaña

Conflicto de anulación de valor específico del objetivo
En el caso de los objetivos de adquisición de clientes nuevos, si target_option se establece en TARGET_SPECIFIC (para segmentar los anuncios solo para clientes nuevos), no se deben configurar las anulaciones de valores a nivel de la campaña (CampaignGoalConfigError.CAMPAIGN_OVERRIDE_VALUES_SET_FOR_NEW_CUSTOMER_ACQUISITION_TARGET_SPECIFIC_OPTION). Los ajustes de la oferta no se aplican cuando se segmentan los anuncios solo para clientes nuevos.
Anulación de la configuración de valores no válida
Cuando configures las anulaciones de la configuración del valor del ciclo de vida del cliente a nivel de la campaña, si hay un valor del ciclo de vida del cliente alto, debe haber un valor estándar (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT) y el valor del ciclo de vida del cliente alto debe ser mayor que el valor, si se establece (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE). De manera similar, para los parámetros de configuración de valor multiplicativo, si el multiplicador de valor del ciclo de vida del cliente alto está presente, debe estar presente el multiplicador de valor (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_MULTIPLIER_PRESENT_BUT_VALUE_MULTIPLIER_ABSENT) y el multiplicador de valor del ciclo de vida del cliente alto debe ser estrictamente mayor que el multiplicador de valor (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_MULTIPLIER_LESS_THAN_OR_EQUAL_TO_VALUE_MULTIPLIER).
Compatibilidad con tipos de campañas de alto valor del ciclo de vida del cliente
Las anulaciones de valor del ciclo de vida del cliente alto y las anulaciones del multiplicador de valor del ciclo de vida del cliente alto solo se deben establecer para los tipos de campaña admitidos (CampaignGoalConfigError.CAMPAIGN_OVERRIDE_HIGH_LIFETIME_VALUE_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE o CampaignGoalConfigError.CAMPAIGN_OVERRIDE_HIGH_LIFETIME_VALUE_MULTIPLIER_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE).
Objetivos incompatibles
Se genera 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 que se excluyen mutuamente y 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" o TARGET_ALL) Adquisición de clientes nuevos ("Establecer ofertas solo para los clientes nuevos" o 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, ganancias brutas
Retención de clientes leales (beneficios en PLA) Adquisición de clientes nuevos ("Ofertar solo por clientes nuevos"/TARGET_SPECIFIC), prospección y ganancias brutas
Prospección Adquisición de clientes nuevos ("Ofertar solo para los 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 del 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