Objectifs de cycle de vie

Utilisez les Goal et CampaignGoalConfig ressources de l'API Google Ads pour configurer des objectifs liés au cycle de vie client. L'API Google Ads est compatible avec les objectifs d'acquisition de clients et de rétention des clients pour gérer efficacement les ajustements de la valeur du cycle de vie client via vos campagnes Google Ads.

Si votre compte Google Ads utilise le suivi des conversions multicomptes, vous devez configurer les objectifs de cycle de vie au niveau du client dans le compte de conversion Google Ads au lieu de le faire directement dans votre compte Google Ads. Toutefois, vous devez toujours définir des configurations au niveau de la campagne dans votre compte. Cela revient à gérer d'autres objectifs lorsque vous utilisez le suivi des conversions multicomptes.

Types d'objectifs de cycle de vie client

Les objectifs de cycle de vie client sont configurés au niveau du compte à l'aide de la Goal ressource. Un objectif représente un objectif de cycle de vie spécifique et est défini par son goal_type.

Les types d'objectifs de cycle de vie compatibles sont les suivants :

NEW_CUSTOMER_ACQUISITION
Pour acquérir efficacement de nouveaux clients en attribuant des ajustements de valeur à leurs conversions.
CUSTOMER_RETENTION
Pour réengager des clients existants, à fort potentiel et inactifs.
LOYALTY_RETENTION
Pour favoriser la rétention et l'engagement, en particulier auprès des membres du programme de fidélité.

Configurer les objectifs de cycle de vie client

Au niveau du client, configurez un objectif de cycle de vie en créant un Goal. Il ne peut y avoir qu'un seul Goal par type d'objectif (NEW_CUSTOMER_ACQUISITION, CUSTOMER_RETENTION ou LOYALTY_RETENTION) dans un compte Google Ads.

Paramètres de l'objectif "Acquisition de nouveaux clients"

Pour configurer l'acquisition de nouveaux clients, définissez le goal_type sur NEW_CUSTOMER_ACQUISITION et configurez les paramètres dans le champ new_customer_acquisition_goal_settings à l'aide du GoalService.

Les paramètres utilisent CustomerLifecycleOptimizationValueSettings pour spécifier les ajustements de la valeur de conversion pour les clients acquis :

  • value_adjustment (oneof):
    • additional_value (double) : valeur de conversion incrémentale à ajouter à la première conversion d'achat d'un nouveau client.
    • value_multiplier (double) : multiplicateur à appliquer à la valeur de conversion pour le premier achat d'un nouveau client (non disponible pour le moment).
  • high_lifetime_value_adjustment (oneof):
    • additional_high_lifetime_value (double) : valeur de conversion incrémentale pour les nouveaux clients identifiés comme ayant une valeur vie élevée.
    • high_lifetime_value_multiplier (double) : multiplicateur de la valeur de conversion à appliquer aux nouveaux clients à valeur vie élevée (non disponible pour le moment).

Si elle est définie, la valeur vie élevée doit être supérieure à la valeur.

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

Paramètres de l'objectif de rétention

Pour configurer la rétention des clients, définissez goal_type sur CUSTOMER_RETENTION et configurez les paramètres dans le champ retention_goal_settings.

Avant de créer un objectif de rétention, vous devez remplir les conditions préalables décrites dans À propos de l'objectif de rétention. Cela inclut d'avoir une campagne Performance Max et une liste d'utilisateurs de ciblage par liste de clients.

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

Cela créera un objectif de rétention au niveau du compte pour le compte client spécifié, qui sera appliqué à toutes ses campagnes. Par défaut, cet objectif ciblera tous les utilisateurs de vos listes d'utilisateurs de ciblage par liste de clients.

Paramètres de l'objectif "Fidélisation"

Pour configurer des objectifs de fidélisation pour les membres du programme de fidélité, définissez goal_type sur LOYALTY_RETENTION et configurez les paramètres dans le champ loyalty_retention_goal_settings (LoyaltyRetentionGoal).

Pour les objectifs de fidélisation, seul le value_multiplier est compatible avec value_settings à l'aide de 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]
    )

Segmenter vos audiences

