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 필드에서 설정을 구성합니다.
이 설정은 CustomerLifecycleOptimizationValueSettings를 사용하여 확보한 고객의 전환 가치 조정을 지정합니다.
value_adjustment(oneof):additional_value(double): 신규 고객의 첫 구매 전환에 추가할 증가한 전환 가치입니다.value_multiplier(double): 신규 고객의 첫 구매 전환 가치에 적용할 배수입니다 (아직 지원되지 않음).
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.
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]
)
이탈 고객 확보 목표 설정
이탈 고객 확보를 설정하려면 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
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]
)
이렇게 하면 지정된 고객 계정에 계정 수준의 새로운 이탈 고객 확보 목표가 생성되며, 이 목표는 모든 캠페인에 적용됩니다. 기본적으로 이 목표는 고객 일치 타겟팅 사용자 목록의 모든 사용자를 타겟팅합니다.
포인트 멤버십 회원 유지 목표 설정
포인트 멤버십 회원의 포인트 멤버십 회원 유지 목표를 설정하려면 goal_type을 LOYALTY_RETENTION으로 설정하고 loyalty_retention_goal_settings 필드 (LoyaltyRetentionGoal)에서 설정을 구성합니다.
포인트 멤버십 회원 유지 목표의 경우 value_multiplier 설정만 value_settings에서 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]
)
잠재고객 세분화
UserListCustomerType 리소스를 사용하여 신규 고객 확보, 이탈 고객 확보, 충성도 유지 목표를 비롯한 고객 라이프사이클 목표의 잠재고객을 세분화해야 합니다. 사용자 목록과 카테고리의 각 조합에 대해 UserListCustomerType을 만들어 각 사용자 목록을 하나 이상의 카테고리와 연결해야 합니다.
UserListCustomerTypeService를 사용하여 UserListCustomerType 인스턴스를 만듭니다.
UserListCustomerTypeService는 create 및 remove 작업만 지원하므로 기존 UserListCustomerType을 업데이트하려면 삭제한 후 필요한 업데이트를 적용하여 새 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으로 CampaignGoalConfig을(를) CampaignGoalConfigService의 mutate_campaign_goal_configs 메서드를 사용하여 만듭니다.
캠페인 신규 고객 확보 설정
캠페인 수준에서 NCA의 설정을 재정의하거나 타겟팅을 구성하려면 campaign_new_customer_acquisition_settings 유형의 CampaignNewCustomerAcquisitionGoalSettings 필드를 구성합니다.
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.
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]
)
캠페인 이탈 고객 확보 설정
캠페인 수준에서 이탈 고객 확보 목표의 설정을 재정의하거나 타겟팅을 구성하려면 campaign_retention_settings 유형의 CampaignRetentionGoalSettings 필드를 구성합니다.
value_settings_override(유형:CustomerLifecycleOptimizationValueSettings): 계정 수준 설정을 재정의하는 맞춤 가치 조정입니다.target_option(유형:CustomerLifecycleOptimizationMode): 최적화 모드를 제어합니다. 기본값은TARGET_ALL입니다.TARGET_SPECIFIC으로 설정하려면 계정이 적절한 허용 목록에 있어야 합니다.
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]
)
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 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]
)
검증 및 오류
라이프사이클 목표를 구성할 때 다음과 같은 제약 조건과 오류가 발생할 수 있습니다.
목표 검증 오류
- 중복 목표 구성
- 이미 라이프사이클 목표가 있는 경우 중복 목표를 만들면
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).
캠페인 목표 구성 검증 오류
- 특정 가치 재정의 충돌 타겟팅
- 신규 고객 확보 목표의 경우
target_option이TARGET_SPECIFIC(신규 고객만 타겟팅)으로 설정된 경우 캠페인 수준 가치 재정의를 구성해서는 안 됩니다 (CampaignGoalConfigError.CAMPAIGN_OVERRIDE_VALUES_SET_FOR_NEW_CUSTOMER_ACQUISITION_TARGET_SPECIFIC_OPTION). 신규 고객만 타겟팅할 때는 입찰 조정이 적용되지 않습니다. - 평생 가치가 높은 캠페인 유형 지원
- 평생 가치가 높은 재정의는 지원되는 캠페인 유형에만 설정해야 합니다 (
CampaignGoalConfigError.CAMPAIGN_OVERRIDE_HIGH_LIFETIME_VALUE_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의 다른 리소스와 마찬가지로 search 또는 searchStream 메서드를 사용하여 GoogleAdsService 라이프사이클 목표 및 구성을 가져옵니다.
다음 쿼리는 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