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 objectifs de rétention pour 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 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 les 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.

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 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 d'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 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 conversion du premier 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 à valeur vie élevée (non compatible pour le moment).

La valeur vie élevée doit être supérieure à la valeur, et le multiplicateur de la 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 fidélisation client, 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 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
    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]
    )

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

Paramètres de l'objectif de fidélisation

Pour configurer des objectifs de rétention de la fidélité 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 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.

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 essayez d' attribuer UserListCustomerType instances avec les combinaisons suivantes de customer_type_category à la même liste d'utilisateurs, vous obtenez une erreur UserListCustomerTypeError.CONFLICTING_CUSTOMER_TYPES :

Premier customer_type_category 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 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 le 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. 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 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.
    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 client 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 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 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_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 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 campaign_loyalty_retention_settings champ 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 réservés aux abonnés 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.

    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

Lors de la configuration 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, vous obtenez 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
Lorsque vous configurez les paramètres de valeur d'un objectif 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, 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 la valeur vie élevée est présent, le multiplicateur de valeur doit l'être également (GoalError.HIGH_LIFETIME_VALUE_MULTIPLIER_PRESENT_BUT_VALUE_MULTIPLIER_ABSENT). De plus, le multiplicateur de la 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 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.
Remplacement de paramètres de valeur non valides
Lorsque vous configurez des remplacements de paramètres de valeur de cycle de vie au niveau de la campagne, si la valeur vie élevée est présente, la valeur standard doit l'être également (CampaignGoalConfigError.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 (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE). De même, pour les paramètres de valeur multiplicative, si le multiplicateur de la valeur vie élevée est présent, le multiplicateur de valeur doit l'être également (CampaignGoalConfigError.HIGH_LIFETIME_VALUE_MULTIPLIER_PRESENT_BUT_VALUE_MULTIPLIER_ABSENT). De plus, le multiplicateur de la 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).
Compatibilité des types de campagnes avec la valeur vie élevée
Les remplacements de la valeur vie élevée et les remplacements du multiplicateur de la 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 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 suivant 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
Fidélisation client ("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
Fidélisation client ("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), fidélisation client ("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 search ou searchStream méthodes de GoogleAdsService pour récupérer les objectifs et les configurations 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