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 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 clientes existentes, valiosos y perdidos.
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 campo new_customer_acquisition_goal_settings con GoalService.

La configuración utiliza CustomerLifecycleOptimizationValueSettings para especificar los ajustes del valor de conversión para los clientes adquiridos:

  • value_adjustment (oneof):
    • additional_value (double): Valor de conversión incremental que se agregará a la primera conversión de 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 (aún no admitido).
  • high_lifetime_value_adjustment (oneof):
    • additional_high_lifetime_value (double): Valor de conversión incremental para los clientes nuevos que se identifican como de alto valor del ciclo de vida.
    • high_lifetime_value_multiplier (double): Multiplicador del valor de conversión que se aplicará a los clientes nuevos de alto valor del ciclo de vida (aún no admitido).

El valor del ciclo de vida alto debe ser mayor que el 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.
    goal.new_customer_acquisition_goal_settings.value_settings.additional_value = 50.0
    goal.new_customer_acquisition_goal_settings.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
    goal.retention_goal_settings.value_settings.additional_value = 50.0
    goal.retention_goal_settings.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 creará un nuevo objetivo de retención a nivel de la cuenta para la cuenta de cliente especificada, que se aplicará a todas sus campañas. De forma predeterminada, este objetivo se segmentará 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 goal_type en LOYALTY_RETENTION y configura los parámetros en el campo loyalty_retention_goal_settings (LoyaltyRetentionGoal).

Para los objetivos de retención de lealtad, solo se admite el value_multiplier parámetro 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 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 el 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 instancias de UserListCustomerType 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
COMPRADORES CONVERTED_LEADS
COMPRADORES QUALIFIED_LEADS
COMPRADORES 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 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 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 CampaignGoalConfigService.

Configuración de la 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 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 se segmenta solo para 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.
    goal_config.campaign_new_customer_acquisition_settings.target_option = (
        client.enums.CustomerLifecycleOptimizationModeEnum.TARGET_ALL
    )
    # Optionally override value settings.
    goal_config.campaign_new_customer_acquisition_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 campaign_retention_settings campo del tipo CampaignRetentionGoalSettings:

  • value_settings_override (tipo: CustomerLifecycleOptimizationValueSettings): 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 anunciantes permitidos 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_SPECIFIC
    # )

    campaign_goal_config_service = client.get_service("CampaignGoalConfigService")
    campaign_goal_config_service.mutate_campaign_goal_configs(
      customer_id=customer_id, operations=[operation]
    )

Si no se establece, campaign_retention_settings.target_option se establecerá de forma predeterminada en TARGET_ALL. La opción para establecer TARGET_SPECIFIC solo está disponible para los usuarios que se encuentran en la lista de anunciantes permitidos 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 campo campaign_loyalty_retention_settings del tipo CampaignLoyaltyRetentionGoalSettings en CampaignGoalConfig:

  • value_settings_override (tipo: CustomerLifecycleOptimizationValueSettings): Ajustes de valor personalizados para anular la configuración de 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 ofertas 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 Retention.

    Args:
        client: an initialized GoogleAdsClient instance.
        customer_id: a client customer ID.
        goal_resource_name: the resource name of an existing Loyalty 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

    # Enable bid adjustments and targeted loyalty benefits in PLAs.
    goal_config.campaign_loyalty_retention_settings.enable_bid_adjustments_for_loyalty_members = True
    goal_config.campaign_loyalty_retention_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 se configuran los objetivos de ciclo de vida del cliente, se pueden encontrar las siguientes restricciones y errores:

Errores de validación de objetivos

Configuración de objetivos duplicada
Si se crea un objetivo de ciclo de vida duplicado cuando ya existe uno, se genera un error GoalError.NEW_CUSTOMER_ACQUISITION_GOAL_ALREADY_EXISTS (para la NCA), GoalError.RETENTION_GOAL_ALREADY_EXISTS (para los objetivos de retención) o GoalError.LOYALTY_RETENTION_GOAL_ALREADY_EXISTS (para los objetivos de retención de lealtad).
Configuración de valores no válida
Cuando se configuran los parámetros de los objetivos de ciclo de vida, si está presente el valor del ciclo de vida alto, también debe estar presente el valor estándar (GoalError.HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT). Además, el valor del ciclo de vida alto debe ser mayor que el valor, si se establece (GoalError.HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE).

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_option se establece en TARGET_SPECIFIC (para segmentar 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 segmenta solo a clientes nuevos.
Compatibilidad con el tipo de campaña de valor del ciclo de vida alto
Las anulaciones de valor del ciclo de vida alto solo se deben establecer para los tipos de campañas admitidos (CampaignGoalConfigError.CAMPAIGN_OVERRIDE_HIGH_LIFETIME_VALUE_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 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 perdidos" / 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 perdidos" / 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 perdidos" / 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 de ciclo de vida y las configuraciones.

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