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 los objetivos de adquisición de clientes y los 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, inactivos y valiosos.
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 usa CustomerLifecycleOptimizationValueSettings para especificar los ajustes del valor de conversión para los clientes adquiridos:

  • value_adjustment (oneof):
    • additional_value (double): Es el valor de conversión incremental que se agregará a la conversión por primera compra de un cliente nuevo.
    • value_multiplier (double): Es el multiplicador que se aplicará al valor de conversión de la primera compra de un cliente nuevo (aún no se admite).
  • 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 clientes con un valor de ciclo de vida alto.
    • high_lifetime_value_multiplier (doble): Es el multiplicador del valor de conversión que se aplicará a los clientes nuevos con un valor del ciclo de vida del cliente alto (aún no admitido).

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.
    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]
    )

Se 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 la Segmentación por clientes.

Configuración del objetivo de retención de lealtad

Para configurar 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 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 en función de 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 objeto UserListCustomerType para cada combinación de lista de usuarios y categoría.

Usa UserListCustomerTypeService para crear instancias de UserListCustomerType.

El objeto UserListCustomerTypeService solo admite operaciones de create y remove, por lo que, si deseas actualizar un objeto UserListCustomerType existente, debes quitarlo y, luego, crear uno nuevo con las actualizaciones necesarias.

Un objeto 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 producirá un error de UserListCustomerTypeError.CONFLICTING_CUSTOMER_TYPES:

Primeros 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 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 CampaignGoalConfigService.

Configuración de la campaña de adquisición de clientes nuevos

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 valores 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 segmenta sus anuncios 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 segmenta a 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.
    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 establecer 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): Son ajustes de valores 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_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 configura, el valor predeterminado de campaign_retention_settings.target_option será TARGET_ALL. 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 la retención de lealtad 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 valores personalizados para anular la configuración de valores 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 segmentados para miembros del programa de lealtad en el formato de anuncios 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 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 duplicados
Si se crea un objetivo de ciclo de vida duplicado cuando ya existe uno, se produce un error GoalError.NEW_CUSTOMER_ACQUISITION_GOAL_ALREADY_EXISTS (para los objetivos de 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álidos
Cuando configures los parámetros de configuración del valor del objetivo de ciclo de vida, si hay un valor del ciclo de vida alto, debe haber un 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 se establece (GoalError.HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE).
Del mismo modo, para los parámetros de configuración del valor multiplicativo, si está presente el multiplicador del valor del ciclo de vida alto, debe estar presente el multiplicador del 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 del 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 objetivo
En el caso de los objetivos de adquisición de clientes nuevos, si target_option se establece en TARGET_SPECIFIC (para segmentar solo para clientes nuevos), no se deben configurar las anulaciones del valor 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 la segmentación se realiza solo para clientes nuevos.
Anulación de la configuración de valor no válida
Cuando configures anulaciones de la configuración del valor del ciclo de vida a nivel de la campaña, si hay un valor del ciclo de vida alto, debe haber un 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 se establece (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE). Del mismo modo, para la configuración de valores multiplicativos, si hay un multiplicador de valor del ciclo de vida alto, debe haber un multiplicador de valor (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_MULTIPLIER_PRESENT_BUT_VALUE_MULTIPLIER_ABSENT) y el multiplicador de 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 tipos de campañas con un valor del ciclo de vida alto
Las anulaciones del valor de ciclo de vida alto y las anulaciones del multiplicador del valor de 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 o CampaignGoalConfigError.CAMPAIGN_OVERRIDE_HIGH_LIFETIME_VALUE_MULTIPLIER_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE).
Objetivos incompatibles
Se arroja 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 del objetivo de ciclo de vida del cliente Objetivo o modo incompatible
Retención de clientes ("Ofertar solo para 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 y Ganancia bruta
Retención de lealtad (beneficios en los PLA) Adquisición de clientes nuevos (“Ofertar solo por clientes nuevos”/TARGET_SPECIFIC), Prospección y Ganancia bruta
Prospección Adquisición de clientes nuevos ("Ofertar solo por clientes nuevos" / TARGET_SPECIFIC, "Establece ofertas más altas para los clientes nuevos" / TARGET_ALL)

Recupera 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 la configuración.

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