Metas de ciclo de vida

Use os recursos Goal e CampaignGoalConfig da API Google Ads para configurar metas relacionadas ao ciclo de vida do cliente. A API Google Ads oferece suporte a metas de aquisição de clientes e metas de retenção para gerenciar de maneira eficiente os ajustes de valor do ciclo de vida do cliente nas suas campanhas do Google Ads.

Se a sua conta do Google Ads usa o rastreamento de conversões entre contas, configure as metas de ciclo de vida no nível do cliente na conta de conversão do Google Ads, em vez de fazer isso diretamente na sua conta do Google Ads. No entanto, ainda é necessário definir as configurações no nível da campanha na sua conta. Isso é semelhante a como você gerencia outras metas ao usar o rastreamento de conversões entre contas.

Tipos de metas do ciclo de vida do cliente

As metas do ciclo de vida do cliente são configuradas no nível da conta usando o recurso Goal. Uma meta representa um objetivo específico do ciclo de vida e é definida pelo goal_type.

Os tipos de metas de ciclo de vida aceitos são:

NEW_CUSTOMER_ACQUISITION
Para adquirir novos clientes de maneira eficiente atribuindo ajustes de valor às conversões deles.
CUSTOMER_RETENTION
Para reengajar clientes atuais, inativos e de alto valor.
LOYALTY_RETENTION
Para aumentar a retenção e o engajamento, principalmente entre membros do programa de fidelidade.

Configurar metas de ciclo de vida do cliente

No nível do cliente, configure uma meta de ciclo de vida criando um Goal. Pode haver no máximo um Goal por tipo de meta (NEW_CUSTOMER_ACQUISITION, CUSTOMER_RETENTION ou LOYALTY_RETENTION) em uma conta do Google Ads.

Configurações da meta de aquisição de novos clientes

Para configurar a aquisição de novos clientes (NCA), defina goal_type como NEW_CUSTOMER_ACQUISITION e configure as opções no campo new_customer_acquisition_goal_settings usando GoalService.

As configurações usam CustomerLifecycleOptimizationValueSettings para especificar ajustes no valor da conversão para clientes adquiridos:

  • value_adjustment (oneof):
    • additional_value (duplo): valor de conversão incremental a ser adicionado à primeira conversão de compra de um novo cliente.
    • value_multiplier (duplo): multiplicador a ser aplicado ao valor de conversão da primeira compra de um novo cliente (ainda não disponível).
  • high_lifetime_value_adjustment (oneof):
    • additional_high_lifetime_value (duplo): valor de conversão incremental para novos clientes identificados como de alto valor de vida útil.
    • high_lifetime_value_multiplier (double): multiplicador do valor de conversão a ser aplicado para novos clientes com alto valor de vida útil (ainda não disponível).

O valor da vida útil alto precisa ser maior que o valor, e o multiplicador de valor da vida útil alto precisa ser estritamente maior que o multiplicador de valor, se definido.

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

Configurações da meta de retenção de clientes

Para configurar a retenção de clientes, defina goal_type como CUSTOMER_RETENTION e configure as opções no campo retention_goal_settings.

Antes de criar uma meta de retenção, atenda aos pré-requisitos descritos em Sobre a meta de retenção. Isso inclui ter uma campanha Performance Max e uma lista de usuários da Segmentação por lista de 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]
    )

Isso vai criar uma nova meta de retenção no nível da conta para a conta de cliente especificada, que será aplicada a todas as campanhas dela. Por padrão, essa meta vai segmentar todos os usuários nas suas listas de público-alvo por lista de clientes.

Configurações da meta de retenção de fidelidade

Para definir metas de retenção de fidelidade para membros do programa de fidelidade, defina goal_type como LOYALTY_RETENTION e configure as opções no campo loyalty_retention_goal_settings (LoyaltyRetentionGoal).

Para metas de retenção de fidelidade, apenas a configuração value_multiplier é compatível com value_settings usando 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]
    )

Segmentar seus públicos-alvo

Você precisa usar o recurso UserListCustomerType para segmentar seus públicos-alvo para metas do ciclo de vida do cliente (incluindo aquisição de novos clientes, retenção de clientes e metas de retenção de fidelidade). Associe cada lista de usuários a uma ou mais categorias criando um UserListCustomerType para cada combinação de lista de usuários e categoria.

