ライフサイクル目標

Google Ads API の Goal リソースと CampaignGoalConfig リソースを使用して、顧客ライフサイクルに関連する目標を設定します。Google Ads 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 に設定し、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 フィールドで設定を構成します。

「ユーザー維持」目標を作成する前に、「ユーザー維持」目標についてに記載されている前提条件を満たす必要があります。これには、P-MAX キャンペーンとカスタマー マッチ ユーザーリストが必要です。

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 を作成して、各ユーザーリストを 1 つ以上のカテゴリに関連付ける必要があります。

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

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

UserListCustomerType は 1 つのユーザーリストにのみ割り当てることができますが、ユーザーリストには、UserListCustomerType インスタンス間に競合がない限り、複数の 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 を作成します。

キャンペーンの「新規顧客の獲得」の設定

キャンペーン単位で設定をオーバーライドしたり、新規顧客の獲得のターゲティングを設定したりするには、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 フィールドを構成します。

  • 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 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