라이프사이클 목표

Google Ads API의 Goal 및 CampaignGoalConfig 리소스를 사용하여 고객 수명 주기와 관련된 목표를 구성합니다. Google Ads API는 Google Ads 캠페인을 통해 고객 평생 가치 조정을 효율적으로 관리할 수 있는 고객 확보 목표 및 이탈 고객 확보 목표를 지원합니다.

Google Ads 계정에서 교차 계정 전환 추적을 사용하는 경우 Google Ads 계정에서 직접 구성하는 대신 Google Ads 전환 계정에서 고객 수준 라이프사이클 목표를 구성해야 합니다. 하지만 계정에서 캠페인 수준 구성을 설정해야 합니다. 이는 교차 계정 전환 추적을 사용할 때 다른 목표를 관리하는 방식과 유사합니다.

라이프사이클 목표 유형

고객 라이프사이클 목표는 Goal 리소스를 사용하여 계정 수준에서 구성됩니다. 목표는 특정 수명 주기 목표를 나타내며 goal_type로 정의됩니다.

지원되는 라이프사이클 목표 유형은 다음과 같습니다.

NEW_CUSTOMER_ACQUISITION
전환에 가치 조정을 할당하여 신규 고객을 효율적으로 획득하는 데 사용됩니다.
CUSTOMER_RETENTION
기존 고객, 가치가 높은 고객, 과거 이용 고객의 재참여를 유도하는 경우
LOYALTY_RETENTION
포인트 멤버십 회원의 유지율과 참여도를 높이는 데 사용됩니다.

라이프사이클 목표 구성하기

고객 수준에서 Goal를 만들어 라이프사이클 목표를 구성합니다. Google Ads 계정에서 목표 유형(NEW_CUSTOMER_ACQUISITION, CUSTOMER_RETENTION 또는 LOYALTY_RETENTION)당 최대 하나의 Goal가 있을 수 있습니다.

신규 고객 확보 목표 설정

신규 고객 확보 (NCA)를 설정하려면 goal_type를 NEW_CUSTOMER_ACQUISITION로 설정하고 GoalService를 사용하여 new_customer_acquisition_goal_settings 필드에서 설정을 구성합니다.

new_customer_acquisition_goal_settings.value_settings 필드는 CustomerLifecycleOptimizationValueSettings를 사용하여 획득한 고객의 전환 가치 조정을 지정합니다.

  • value_settings (CustomerLifecycleOptimizationValueSettings):
    • value_adjustment (oneof):
      • additional_value (double): 신규 고객의 첫 구매 전환에 추가할 증가한 전환 가치입니다.
      • value_multiplier (double): 신규 고객의 첫 구매에 대한 전환 가치에 적용할 배수입니다(NEW_CUSTOMER_ACQUISITION에는 지원되지 않고 LOYALTY_RETENTION에는 지원됨).
    • high_lifetime_value_adjustment (oneof):
      • additional_high_lifetime_value (double): 평생 가치가 높은 것으로 식별된 신규 고객의 전환 가치 증가분입니다.
      • high_lifetime_value_multiplier (double): 평생 가치가 높은 신규 고객에게 적용할 전환 가치 배율입니다 (아직 지원되지 않음).

높은 평생 가치는 값보다 커야 하며, 높은 평생 가치 배율은 설정된 경우 값 배율보다 커야 합니다.

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

이탈 고객 확보 목표 설정

이탈 고객 확보를 설정하려면 goal_type를 CUSTOMER_RETENTION로 설정하고 retention_goal_settings 필드에서 설정을 구성합니다.

이탈 고객 확보 목표를 만들기 전에 이탈 고객 확보 목표 정보에 설명된 기본 요건을 충족해야 합니다. 여기에는 실적 최대화 캠페인과 고객 매치 타겟팅 사용자 목록이 포함됩니다.

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

이렇게 하면 지정된 고객 계정의 계정 수준에서 새 이탈 고객 확보 목표가 생성되며, 이 목표는 모든 캠페인에 적용됩니다. 기본적으로 이 목표는 고객 매치 타겟팅 사용자 목록의 모든 사용자를 타겟팅합니다.

포인트 멤버십 이탈 고객 확보 목표 설정

포인트 멤버십 회원을 대상으로 한 포인트 멤버십 이탈 고객 확보 목표를 설정하려면 goal_type를 LOYALTY_RETENTION로 설정하고 loyalty_retention_goal_settings 필드 (LoyaltyRetentionGoal)에서 설정을 구성합니다.

NEW_CUSTOMER_ACQUISITION 및 CUSTOMER_RETENTION 목표 (부가 가치 조정 사용)와 달리 LOYALTY_RETENTION 목표는 CustomerLifecycleOptimizationValueSettings를 사용하여 value_settings에서 value_multiplier 설정을 지원합니다.

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

잠재고객 분류