Use o UserListCustomerTypeService para criar instâncias de UserListCustomerType.

O UserListCustomerTypeService só aceita operações create e remove. Portanto, se você quiser atualizar um UserListCustomerType, remova-o e crie um novo com as atualizações necessárias.

Um UserListCustomerType só pode ser atribuído a uma lista de usuários, mas uma lista de usuários pode ter várias instâncias de UserListCustomerType associadas desde que não haja conflitos entre UserListCustomerType elas. Tentar atribuir instâncias de UserListCustomerType com as seguintes combinações de customer_type_category à mesma lista de usuários vai resultar em um erro UserListCustomerTypeError.CONFLICTING_CUSTOMER_TYPES:

Primeiros customer_type_category Segunda 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

Configurar as metas de ciclo de vida da campanha

No nível da campanha, é possível configurar substituições ou opções de segmentação específicas usando CampaignGoalConfig. Depois de ter uma meta no nível da conta, use o resource_name dela para criar um CampaignGoalConfig usando o método mutate_campaign_goal_configs no CampaignGoalConfigService.

Configurações de aquisição de novos clientes na campanha

Para substituir as configurações ou configurar a segmentação para NCA no nível da campanha, configure o campo campaign_new_customer_acquisition_settings do tipo CampaignNewCustomerAcquisitionGoalSettings:

  • value_settings_override (tipo: CustomerLifecycleOptimizationValueSettings): ajustes de valor personalizados para substituir as configurações no nível da conta.
  • target_option (tipo: CustomerLifecycleOptimizationMode): controla o modo de otimização do ciclo de vida do cliente. As opções são:
    • TARGET_ALL: a campanha segmenta clientes novos e atuais, mas dá lances mais altos para novos clientes usando os ajustes de valor configurados.
    • TARGET_SPECIFIC: a campanha segmenta apenas novos clientes. Os ajustes de lance não se aplicam a essa opção.
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]
    )

Configurações de retenção de clientes da campanha

Para substituir configurações ou configurar a segmentação de metas de retenção no nível da campanha, configure o campo campaign_retention_settings do tipo CampaignRetentionGoalSettings:

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

O campaign_retention_settings.target_option vai usar o padrão TARGET_ALL se não for definido. A opção de definir como TARGET_SPECIFIC está disponível apenas para usuários na lista de permissões adequada.

Configurações de retenção de fidelidade da campanha

Para substituir as configurações ou configurar um comportamento específico para membros do programa de fidelidade no nível da campanha para metas de LOYALTY_RETENTION, configure o campo campaign_loyalty_retention_settings do tipo CampaignLoyaltyRetentionGoalSettings em CampaignGoalConfig:

  • value_settings_override (tipo: CustomerLifecycleOptimizationValueSettings): ajustes de valor personalizados para substituir as configurações de valor de retenção de fidelidade no nível da conta.
  • enable_bid_adjustments_for_loyalty_members (tipo: bool): se as mudanças de lances para membros do programa de fidelidade estão ativadas nesta campanha.
  • show_targeted_loyalty_member_benefits_in_pla (tipo: bool): se os benefícios segmentados para membros do programa de fidelidade serão exibidos no formato de anúncio com informações do produto (PLA) em países qualificados.
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]
    )

Validação e erros

Ao configurar metas de ciclo de vida do cliente, é possível encontrar as seguintes restrições e erros:

Erros de validação de meta

Configuração de meta duplicada
Criar uma meta de ciclo de vida duplicada quando já existe uma resulta em um erro GoalError.NEW_CUSTOMER_ACQUISITION_GOAL_ALREADY_EXISTS (para NCA), GoalError.RETENTION_GOAL_ALREADY_EXISTS (para metas de retenção) ou GoalError.LOYALTY_RETENTION_GOAL_ALREADY_EXISTS (para metas de retenção de fidelidade).
Configurações de valor inválidas
Ao configurar as opções de valor da meta de ciclo de vida, se o valor da vida útil alto estiver presente, o valor padrão também precisará estar (GoalError.HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT), e o valor da vida útil alto precisará ser maior que o valor, se definido (GoalError.HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE).
Da mesma forma, para as configurações de valor multiplicativo, se o multiplicador de valor da vida útil alto estiver presente, o multiplicador de valor também precisará estar (GoalError.HIGH_LIFETIME_VALUE_MULTIPLIER_PRESENT_BUT_VALUE_MULTIPLIER_ABSENT), e o multiplicador de valor da vida útil alto precisará ser estritamente maior que o multiplicador de valor (GoalError.HIGH_LIFETIME_VALUE_MULTIPLIER_LESS_THAN_OR_EQUAL_TO_VALUE_MULTIPLIER).

