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

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

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

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

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

使用[自定义属性（公共预览版）](/services/playfab/live-service-management/game-configuration/segmentation/player-custom-properties)进行高级分段，可以使用你自己的商业、参与度和自定义数据实现动态玩家分段。你可以使用自定义属性存储和管理玩家的自定义信息，然后使用它来根据这些特定属性创建分段。这些属性可以通过 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** 选项卡。
* [创建或更新分段](/services/playfab/live-service-management/game-configuration/segmentation/segmentation-quickstart)。
* 通过在 **Player** 下选择 **Add filter** 添加自定义属性谓词。
* 保存分段。

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

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

## 计划任务

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

## 快速入门场景

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

1. 创建 **Gold Bar** 货币作为道具。
2. 创建 **Chocolate Bar** 货币作为道具。
   * **必需参数：** Friendly ID、Title 和 Start Date（3 月 1 日）
     <img src="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" alt="Economy V2 Catalog Setup" width="1715" height="578" data-path="images/playfab/data-analytics/acting-data/advanced_segmentation_docs_2_economy_currencies.png" />
3. 创建目录道具 **Chocolate Bar**：
   3a. 导航到 **Settings -> Economy (V2) -> Catalog (V2)**。
   3b. 在 **Catalog Settings** 下，添加新的 **Content Type** - **Chocolate Bar** 并选择 **Save**。

   <img src="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" alt="Catalog Settings" width="1184" height="900" data-path="images/playfab/data-analytics/acting-data/advanced_segmentation_docs_3_economy_settings.png" />

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

   <img src="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" alt="New Item" width="1717" height="570" data-path="images/playfab/data-analytics/acting-data/advanced_segmentation_docs_4_economy_new_item.png" />

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

   <img src="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" alt="Save and Publish" width="1495" height="757" data-path="images/playfab/data-analytics/acting-data/advanced_segmentation_docs_5_create_chocolate_bar.png" />

***

### 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`

   <img src="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" alt="Virtual Currency Rule Configuration" width="1361" height="784" data-path="images/playfab/data-analytics/acting-data/advanced_segmentation_docs_6_gold_sub_rule.png" />

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

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

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

   <img src="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" alt="Virtual Currency Segment Configuration" width="842" height="845" data-path="images/playfab/data-analytics/acting-data/advanced_segmentation_docs_7_gold_segment.png" />

***

### 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`

   <img src="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" alt="Inventory Granted Rule Configuration" width="1341" height="833" data-path="images/playfab/data-analytics/acting-data/advanced_segmentation_docs_8_chocolate_sub_rule.png" />

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

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

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

   <img src="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" alt="Inventory Granted Segment Configuration" width="899" height="1250" data-path="images/playfab/data-analytics/acting-data/advanced_segmentation_docs_9_chocolate_segment.png" />

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`

   <img src="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" alt="Catalog Purchase Rule Configuration" width="1686" height="1080" data-path="images/playfab/data-analytics/acting-data/advanced_segmentation_docs_10_chocolate_purchase_rule.png" />

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

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

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

   <img src="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" alt="Catalog Purchase Segment Configuration" width="626" height="1255" data-path="images/playfab/data-analytics/acting-data/advanced_segmentation_docs_11_chocolate_purchase_segment.png" />

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


## Related topics

- [玩家自定义属性快速入门](/zh-CN/services/playfab/live-service-management/game-configuration/segmentation/player-custom-properties-qs.md)
- [玩家自定义属性](/zh-CN/services/playfab/live-service-management/game-configuration/segmentation/player-custom-properties.md)
- [PlayFab 数据与分析文档](/zh-CN/services/playfab/data-analytics/index.md)
- [多人游戏会话高级主题](/zh-CN/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-details.md)
- [player_custom_properties_changed](/zh-CN/services/playfab/api-references/events/PlayerIdentity/player-custom-properties-changed.md)