Vous devez utiliser la ressource UserListCustomerType pour segmenter vos audiences pour les objectifs de cycle de vie client (y compris les objectifs d'acquisition de nouveaux clients, de rétention des clients et de fidélisation). Vous devez associer chaque liste d'utilisateurs à une ou plusieurs catégories en créant un UserListCustomerType pour chaque combinaison de liste d'utilisateurs et de catégorie.

Utilisez UserListCustomerTypeService pour créer des instances UserListCustomerType.

Le UserListCustomerTypeService n'est compatible qu'avec les opérations create et remove. Par conséquent, si vous souhaitez mettre à jour un UserListCustomerType existant, vous devez le supprimer, puis en créer un avec les mises à jour nécessaires.

Un UserListCustomerType ne peut être attribué qu'à une seule liste d'utilisateurs, mais une liste d'utilisateurs peut avoir plusieurs instances UserListCustomerType associées à condition qu'il n'y ait aucun conflit entre les instances UserListCustomerType. Si vous tentez d'attribuer des instances UserListCustomerType avec les combinaisons suivantes de customer_type_category à la même liste d'utilisateurs, une erreur UserListCustomerTypeError.CONFLICTING_CUSTOMER_TYPES se produira :

Premier customer_type_category Deuxième customer_type_category
CLIENTS EXISTANTS CONVERTED_LEADS
CLIENTS EXISTANTS QUALIFIED_LEADS
CLIENTS EXISTANTS 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

Configurer les configurations d'objectif de cycle de vie de la campagne

Au niveau de la campagne, vous pouvez configurer des remplacements ou des options de ciblage spécifiques à la campagne à l'aide de CampaignGoalConfig. Une fois que vous disposez d'un objectif au niveau du compte, utilisez son resource_name pour créer un CampaignGoalConfig à l'aide de la méthode mutate_campaign_goal_configs sur CampaignGoalConfigService.

Paramètres d'acquisition de nouveaux clients pour la campagne

Pour remplacer les paramètres ou configurer le ciblage pour l'acquisition de nouveaux clients au niveau de la campagne, configurez le campaign_new_customer_acquisition_settings champ de type CampaignNewCustomerAcquisitionGoalSettings :

  • value_settings_override (Type : CustomerLifecycleOptimizationValueSettings) : ajustements de valeur personnalisés pour remplacer les paramètres au niveau du compte.
  • target_option (Type : CustomerLifecycleOptimizationMode) : contrôle le mode d'optimisation du cycle de vie client. Les options sont les suivantes :
    • TARGET_ALL : la campagne cible les clients nouveaux et existants, mais définit des enchères plus élevées pour les nouveaux clients à l'aide des ajustements de valeur configurés.
    • TARGET_SPECIFIC : la campagne cible uniquement les nouveaux clients. Les ajustements d'enchères ne s'appliquent pas à cette option.
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]
    )

Paramètres de rétention des clients pour la campagne

Pour remplacer les paramètres ou configurer le ciblage pour les objectifs de rétention au niveau de la campagne, configurez le campaign_retention_settings champ de type CampaignRetentionGoalSettings :

  • value_settings_override (Type : CustomerLifecycleOptimizationValueSettings) : ajustements de valeur personnalisés pour remplacer les paramètres au niveau du compte.
  • target_option (Type : CustomerLifecycleOptimizationMode) : contrôle le mode d'optimisation. La valeur par défaut est TARGET_ALL. Pour la définir sur TARGET_SPECIFIC, votre compte doit figurer sur la liste d'autorisation appropriée.
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 elle n'est pas définie, la valeur par défaut de campaign_retention_settings.target_option est TARGET_ALL. L'option permettant de définir TARGET_SPECIFIC n'est disponible que pour les utilisateurs figurant sur la liste d'autorisation appropriée.

Paramètres de fidélisation pour la campagne

Pour remplacer les paramètres ou configurer un comportement spécifique aux membres du programme de fidélité au niveau de la campagne pour les objectifs LOYALTY_RETENTION, configurez le champ campaign_loyalty_retention_settings de type CampaignLoyaltyRetentionGoalSettings sur CampaignGoalConfig :

  • value_settings_override (Type : CustomerLifecycleOptimizationValueSettings) : ajustements de valeur personnalisés pour remplacer les paramètres de valeur de fidélisation au niveau du compte.
  • enable_bid_adjustments_for_loyalty_members (Type : bool) : indique si les ajustements d'enchères doivent être activés pour les membres du programme de fidélité dans cette campagne.
  • show_targeted_loyalty_member_benefits_in_pla (Type : bool) : indique si les avantages ciblés pour les membres du programme de fidélité doivent être affichés au format d'annonce pour une offre de produit dans les pays éligibles.
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]
    )