UserListCustomerType 리소스를 사용하여 라이프사이클 목표 (신규 고객 확보, 이탈 고객 확보, 충성도 유지 목표 포함)에 맞게 잠재고객을 분류해야 합니다. 사용자 목록과 카테고리의 각 조합에 대해 UserListCustomerType를 만들어 각 사용자 목록을 하나 이상의 카테고리와 연결해야 합니다.

UserListCustomerTypeService를 사용하여 UserListCustomerType 인스턴스를 만듭니다.

UserListCustomerTypeService는 create 및 remove 작업만 지원하므로 기존 UserListCustomerType를 업데이트하려면 이를 삭제한 후 필요한 업데이트를 사용하여 새 항목을 만들어야 합니다.

UserListCustomerType는 하나의 사용자 목록에만 할당할 수 있지만, 사용자 목록에는 UserListCustomerType 인스턴스 간에 충돌이 없는 한 여러 개의 연결된 UserListCustomerType 인스턴스가 있을 수 있습니다. customer_type_category의 다음 조합을 사용하여 UserListCustomerType 인스턴스를 동일한 사용자 목록에 할당하려고 하면 UserListCustomerTypeError.CONFLICTING_CUSTOMER_TYPES 오류가 발생합니다.

처음 customer_type_category 두 번째 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

캠페인 라이프사이클 목표 구성

캠페인 수준에서 CampaignGoalConfig를 사용하여 캠페인별 재정의 또는 타겟팅 옵션을 구성할 수 있습니다. 계정 수준 목표가 있으면 resource_name를 사용하여 CampaignGoalConfigService에서 mutate_campaign_goal_configs 메서드를 사용하여 CampaignGoalConfig를 만듭니다.

캠페인 신규 고객 확보 설정

캠페인 수준에서 NCA의 설정을 재정의하거나 타겟팅을 구성하려면 CampaignNewCustomerAcquisitionGoalSettings 유형의 campaign_new_customer_acquisition_settings 필드를 구성합니다.

  • value_settings_override (유형: CustomerLifecycleOptimizationValueSettings): 계정 수준 설정을 재정의하는 맞춤 가치 조정입니다.
  • target_option (유형: CustomerLifecycleOptimizationMode): 고객 수명 주기 최적화 모드를 제어합니다. 옵션은 다음과 같습니다.
    • TARGET_ALL: 캠페인은 신규 고객과 기존 고객을 모두 타겟팅하지만 구성된 가치 조정을 사용하여 신규 고객에게 더 높게 입찰합니다.
    • TARGET_SPECIFIC: 캠페인이 신규 고객만 타겟팅합니다. 이 옵션에는 입찰가 조정이 적용되지 않습니다.
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]
    )

캠페인 이탈 고객 확보 설정

캠페인 수준에서 이탈 고객 확보 목표의 설정을 재정의하거나 타겟팅을 구성하려면 CampaignRetentionGoalSettings 유형의 campaign_retention_settings 필드를 구성합니다.

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

campaign_retention_settings.target_option를 설정하지 않으면 기본값은 TARGET_ALL입니다. TARGET_SPECIFIC를 설정하는 옵션은 적절한 허용 목록에 있는 사용자만 사용할 수 있습니다.

캠페인 충성도 유지 설정

LOYALTY_RETENTION 목표의 캠페인 수준에서 설정을 재정의하거나 포인트 멤버십 회원별 동작을 구성하려면 CampaignGoalConfig에서 CampaignLoyaltyRetentionGoalSettings 유형의 campaign_loyalty_retention_settings 필드를 구성합니다.

  • value_settings_override (유형: CustomerLifecycleOptimizationValueSettings): 계정 수준 충성도 유지 가치 설정을 재정의하는 맞춤 가치 조정입니다.
  • enable_bid_adjustments_for_loyalty_members (유형: bool): 이 캠페인에서 포인트 멤버십 회원에 대한 입찰가 조정을 사용 설정할지 여부입니다.
  • show_targeted_loyalty_member_benefits_in_pla (유형: bool): 대상 국가에서 제품 등록정보 광고 (PLA) 형식으로 타겟팅된 포인트 멤버십 회원 혜택을 표시할지 여부입니다.
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]
    )

검증 및 오류

고객 라이프사이클 목표를 구성할 때 다음과 같은 제약 조건 및 오류가 발생할 수 있습니다.

목표 검증 오류

중복 목표 구성
이미 존재하는 라이프사이클 목표를 중복으로 만들면 GoalError.NEW_CUSTOMER_ACQUISITION_GOAL_ALREADY_EXISTS (NCA의 경우), GoalError.RETENTION_GOAL_ALREADY_EXISTS (이탈 고객 확보 목표의 경우) 또는 GoalError.LOYALTY_RETENTION_GOAL_ALREADY_EXISTS (충성도 유지 목표의 경우) 오류가 발생합니다.
잘못된 값 설정
라이프사이클 목표 가치 설정을 구성할 때 높은 평생 가치가 있는 경우 표준 가치가 있어야 하고(GoalError.HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT), 높은 평생 가치는 설정된 경우 가치보다 커야 합니다(GoalError.HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE).
마찬가지로 곱셈 가치 설정의 경우 높은 평생 가치 배율이 있으면 가치 배율이 있어야 하고(GoalError.HIGH_LIFETIME_VALUE_MULTIPLIER_PRESENT_BUT_VALUE_MULTIPLIER_ABSENT), 높은 평생 가치 배율은 가치 배율보다 엄격하게 커야 합니다(GoalError.HIGH_LIFETIME_VALUE_MULTIPLIER_LESS_THAN_OR_EQUAL_TO_VALUE_MULTIPLIER).

