ライフサイクル目標

Google Ads 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)ごとに Goal を 1 つだけ設定できます。

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

新規顧客の獲得(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 リソースを使用して、顧客ライフサイクル目標(新規顧客の獲得、顧客維持、ロイヤルティ維持の各目標を含む)のオーディエンスをセグメント化する必要があります。各ユーザーリストを 1 つ以上のカテゴリに関連付けるには、ユーザーリストとカテゴリの組み合わせごとに UserListCustomerType を作成する必要があります。

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

UserListCustomerTypeService は create オペレーションと remove オペレーションのみをサポートしているため、既存の UserListCustomerType を更新する場合は、 削除してから必要な更新を加えて新しい 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(新規顧客の獲得目標の場合)、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