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. Cette méthode est semblable à celle que vous utilisez pour 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 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.

Le champ new_customer_acquisition_goal_settings.value_settings utilise CustomerLifecycleOptimizationValueSettings pour spécifier les ajustements de la valeur de conversion pour les clients acquis :

  • value_settings (CustomerLifecycleOptimizationValueSettings) :
    • 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 compatible avec NEW_CUSTOMER_ACQUISITION, mais compatible avec LOYALTY_RETENTION).
    • 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 encore disponible).

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.
    value_settings = goal.new_customer_acquisition_goal_settings.value_settings
    value_settings.additional_value = 50.0
    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 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
    value_settings = goal.retention_goal_settings.value_settings
    value_settings.additional_value = 50.0
    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 est alors créé au niveau du compte pour le compte client spécifié. Il est appliqué à toutes ses campagnes. Par défaut, cet objectif cible tous les utilisateurs de vos listes de ciblage par liste de clients.

Paramètres de l'objectif de 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).

Contrairement aux objectifs NEW_CUSTOMER_ACQUISITION et CUSTOMER_RETENTION (qui utilisent des ajustements de valeur additifs), les objectifs LOYALTY_RETENTION sont compatibles avec le paramètre value_multiplier 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'accepte que 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 à condition qu'il n'y ait pas de conflits 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 se produit :

customer_type_category depuis la mise en ligne Deuxième customer_type_category
PURCHASERS CONVERTED_LEADS
PURCHASERS QUALIFIED_LEADS
PURCHASERS 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 des remplacements 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 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 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. Vous disposez des options 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 des 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.
    nca_settings = goal_config.campaign_new_customer_acquisition_settings
    nca_settings.target_option = (
        client.enums.CustomerLifecycleOptimizationModeEnum.TARGET_ALL
    )
    # Optionally override value settings.
    nca_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 fidélisation des clients au niveau de la campagne

Pour remplacer les paramètres ou configurer le ciblage des 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_ALL
    )
    # Accounts on the allowlist can set TARGET_SPECIFIC instead:
    # 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 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 Annonce pour une offre de produit (APR) 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.

    Args:
        client: an initialized GoogleAdsClient instance.
        customer_id: a client customer ID.
        goal_resource_name: the resource name of an existing Loyalty 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.
    loyalty_settings = goal_config.campaign_loyalty_retention_settings
    loyalty_settings.enable_bid_adjustments_for_loyalty_members = True
    loyalty_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

Configuration d'objectif en double
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 les objectifs d'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, la valeur vie élevée doit être supérieure à la valeur, si elle est définie (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 cible spécifique
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.
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 être présente (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT) et la valeur vie élevée doit être supérieure à la valeur, si elle est définie (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 être présent (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_MULTIPLIER_PRESENT_BUT_VALUE_MULTIPLIER_ABSENT) et 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 valeurs de remplacement de la valeur vie élevée et les valeurs de remplacement du multiplicateur de la valeur vie élevée ne doivent être définies 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 suivant 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 configurations et les objectifs de cycle de vie.

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