Erros de validação da configuração de meta da campanha

Conflito de substituição de valor específico da meta
Para metas de aquisição de novos clientes, se target_option estiver definido como TARGET_SPECIFIC (para segmentar apenas novos clientes), as substituições de valor no nível da campanha não poderão ser configuradas (CampaignGoalConfigError.CAMPAIGN_OVERRIDE_VALUES_SET_FOR_NEW_CUSTOMER_ACQUISITION_TARGET_SPECIFIC_OPTION). Os ajustes de lances não são aplicáveis ao segmentar apenas novos clientes.
Substituição de configurações de valor inválida
Ao configurar substituições de definição de valor do ciclo de vida no nível da campanha, se o valor da vida útil alto estiver presente, o valor padrão também deverá estar (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT), e o valor da vida útil alto precisa ser maior que o valor, se definido (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE). Da mesma forma, para configurações de valor multiplicativo, se o multiplicador de valor da vida útil alto estiver presente, o multiplicador de valor também deverá estar (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_MULTIPLIER_PRESENT_BUT_VALUE_MULTIPLIER_ABSENT), e o multiplicador de valor da vida útil alto precisa ser estritamente maior que o multiplicador de valor (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_MULTIPLIER_LESS_THAN_OR_EQUAL_TO_VALUE_MULTIPLIER).
Suporte a campanhas de alto valor da vida útil
As substituições de alto valor de vida útil e os multiplicadores de alto valor de vida útil só podem ser definidos para tipos de campanha compatíveis (CampaignGoalConfigError.CAMPAIGN_OVERRIDE_HIGH_LIFETIME_VALUE_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE ou CampaignGoalConfigError.CAMPAIGN_OVERRIDE_HIGH_LIFETIME_VALUE_MULTIPLIER_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE).
Metas incompatíveis
Um erro será gerado se uma campanha tentar aplicar metas incompatíveis de otimização do ciclo de vida do cliente simultaneamente (CampaignGoalConfigError.CANNOT_USE_INCOMPATIBLE_CLO_GOALS). A tabela abaixo descreve combinações de metas mutuamente exclusivas que acionam esse erro:
Tipo / modo de meta de ciclo de vida do cliente Meta / modo incompatível
Retenção de clientes ("Dar lances apenas para clientes inativos" / TARGET_SPECIFIC) Aquisição de novos clientes ("Dar lances apenas para novos clientes" / TARGET_SPECIFIC, "Dar lances mais altos para novos clientes" / TARGET_ALL), prospecção
Retenção de clientes ("Dar lances mais altos para clientes inativos" / TARGET_ALL) Aquisição de novos clientes ("Dar lances apenas para novos clientes" / TARGET_SPECIFIC), prospecção
Retenção de fidelidade (multiplicador de valor) Aquisição de novos clientes ("Dar lances apenas para novos clientes" / TARGET_SPECIFIC), retenção de clientes ("Dar lances apenas para clientes inativos" / TARGET_SPECIFIC), prospecção, lucro bruto
Retenção de fidelidade (benefícios em PLA) Aquisição de novos clientes ("Dar lances apenas para novos clientes" / TARGET_SPECIFIC), prospecção, lucro bruto
Prospecção Aquisição de novos clientes ("Dar lances apenas para novos clientes" / TARGET_SPECIFIC, "Dar lances mais altos para novos clientes" / TARGET_ALL)

Recuperar metas de ciclo de vida

Assim como acontece com outros recursos na API Google Ads, use os métodos search ou searchStream de GoogleAdsService para recuperar metas e configurações de ciclo de vida.

A consulta a seguir recupera os detalhes de cada Goal configurado em uma conta da API 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

Da mesma forma, a consulta a seguir recupera os detalhes 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