> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 使用玩家自定义属性进行高级分段

> 根据通过 API、Game Manager 或 PlayStream 规则设置的自定义属性构建动态 PlayFab 玩家分段，以驱动操作和已计划的实时运营任务。

# 使用自定义属性进行高级分段（公共预览版）

> [!NOTE]
>
> 使用自定义属性进行高级分段功能处于私有预览阶段。随着我们继续收集反馈并优化客户使用体验，预计它将继续变化。

使用[自定义属性（公共预览版）](https://docs.xbox.com/zh-CN/services/playfab/live-service-management/game-configuration/segmentation/player-custom-properties.md)进行高级分段，可以使用你自己的商业、参与度和自定义数据实现动态玩家分段。你可以使用自定义属性存储和管理玩家的自定义信息，然后使用它来根据这些特定属性创建分段。这些属性可以通过 API、Game Manager 或 PlayStream 规则在玩家上设置，并可用于定义根据共享特征对玩家进行分组的分段。一旦创建了这些分段，就可以用它们对玩家生成操作。此外，这些分段还可用于定义计划任务或手动任务。

## 使用玩家自定义属性创建分段

你可以通过 API 或 Game manager 使用玩家自定义属性创建分段。

### 通过 API

* 使用 [Create Segment API](https://learn.microsoft.com/en-us/rest/api/playfab/admin/segments/create-segment) 创建分段。
* 使用 [Update Segment](https://learn.microsoft.com/en-us/rest/api/playfab/admin/segments/update-segment) API 添加自定义属性谓词。

### 通过 Game Manager

* 登录到 [Game Manager](https://developer.playfab.com)。
* 前往 **Players** 页面。
* 前往 **Segments** 选项卡。
* [创建或更新分段](https://docs.xbox.com/zh-CN/services/playfab/live-service-management/game-configuration/segmentation/segmentation-quickstart.md)。
* 通过在 **Player** 下选择 **Add filter** 添加自定义属性谓词。
* 保存分段。

## 从带有自定义属性的分段导出玩家

1. [创建一个](https://docs.xbox.com/zh-CN/services/playfab/live-service-management/game-configuration/segmentation/segmentation-quickstart.md)引用自定义属性谓词的分段。
2. 使用 [ExportPlayersInSegment API](https://docs.xbox.com/zh-CN/services/playfab/live-service-management/game-configuration/segmentation/segmentation-export-players-in-a-segment.md) 导出玩家配置文件

## 计划任务

1. 使用自定义属性谓词在分段上[运行计划任务](https://docs.xbox.com/zh-CN/services/playfab/data-analytics/acting-data/scheduled-tasks.md)。

## 快速入门场景

### 设置 Economy V2 目录和库存

1. 创建 **Gold Bar** 货币作为道具。
2. 创建 **Chocolate Bar** 货币作为道具。
   * **必需参数：** Friendly ID、Title 和 Start Date（3 月 1 日）

     ![Economy V2 Catalog Setup](https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/advanced_segmentation_docs_2_economy_currencies.png?fit=max\&auto=format\&n=IwSYTY5BEqd_x-HK\&q=85\&s=4d7717a09bb5a874d243bccd92600354)
3. 创建目录道具 **Chocolate Bar**：
   3a. 导航到 **Settings -> Economy (V2) -> Catalog (V2)**。
   3b. 在 **Catalog Settings** 下，添加新的 **Content Type** - **Chocolate Bar** 并选择 **Save**。

   ![Catalog Settings](https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/advanced_segmentation_docs_3_economy_settings.png?fit=max\&auto=format\&n=IwSYTY5BEqd_x-HK\&q=85\&s=a8cc51e057c5f9605d157092b51f92b8)

   3c. 前往 **Engage -> Economy -> Catalog (V2) -> Items**，然后选择 **New item** 添加。

   ![New Item](https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/advanced_segmentation_docs_4_economy_new_item.png?fit=max\&auto=format\&n=IwSYTY5BEqd_x-HK\&q=85\&s=db3b3f74eec0156f06d22c91c77ed450)

   3d. 在 **ContentType** 下选择 **Chocolate Bar**，设置 **Start date**、**Time** 和 **Title**，然后选择 **Save and Publish**。

   ![Save and Publish](https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/advanced_segmentation_docs_5_create_chocolate_bar.png?fit=max\&auto=format\&n=IwSYTY5BEqd_x-HK\&q=85\&s=3fc3d43286a7a0a5c27ae713dc6fb90b)

***

### 1. 为消费 25-50 Gold Bars 的用户创建分段（虚拟货币消费）

1. 在 **Automation -> Rules** 下导航到 **PlayStream Rules** 页面。

2. 为 `items_subtracted` 事件创建一个规则，配置如下：

   **条件：**

   * `Payload.ItemId == <id of Gold Bar currency>`
   * 可选：`Payload.Amount` 介于 25 到 50 之间，以防止覆盖其他数量

   **操作：**

   * 更新自定义属性
     * `AmountSpent = Payload.Amount`
     * `ItemName = Payload.ItemId`

   ![Virtual Currency Rule Configuration](https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/advanced_segmentation_docs_6_gold_sub_rule.png?fit=max\&auto=format\&n=IwSYTY5BEqd_x-HK\&q=85\&s=d60daa6e9d15493bda013cfddc1b277b)

3. 在 **Players -> Segments** 下导航到 **Segments** 页面。

4. 使用以下配置创建一个新分段：

   * 自定义属性（字符串）`ItemName` 为 `<Gold Bar id>`
   * 自定义属性（数值）`AmountSpent` `>= 25`
   * 自定义属性（数值）`AmountSpent` `<= 50`

   ![Virtual Currency Segment Configuration](https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/advanced_segmentation_docs_7_gold_segment.png?fit=max\&auto=format\&n=IwSYTY5BEqd_x-HK\&q=85\&s=b231ad97b5ae4bdac45fca1fd4d27a76)

***

### 2. 为在 2025 年 4 月 1 日之后被授予 Chocolate Bars 并全部使用完（10 个）的用户创建分段（库存授予）

1. 在 **Automation -> Rules** 下导航到 **PlayStream Rules** 页面。

2. 为 `playfab.inventory.items_granted` 事件创建一个规则，配置如下：

   **条件：**

   * `Payload.ItemId == <Chocolate Bars id>`

   **操作：**

   * 更新玩家自定义属性
     * `AmountSpent = Payload.Amount`
     * `ItemUpdateDate = Timestamp`

   ![Inventory Granted Rule Configuration](https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/advanced_segmentation_docs_8_chocolate_sub_rule.png?fit=max\&auto=format\&n=IwSYTY5BEqd_x-HK\&q=85\&s=762437c85d96129ed24e7b85dfbcbf32)

3. 在 **Players -> Segments** 下导航到 **Segments** 页面。

4. 使用以下配置创建一个分段：

   * 自定义属性（字符串）`ItemName = <Chocolate Bars id>`
   * 自定义属性（日期时间）`ItemUpdateDate > 4/1/2025`
   * 自定义属性（数值）`ItemAmountSpent >= 10`

   ![Inventory Granted Segment Configuration](https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/advanced_segmentation_docs_9_chocolate_segment.png?fit=max\&auto=format\&n=IwSYTY5BEqd_x-HK\&q=85\&s=c41112d6e5b2c6661ae1a28712c53ef5)

5. **工作方式：** 规则将使用每个单独事件中的值**更新**玩家自定义属性——**它不会随时间累积或求和值**。例如，如果玩家在 10 个不同的时间点各消费 1 块巧克力棒，`ItemAmountSpent` 属性每次都会设置为 `1`，而不是 `10`。因此，玩家将**不会**被包含在过滤 `ItemAmountSpent >= 10` 的分段中。如果你需要跟踪累积或聚合的值（例如跨多个事件的总消费道具数），我们建议使用 **Azure Function** 或 **CloudScript** 实现自定义逻辑来计算和更新总数。

6. **注意：** 场景 1 中的 Gold Bars 和场景 2 中的 Chocolate Bars 都写入同一属性 `ItemName`。如果你想跟踪多个值，则需要多个属性名称以防止玩家在 2 个分段之间反复切换。

***

### 3. 为在一次购买中购买 1 块 Chocolate Bar 的用户创建分段（目录购买）

1. 在 **Automation -> Rules** 下导航到 **PlayStream Rules** 页面。

2. 为 `playfab.inventory.items_purchased` 事件创建一个规则，配置如下：

   **条件：**

   * `Payload.ItemType == ChocolateBar`
   * `Payload.Amount >= 1`
   * `Timestamp >= 5 minutes ago`

   **操作：**

   * 更新自定义属性
     * `ChocolateBarPurchased = Payload.Amount`

   ![Catalog Purchase Rule Configuration](https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/advanced_segmentation_docs_10_chocolate_purchase_rule.png?fit=max\&auto=format\&n=IwSYTY5BEqd_x-HK\&q=85\&s=e0dabaa54932a0f2e7e0ed7898cbdb2b)

3. 在 **Players -> Segments** 下导航到 **Segments** 页面。

4. 使用以下配置创建一个分段：

   * 自定义属性（数值）`ChocolateBarPurchased >= 1`

   ![Catalog Purchase Segment Configuration](https://mintcdn.com/microsoft-4404708b/IwSYTY5BEqd_x-HK/images/playfab/data-analytics/acting-data/advanced_segmentation_docs_11_chocolate_purchase_segment.png?fit=max\&auto=format\&n=IwSYTY5BEqd_x-HK\&q=85\&s=0690da9ce0f5575e8e1d19a201a2f557)

5. **工作方式：** 每当玩家购买 **Chocolate Bar** 时，规则条件被触发，执行添加自定义属性的操作。然后，玩家进入分段并可以接收配置的奖励或通知。


## Related topics

- [玩家自定义属性快速入门](https://docs.xbox.com/zh-CN/services/playfab/live-service-management/game-configuration/segmentation/player-custom-properties-qs.md)
- [玩家自定义属性](https://docs.xbox.com/zh-CN/services/playfab/live-service-management/game-configuration/segmentation/player-custom-properties.md)
- [列出玩家自定义属性](https://docs.xbox.com/zh-CN/services/playfab/api-references/rest/admin/player-data-management/list-player-custom-properties.md)
- [获取玩家自定义属性](https://docs.xbox.com/zh-CN/services/playfab/api-references/rest/client/player-data-management/get-player-custom-property.md)
- [删除玩家自定义属性](https://docs.xbox.com/zh-CN/services/playfab/api-references/rest/client/player-data-management/delete-player-custom-properties.md)
