ライフサイクル目標

Google 広告 API の Goal と CampaignGoalConfig リソースを使用して、顧客ライフサイクルに関連する目標を設定します。 Google 広告 API は、Google 広告の広告キャンペーンを通じて顧客ライフサイクル 価値の調整を効率的に管理するための、顧客獲得目標と 顧客維持目標をサポートしています。

Google 広告アカウントで クロスアカウント コンバージョン トラッキングを使用している場合は、Google 広告アカウントで直接設定するのではなく、 Google 広告のコンバージョン アカウントで 顧客レベルのライフサイクル目標を設定する必要があります。ただし、キャンペーン単位の設定はアカウントで設定する必要があります。これは、クロスアカウント コンバージョン トラッキングを使用している場合に他の目標 を管理する方法と同様です。

顧客ライフサイクル目標の種類

顧客ライフサイクル目標は、 Goal リソースを使用してアカウント単位で設定します。目標は特定のライフサイクル目標を表し、goal_type で定義されます。

サポートされているライフサイクル目標の種類は次のとおりです。

NEW_CUSTOMER_ACQUISITION
コンバージョンに価値の調整を割り当てることで、新規顧客を効率的に獲得します。
CUSTOMER_RETENTION
既存ユーザー、価値の高いユーザー、休眠ユーザーのリエンゲージメントを促進します。
LOYALTY_RETENTION
ポイント プログラム メンバーの維持とエンゲージメントを促進します。

顧客ライフサイクル目標を設定する

顧客レベルで、 Goalを作成してライフサイクル目標を設定します。Google 広告アカウントでは、目標タイプ(NEW_CUSTOMER_ACQUISITION、CUSTOMER_RETENTION、LOYALTY_RETENTION)ごとに 1 つの Goal を設定できます。

「新規顧客の獲得」目標の設定

「新規顧客の獲得」(NCA)を設定するには、goal_type を NEW_CUSTOMER_ACQUISITION に設定し、 new_customer_acquisition_goal_settings フィールドの設定を GoalServiceを使用して行います。

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 目標では、 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 リソース を使用する必要があります。各ユーザーリストを 1 つ以上のカテゴリに関連付けるには、ユーザーリストとカテゴリの組み合わせごとに UserListCustomerType を作成します。

UserListCustomerTypeService を 使用して UserListCustomerType インスタンスを作成します。

UserListCustomerTypeService は create と remove オペレーションのみをサポートしているため、既存の UserListCustomerType を更新する場合は、 削除してから必要な更新を加えて新しいものを作成する必要があります。

UserListCustomerType は 1 つのユーザーリストにのみ割り当てることができますが、UserListCustomerType インスタンス間に競合がない限り、1 つのユーザーリストに複数の UserListCustomerType インスタンスを関連付けることができます。 次の customer_type_categoryの組み合わせで UserListCustomerType インスタンスを同じユーザーリストに 割り当てようとすると、 UserListCustomerTypeError.CONFLICTING_CUSTOMER_TYPES エラーが発生します。

最初の customer_type_category 2 番目の 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 の設定をオーバーライドするか、ターゲティングを設定するには、 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.
    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]
    )

キャンペーンの「ユーザー維持」の設定

キャンペーン単位で「ユーザー維持」目標の設定をオーバーライドするか、ターゲティングを設定するには、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_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 広告 API の他のリソースと同様に、search または searchStream メソッドを使用して、GoogleAdsServiceライフサイクル 目標と設定を取得します。

次のクエリは、Google 広告 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