Validation et erreurs

Lors de la configuration des objectifs de cycle de vie client, les contraintes et erreurs suivantes peuvent se produire :

Erreurs de validation des objectifs

Configuration d'objectif en double
La création d'un objectif de cycle de vie en double lorsqu'il en existe déjà un génère une erreur GoalError.NEW_CUSTOMER_ACQUISITION_GOAL_ALREADY_EXISTS (pour l'acquisition de nouveaux clients), GoalError.RETENTION_GOAL_ALREADY_EXISTS (pour les objectifs de rétention) ou GoalError.LOYALTY_RETENTION_GOAL_ALREADY_EXISTS (pour les objectifs de fidélisation).
Paramètres de valeur non valides
Lors de la configuration des paramètres de valeur des objectifs de cycle de vie, si la valeur vie élevée est présente, la valeur standard doit l'être également (GoalError.HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT). De plus, si elle est définie, la valeur vie élevée doit être supérieure à la valeur (GoalError.HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE).

Erreurs de validation de la configuration d'objectif de la campagne

Conflit de remplacement de valeur spécifique à la cible
Pour les objectifs d'acquisition de nouveaux clients, si target_option est défini sur TARGET_SPECIFIC (pour cibler uniquement les nouveaux clients), les remplacements de valeur au niveau de la campagne ne doivent pas être configurés (CampaignGoalConfigError.CAMPAIGN_OVERRIDE_VALUES_SET_FOR_NEW_CUSTOMER_ACQUISITION_TARGET_SPECIFIC_OPTION). Les ajustements d'enchères ne s'appliquent pas lorsque vous ciblez uniquement les nouveaux clients.
Compatibilité des types de campagnes avec la valeur vie élevée
Les remplacements de valeur vie élevée ne doivent être définis que pour les types de campagnes compatibles (CampaignGoalConfigError.CAMPAIGN_OVERRIDE_HIGH_LIFETIME_VALUE_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE).
Objectifs non compatibles
Une erreur est générée si une campagne tente d'appliquer simultanément des objectifs d'optimisation du cycle de vie client non compatibles (CampaignGoalConfigError.CANNOT_USE_INCOMPATIBLE_CLO_GOALS). Le tableau ci-dessous présente les combinaisons d'objectifs mutuellement exclusives qui déclenchent cette erreur :
Type / mode d'objectif de cycle de vie client Objectif / mode non compatible
Rétention des clients ("Enchérir seulement pour les clients inactifs" / TARGET_SPECIFIC) Acquisition de nouveaux clients ("Enchérir seulement pour les nouveaux clients" / TARGET_SPECIFIC, "Définir des enchères plus élevées pour les nouveaux clients" / TARGET_ALL), prospection
Rétention des clients ("Définir des enchères plus élevées pour les clients inactifs" / TARGET_ALL) Acquisition de nouveaux clients ("Enchérir seulement pour les nouveaux clients" / TARGET_SPECIFIC), prospection
Fidélisation (multiplicateur de valeur) Acquisition de nouveaux clients ("Enchérir seulement pour les nouveaux clients" / TARGET_SPECIFIC), rétention des clients ("Enchérir seulement pour les clients inactifs" / TARGET_SPECIFIC), prospection, bénéfices bruts
Fidélisation (avantages dans les annonces pour une offre de produit) Acquisition de nouveaux clients ("Enchérir seulement pour les nouveaux clients" / TARGET_SPECIFIC), prospection, bénéfices bruts
Prospection Acquisition de nouveaux clients ("Enchérir seulement pour les nouveaux clients" / TARGET_SPECIFIC, "Définir des enchères plus élevées pour les nouveaux clients" / TARGET_ALL)

Récupérer les objectifs de cycle de vie

Comme pour les autres ressources de l'API Google Ads, utilisez les méthodes search ou searchStream de GoogleAdsService pour récupérer les objectifs de cycle de vie et les configurations.

La requête suivante récupère les détails de chaque Goal configuré dans un compte de l'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

De même, la requête suivante récupère les détails de chaque 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