Objectifs de cycle de vie

Utilisez les ressources Goal et CampaignGoalConfig 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 nouveaux clients et les objectifs de rétention. Vous pouvez ainsi gérer efficacement les ajustements de la valeur du cycle de vie client dans 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 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 ressemble à la façon dont vous gérez les 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 ressource Goal. Un objectif représente un objectif de cycle de vie spécifique et est défini par son goal_type.

Voici les types d'objectifs de cycle de vie acceptés :

NEW_CUSTOMER_ACQUISITION
Pour acquérir efficacement de nouveaux clients en attribuant des ajustements de valeur à leurs conversions.
CUSTOMER_RETENTION
Pour réengager les clients existants, à fort potentiel et inactifs.
LOYALTY_RETENTION
 : pour améliorer la fidélisation 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 d'acquisition de nouveaux clients

Pour configurer l'acquisition de nouveaux clients, définissez goal_type sur NEW_CUSTOMER_ACQUISITION et configurez les paramètres dans le champ new_customer_acquisition_goal_settings à l'aide de 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 du 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 à forte valeur vie (non disponible pour le moment).

La valeur vie élevée doit être supérieure à la valeur, et le multiplicateur de valeur vie élevée doit être strictement supérieur au multiplicateur de valeur, s'il est défini.

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 des clients

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

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

Paramètres de l'objectif de rétention de la fidélité

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 paramètre value_multiplier est accepté dans 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 fidélisation des clients et de fidélisation des clients fidèles). 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.

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 modifications nécessaires.

Un UserListCustomerType ne peut être attribué qu'à une seule liste d'utilisateurs, mais une liste d'utilisateurs peut comporter plusieurs instances UserListCustomerType associées à condition qu'il n'y ait pas de conflit entre les instances UserListCustomerType. Si vous essayez 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 s'affichera :

customer_type_category depuis la mise en ligne Deuxième customer_type_category
ACHETEURS CONVERTED_LEADS
ACHETEURS QUALIFIED_LEADS
ACHETEURS 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 options de ciblage ou de remplacement spécifiques à la campagne à l'aide de CampaignGoalConfig. Une fois que vous avez 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 au niveau de la campagne

Pour remplacer les paramètres ou configurer le ciblage pour l'acquisition de nouveaux clients au niveau de la campagne, configurez le champ campaign_new_customer_acquisition_settings 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 à la fois les nouveaux clients et les clients 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 ne cible que 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 au niveau de la campagne

Pour remplacer les paramètres ou configurer le ciblage pour les objectifs de fidélisation au niveau de la campagne, configurez le champ campaign_retention_settings 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 définir la valeur 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 campaign_retention_settings.target_option n'est pas défini, la valeur par défaut est TARGET_ALL. L'option permettant de définir la valeur sur TARGET_SPECIFIC n'est disponible que pour les utilisateurs figurant sur la liste d'autorisation appropriée.

Paramètres de fidélisation des clients dans les campagnes

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 pour les membres du programme de fidélité doivent être activés 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 des annonces 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

Lorsque vous configurez des objectifs de cycle de vie client, vous pouvez rencontrer les contraintes et erreurs suivantes :

Erreurs de validation des objectifs

Dupliquer la configuration d'un objectif
Si vous créez un objectif de cycle de vie en double alors qu'il en existe déjà un, une erreur GoalError.NEW_CUSTOMER_ACQUISITION_GOAL_ALREADY_EXISTS (pour l'acquisition de nouveaux clients), GoalError.RETENTION_GOAL_ALREADY_EXISTS (pour les objectifs de fidélisation) ou GoalError.LOYALTY_RETENTION_GOAL_ALREADY_EXISTS (pour les objectifs de fidélisation des clients fidèles) s'affiche.
Paramètres de valeur non valides
Lorsque vous configurez les paramètres de valeur de l'objectif de cycle de vie, si une valeur vie élevée est présente, la valeur standard doit également l'être (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).
De même, pour les paramètres de valeur multiplicative, si le multiplicateur de valeur vie élevée est présent, le multiplicateur de valeur doit également l'être (GoalError.HIGH_LIFETIME_VALUE_MULTIPLIER_PRESENT_BUT_VALUE_MULTIPLIER_ABSENT). De plus, le multiplicateur de valeur vie élevée doit être strictement supérieur au multiplicateur de valeur (GoalError.HIGH_LIFETIME_VALUE_MULTIPLIER_LESS_THAN_OR_EQUAL_TO_VALUE_MULTIPLIER).

Erreurs de validation de la configuration des objectifs de campagne

Conflit de remplacement de valeur spécifique 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 valeurs de remplacement au niveau de la campagne ne doivent pas être configurées (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.
Remplacement des paramètres de valeur non valide
Lorsque vous configurez des remplacements de paramètres de valeur de cycle de vie au niveau de la campagne, si une valeur vie élevée est présente, la valeur standard doit également l'être (CampaignGoalConfigError.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 (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE). De même, pour les paramètres de valeur multiplicative, si le multiplicateur de valeur vie élevée est présent, le multiplicateur de valeur doit également l'être (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_MULTIPLIER_PRESENT_BUT_VALUE_MULTIPLIER_ABSENT). De plus, le multiplicateur de valeur vie élevée doit être strictement supérieur au multiplicateur de valeur (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_MULTIPLIER_LESS_THAN_OR_EQUAL_TO_VALUE_MULTIPLIER).
Prise en charge des types de campagnes à forte valeur vie
Les remplacements de valeur vie élevée et les remplacements de multiplicateur 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 ou CampaignGoalConfigError.CAMPAIGN_OVERRIDE_HIGH_LIFETIME_VALUE_MULTIPLIER_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE).
Objectifs incompatibles
Une erreur est générée si une campagne tente d'appliquer simultanément des objectifs d'optimisation du cycle de vie client incompatibles (CampaignGoalConfigError.CANNOT_USE_INCOMPATIBLE_CLO_GOALS). Le tableau ci-dessous présente les combinaisons d'objectifs mutuellement exclusifs qui déclenchent cette erreur :
Type / Mode d'objectif de cycle de vie client Objectif / Mode incompatible
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, Marge brute
Fidélisation (avantages dans les AP) Acquisition de nouveaux clients ("Enchérir seulement pour les nouveaux clients" / TARGET_SPECIFIC), prospection, marge brute
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 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