Google Ads API の CustomerLifecycleGoal リソースと CampaignLifecycleGoal リソースを使用して、顧客ライフサイクルに関連する目標を構成します。Google Ads API は、Google 広告の検索キャンペーンと P-MAX キャンペーンで新規顧客を効率的に獲得するための新規顧客の獲得目標をサポートしています。
Google 広告アカウントでクロスアカウント コンバージョン トラッキングを使用している場合は、Google 広告アカウントで直接設定するのではなく、Google 広告コンバージョン アカウントで顧客ライフサイクル目標を設定する必要があります。ただし、アカウントでキャンペーンのライフサイクル目標を設定する必要があります。これは、クロスアカウント コンバージョン トラッキングを使用している場合に他の目標を管理する方法と似ています。
顧客ライフサイクル目標を設定する
顧客レベルで、CustomerLifecycleGoal を作成または更新してライフサイクル目標を構成します。Google 広告アカウントごとに設定できる CustomerLifecycleGoal は 1 つのみです。customer_acquisition_goal_value_settings.value フィールドは、新規顧客の最初の購入コンバージョンに加算される値の調整額を定義します。customer_acquisition_goal_value_settings.high_lifetime_value は、価値の高い新規顧客のコンバージョン値の増分を定義します。ライフタイム値が高い場合は、値が設定されていれば、その値よりも大きくする必要があります。
オーディエンスをセグメント化する
顧客のライフサイクル目標でオーディエンスをセグメント化するには、UserListCustomerType リソースを使用する必要があります。ユーザーリストとカテゴリの組み合わせごとに UserListCustomerType を作成して、各ユーザーリストを 1 つ以上のカテゴリに関連付ける必要があります。
UserListCustomerTypeService を使用して UserListCustomerType インスタンスを作成します。CustomerLifecycleGoal.lifecycle_goal_customer_definition_settings.existing_user_lists フィールドに以前に値を入力したことがある場合は、アカウントにすでに 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 | 
|---|---|
| 購入者 | CONVERTED_LEADS | 
| 購入者 | QUALIFIED_LEADS | 
| 購入者 | CART_ABANDONERS | 
| CONVERTED_LEADS | QUALIFIED_LEADS | 
| DISENGAGED_CUSTOMERS | CONVERTED_LEADS | 
| DISENGAGED_CUSTOMERS | QUALIFIED_LEADS | 
| DISENGAGED_CUSTOMERS | CART_ABANDONERS | 
キャンペーンのライフサイクル目標を設定する
キャンペーン単位で、CampaignLifecycleGoal を作成または更新して、ライフサイクル目標を構成します。キャンペーンごとに CampaignLifecycleGoal は 1 つまでです。
キャンペーン単位の目標の customer_acquisition_goal_settings フィールドでは、キャンペーンの最適化モードを設定したり、親クライアントの目標から値の設定をオーバーライドしたりできます。
optimization_mode は、次のいずれかの値です。
- TARGET_ALL_EQUALLY
- キャンペーンでは、新規顧客と既存顧客が同等にターゲット設定されます。これがデフォルトの最適化モードです。
- BID_HIGHER_FOR_NEW_CUSTOMERS
- キャンペーンは新規顧客と既存の顧客の両方をターゲットにしますが、新規顧客と予測され、existing_user_listsのいずれにも含まれていない顧客に対しては入札単価が高くなります。
- TARGET_NEW_CUSTOMERS
- このキャンペーンは新規顧客のみを対象としています。
value_settings は、顧客レベルの目標の customer_acquisition_goal_value_settings と同じです。これらのキャンペーン単位の設定を使用して、特定のキャンペーンの値をオーバーライドします。
「ユーザー維持」目標
「ユーザー維持」目標は、ビジネスにおける顧客ロイヤルティと高いライフタイム バリュー(LTV)を促進することを目的としています。P-MAX キャンペーン内で複数のモードが提供され、既存顧客の特定のセグメントをターゲットに設定できます。
保持目標を作成する前に、保持目標についてで説明されている前提条件を満たす必要があります。これには、P-MAX キャンペーンとカスタマー マッチのユーザー リストが含まれます。
保持目標を作成するには、まず GoalService を初期化し、mutate_goals メソッドを使用してリクエストを発行して新しい目標を作成する必要があります。
def create_goal(client: GoogleAdsClient, customer_id: str) -> None:
    """Sends an API request to add a new 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.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]
    )
これにより、指定したクライアント アカウントに対してアカウント単位で新しいユーザー維持目標が作成され、そのアカウントのすべてのキャンペーンに適用されます。デフォルトでは、この目標はカスタマー マッチのユーザーリストに含まれるすべてのユーザーをターゲットにします。
CampaignGoalConfig を使用して、キャンペーン単位の設定でこの目標をオーバーライドできます。アカウント単位の目標を取得したら、その resource_name を使用して、CampaignGoalConfigService の mutate_campaign_goal_configs メソッドを使用して CampaignGoalConfig を作成します。
def create_campaign_goal_config(
  client: GoogleAdsClient,
  customer_id: str,
  goal_resource_name: str,
  campaign_resource_name: str
) -> None:
    """Sends an API request to add a new CampaignGoalConfig.
    Args:
        client: an initialized GoogleAdsClient instance.
        customer_id: a client customer ID.
        goal_resource_name: the resource name of an existing 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
    # Note that the target_option will be set to TARGET_ALL by default. In order
    # to set it to TARGET_SPECIFIC your account must be allowlisted.
    #
    # 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 に設定するオプションは、許可リストに登録されているユーザーのみが利用できます。
ライフサイクル目標を取得する
Google Ads API の他のリソースと同様に、GoogleAdsService の search メソッドまたは searchStream メソッドを使用してライフサイクル目標を取得します。
次のクエリは、Google 広告アカウント内のすべての CustomerLifecycleGoal の詳細を取得します。
SELECT
  customer_lifecycle_goal.owner_customer,
  customer_lifecycle_goal.customer_acquisition_goal_value_settings.value,
  customer_lifecycle_goal.customer_acquisition_goal_value_settings.high_lifetime_value
FROM customer_lifecycle_goal
同様に、次のクエリはすべての CampaignLifecycleGoal の詳細を取得します。
SELECT
  campaign_lifecycle_goal.campaign,
  campaign_lifecycle_goal.customer_acquisition_goal_settings.optimization_mode,
  campaign_lifecycle_goal.customer_acquisition_goal_settings.value_settings.value,
  campaign_lifecycle_goal.customer_acquisition_goal_settings.value_settings.high_lifetime_value
FROM campaign_lifecycle_goal