캠페인 목표 구성 검증 오류

타겟별 값 재정의 충돌
신규 고객 확보 목표의 경우 target_option가 TARGET_SPECIFIC (신규 고객만 타겟팅)로 설정되어 있으면 캠페인 수준 가치 재정의를 구성하면 안 됩니다(CampaignGoalConfigError.CAMPAIGN_OVERRIDE_VALUES_SET_FOR_NEW_CUSTOMER_ACQUISITION_TARGET_SPECIFIC_OPTION). 신규 고객만 타겟팅하는 경우 입찰가 조정이 적용되지 않습니다.
잘못된 값 설정 재정의
캠페인 수준 생애 가치 설정 재정의를 구성할 때 높은 생애 가치가 있는 경우 표준 가치가 있어야 하고(CampaignGoalConfigError.HIGH_LIFETIME_VALUE_PRESENT_BUT_VALUE_ABSENT), 높은 생애 가치는 설정된 경우 가치보다 커야 합니다(CampaignGoalConfigError.HIGH_LIFETIME_VALUE_LESS_THAN_OR_EQUAL_TO_VALUE). 마찬가지로 곱셈 가치 설정의 경우 높은 생애 가치 배율이 있으면 가치 배율이 있어야 하고(CampaignGoalConfigError.HIGH_LIFETIME_VALUE_MULTIPLIER_PRESENT_BUT_VALUE_MULTIPLIER_ABSENT), 높은 생애 가치 배율은 가치 배율보다 엄격하게 커야 합니다(CampaignGoalConfigError.HIGH_LIFETIME_VALUE_MULTIPLIER_LESS_THAN_OR_EQUAL_TO_VALUE_MULTIPLIER).
평생 가치가 높은 캠페인 유형 지원
높은 평생 가치 재정의 및 높은 평생 가치 배율 재정의는 지원되는 캠페인 유형(CampaignGoalConfigError.CAMPAIGN_OVERRIDE_HIGH_LIFETIME_VALUE_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE 또는 CampaignGoalConfigError.CAMPAIGN_OVERRIDE_HIGH_LIFETIME_VALUE_MULTIPLIER_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE)에만 설정해야 합니다.
호환되지 않는 목표
캠페인에서 호환되지 않는 고객 라이프사이클 최적화 목표를 동시에 적용하려고 하면 오류가 발생합니다(CampaignGoalConfigError.CANNOT_USE_INCOMPATIBLE_CLO_GOALS). 다음 표에는 이 오류를 트리거하는 상호 배타적인 목표 조합이 나와 있습니다.
고객 라이프사이클 목표 유형/모드 호환되지 않는 목표/모드
이탈 고객 확보 ('과거 이용 고객인 경우에만 입찰'/TARGET_SPECIFIC) 신규 고객 확보 ('신규 고객인 경우에만 입찰'/TARGET_SPECIFIC, '신규 고객에 더 높게 입찰'/TARGET_ALL), 잠재고객 발굴
이탈 고객 확보 ('과거 이용 고객에 대해 더 높게 입찰'/TARGET_ALL) 신규 고객 확보 ('신규 고객인 경우에만 입찰' / TARGET_SPECIFIC), 잠재고객 발굴
충성도 유지 (가치 배율) 신규 고객 확보 ('신규 고객에게만 입찰'/TARGET_SPECIFIC), 이탈 고객 확보 ('과거 이용 고객에게만 입찰' / TARGET_SPECIFIC), 잠재고객 발굴, 총이익
포인트 멤버십 유지 (PLA의 혜택) 신규 고객 확보 ('신규 고객인 경우에만 입찰'/TARGET_SPECIFIC), 잠재고객 발굴, 총이익
잠재고객 발굴: 신규 고객 확보 ('신규 고객인 경우에만 입찰'/TARGET_SPECIFIC, '신규 고객에 대한 입찰가를 더 높게 설정'/TARGET_ALL)

라이프사이클 목표 가져오기

Google Ads API의 다른 리소스와 마찬가지로 GoogleAdsService의 search 또는 searchStream 메서드를 사용하여 라이프사이클 목표 및 구성을 가져옵니다.

다음 쿼리는 Google Ads API 계정에서 구성된 모든 Goal의 세부정보를 가져옵니다.

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

마찬가지로 다음 쿼리는 모든 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