

**终止支持通知：** AWS 将于 2026 年 10 月 30 日终止对亚马逊 Pinpoint 的支持。2026 年 10 月 30 日之后，您将不再能够访问 Amazon Pinpoint 控制台或 Amazon Pinpoint 资源（端点、分段、活动、旅程和分析）。有关更多信息，请参阅 [Amazon Pinpoint 终止支持](https://docs.aws.amazon.com/console/pinpoint/migration-guide)。**注意：**与短信、语音、移动推送、OTP 和电话号码验证相关的 API 不受此变更的影响， AWS 最终用户消息支持这些接口。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 导入客户细分
<a name="segments-importing"></a>

使用 Amazon Pinpoint，您可以定义一个用户客户细分，方法是导入包含有关属于客户细分的用户的信息的文件。如果您在 Amazon Pinpoint 之外定义用户客户细分，但又想通过 Amazon Pinpoint 活动吸引用户，则导入客户细分非常有用。

与在控制台中使用客户细分生成器创建的动态客户细分不同，导入客户细分是一组不变的*端点*或*用户 ID*：

**端点**  
可以向其发送消息的目的地，如电子邮件地址、移动设备标识符或移动电话号码。端点定义可以包括描述您向其发送消息的用户或设备的属性。也可以包括用户 ID。  
可以通过导入端点定义列表来定义客户细分。Amazon Pinpoint 创建客户细分，并用新的信息来更新之前您添加到 Amazon Pinpoint 的任何端点。

**用户 ID**  
代表受众中单个用户的 ID。此 ID 必须分配给一个或多个端点。例如，如果某个人员在多个设备上使用您的应用程序，则您的应用程序可将此人员的用户 ID 分配给每个设备的端点。  
仅当您已将与用户 ID 关联的端点添加到 Amazon Pinpoint 中时，才可以通过导入用户 ID 来定义客户细分。

导入客户细分由端点、用户 ID 或这二者的组合组成。使用 Amazon Pinpoint 向客户细分发送消息时，可能的目的地包括：
+ 导入文件中所列的每个端点。
+ 与导入文件中所列的每个用户 ID 关联的每个端点。

创建新客户细分时，您可以使用一个导入客户细分作为基本客户细分。然后，您可以对该基本客户细分应用筛选条件，以根据您的需求对其进行优化。

## 导入客户细分注意事项
<a name="segments-importing-considerations"></a>

创建导入客户细分时，请考虑以下因素：
+ 当您创建活动时，必须选择一个客户细分。当您选择动态客户细分时，Amazon Pinpoint 提供该客户细分大小的估计值。但是，当您选择导入的客户细分时，Amazon Pinpoint 无法提供估计值。
+ 如果您创建的广告系列在某些事件发生时发送消息，则无法使用导入的区段。 Event-based 广告活动只能使用动态细分。有关创建动态客户细分的更多信息，请参阅[构建客户细分](segments-building.md)。

## 客户细分文件
<a name="segments-importing-examples-files"></a>

您可以在逗号分隔值 (CSV) 或 JSON 文件中定义属于您的客户细分的端点或用户 ID。然后，将此文件导入 Amazon Pinpoint 来创建客户细分。

导入客户细分时，请记住以下几点：
+ Amazon Pinpoint 无法导入压缩的文件。
+ 您导入的文件必须使用 UTF-8 字符编码。
+ 如果要导入新的端点，`Address` 和 `ChannelType` 属性是必需的。
+ 如果要更新现有的端点，则 `Id` 属性对于要更新的每个端点都是必需的。
+ 您的端点定义只能包含特定属性。有关列表，请参阅[支持的 属性](#segments-importing-available-attributes)。此外，属性名称必须为 50 个或更少的字符。属性值必须为 100 个或更少的字符。

### 示例客户细分文件
<a name="segments-importing-examples"></a>

本节中的示例文件基于以下数据：


**示例端点属性值**  

| ChannelType | 地址 | Location.Country | Demographic.Platform | Demographic.Make | User.UserId | 
| --- | --- | --- | --- | --- | --- | 
| SMS | \+16045550182 | CA | Android | LG | example-user-id-1 | 
| APNS | 1a2b3c4d5e6f7g8h9i0j1a2b3c4d5e6f | 美国 | iOS | Apple | example-user-id-2 | 
| EMAIL | john.stiles@example.com | 美国 | iOS | Apple | example-user-id-2 | 
| GCM | 4d5e6f1a2b3c4d5e6f7g8h9i0j1a2b3c | CN | Android | Google | example-user-id-3 | 
| EMAIL | wang.xiulan@example.com | CN | Android | OnePlus | example-user-id-3 | 

此表中的每一行代表一个端点。请注意，用户 ID `example-user-id-2` 和 `example-user-id-3` 将分别分配给两个端点。

**Example 包含端点定义的文件**  
您可以导入在 CSV 文件中定义的端点，如以下示例中所示：  

```
ChannelType,Address,Location.Country,Demographic.Platform,Demographic.Make,User.UserId
SMS,+16045550182,CA,Android,LG,example-user-id-1
APNS,1a2b3c4d5e6f7g8h9i0j1a2b3c4d5e6f,US,iOS,Apple,example-user-id-2
EMAIL,john.stiles@example.com,US,iOS,Apple,example-user-id-2
GCM,4d5e6f1a2b3c4d5e6f7g8h9i0j1a2b3c,CN,Android,Google,example-user-id-3
EMAIL,wang.xiulan@example.com,CN,Android,OnePlus,example-user-id-3
```
第一行是标头，其中包含端点属性。有关可能属性的完整列表，请参阅 [支持的 属性](#segments-importing-available-attributes)。  
后续行通过为标头中的每个属性提供值来定义端点。  
要在值中包含逗号或双引号，请将值括在双引号内，如 `"aaa,bbb"`。  
CSV 文件不能包含换行符或制表符。如果您的文件包含带有换行符或制表符的数据，则文件中的数据可能无法导入，或者导入过程可能会失败。
您可以导入在新行分隔的 JSON 文件中定义的端点。在此格式中，每一行都是一个完整的 JSON 对象，其中包含单独的端点定义，如以下示例中所示：  

```
{"ChannelType":"SMS","Address":"+16045550182","Location":{"Country":"CA"},"Demographic":{"Platform":"Android","Make":"LG"},"User":{"UserId":"example-user-id-1"}}
{"ChannelType":"APNS","Address":"1a2b3c4d5e6f7g8h9i0j1a2b3c4d5e6f","Location":{"Country":"US"},"Demographic":{"Platform":"iOS","Make":"Apple"},"User":{"UserId":"example-user-id-2"}}
{"ChannelType":"EMAIL","Address":"john.stiles@example.com","Location":{"Country":"US"},"Demographic":{"Platform":"iOS","Make":"Apple"},"User":{"UserId":"example-user-id-2"}}
{"ChannelType":"GCM","Address":"4d5e6f1a2b3c4d5e6f7g8h9i0j1a2b3c","Location":{"Country":"CN"},"Demographic":{"Platform":"Android","Make":"Google"},"User":{"UserId":"example-user-id-3"}}
{"ChannelType":"EMAIL","Address":"wang.xiulan@example.com","Location":{"Country":"CN"},"Demographic":{"Platform":"Android","Make":"OnePlus"},"User":{"UserId":"example-user-id-3"}}
```
有关可能属性的完整列表，请参阅 [支持的 属性](#segments-importing-available-attributes)。

## 导入客户细分
<a name="segments-importing-procedure"></a>

将客户细分导入 Amazon Pinpoint 有两种办法：一是直接从计算机上传文件，二是导入存储在 Amazon Simple Storage Service（Amazon S3）存储桶中的文件。

建议您从计算机上传文件，当计算机上已有客户数据时尤其要这样做。但是，您一次只能导入 10 个文件，并且只能上传小于 1 GB 的文件。

如果您需要一次导入 10 个以上的文件，或者需要上传大于 1 GB 的文件，则应从 Amazon S3 导入文件。如果您已经具有将客户数据文件发送到 Amazon S3 以进行存储的流程，则 Amazon S3 导入选项也很有用。

此部分包含使用这两种方法导入客户细分的过程。

### 通过从您的计算机上传文件来导入客户细分
<a name="segments-importing-procedure-direct-import"></a>

您可以通过直接从计算机最多上传 10 个文件来创建客户细分。上传的文件可以采用 CSV 或 JSON 格式。您可以上传采用这两种格式的任意组合的文件。例如，您可以上传一个 JSON 文件和三个 CSV 文件。

**导入客户细分**

1. 打开亚马逊 Pinpoint 控制台，网址为。[https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. 在**所有项目**页面上，选择要将客户细分添加到的项目。

1. 在导航窗格中，选择**客户细分**。

1. 选择**创建客户细分**。

1. 在**创建客户细分**下，选择**导入客户细分**。

1. 在**导入方法**下，选择**从计算机上传文件**。

1. 在**要导入的文件**下，选择**选择文件**。选择要导入的一个或多个文件。
**注意**  
您也可以直接将文件从计算机的文件资源管理器拖放到**将文件拖放到此处**区域。

1. 当您将文件上传到 Amazon Pinpoint 时，必须为每个导入的文件提供一个客户细分名称。在**客户细分名称**下，输入要导入的每个文件的客户细分名称。

   默认情况下，Amazon Pinpoint 提供一个客户细分名称，该名称就是导入的文件的名称，但不带文件扩展名。您可以将这些默认值更改为任何名称。  
![显示客户细分创建页面上的“客户细分名称”部分。用户已上传两个文件：High Value Customers.csv 和 Top Users by Activity.json。](http://docs.aws.amazon.com/zh_cn/pinpoint/latest/userguide/images/segments-import-names.png)
**注意**  
您可以对多个客户细分使用相同名称。如果您这样做，Amazon Pinpoint 会为每个文件创建不同的客户细分，并为每个文件分配唯一 ID。对于导入的每个文件，创建日期也略有不同。您可以使用这些因素来区分同名的客户细分。

1. 完成后，选择**创建客户细分**。

### 从存储在 Amazon S3 中的文件导入客户细分
<a name="segments-importing-procedure-s3-import"></a>

在使用此过程导入客户细分之前，您必须先创建一个 Amazon S3 存储桶并将您的文件上传到该存储桶。您可以将不同客户细分的文件组织在不同的文件夹中。当 Amazon Pinpoint 导入一个客户细分的端点或用户 ID 时，它将包括所有文件夹和子文件夹下属于您指定的 Amazon S3 位置的文件。

有关创建存储桶和上传对象的介绍，请参阅《Amazon Simple Storage Service 用户指南》中的[什么是 Amazon S3？](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)

Amazon Pinpoint 只能为每个客户细分导入一种文件格式（CSV 或 JSON），因此您指定的 Amazon S3 路径应只包含单一类型的文件。

**导入客户细分**

1. 打开亚马逊 Pinpoint 控制台，网址为。[https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)

1. 在**所有项目**页面上，选择要将客户细分添加到的项目。

1. 在导航窗格中，选择**客户细分**。

1. 选择**创建客户细分**。

1. 在**创建客户细分**下，选择**导入客户细分**。

1. 对于**客户细分名称**，输入客户细分的名称。

1. 对于 **Amazon S3 URL**，输入包含您的客户细分文件的 Amazon S3 存储桶的位置。此存储桶的地址必须采用以下格式：

   ```
   s3://{{bucket-name}}/{{folder-name}}
   ```

   Amazon Pinpoint 从您指定的路径以及该路径中的任意子文件夹导入文件。

1. 对于 **IAM 角色**，请完成下列步骤之一：
   + 如果您想让 Amazon Pinpoint 创建一个角色，以允许它从 Amazon S3 存储桶读取，则选择**自动创建角色**。然后，对于 **IAM 角色**，为您创建的角色输入一个名称。
   + 如果您已创建允许 Amazon Pinpoint 从 Amazon S3 存储桶读取的 IAM 角色，则选择**选择现有角色**。然后，对于 **IAM 角色**，请选择一个包含相应权限的角色。

   如果您要自己创建 IAM 角色，请参阅《Amazon Pinpoint 开发者指南》中的[用于导入端点或客户细分的 IAM 角色](https://docs.aws.amazon.com/pinpoint/latest/developerguide/permissions-import-segment.html)**。创建角色之后，在 Amazon Pinpoint 控制台中指定它。

1. 在 “要**导入的文件类型” 下，根据您**上传到 Amaz **on S3 的文件格式，选择JavaScript 对象表示法 (JSON)** **或Comma-Separated 值 (CSV)**。

1. 选择**创建客户细分**。

## 支持的 属性
<a name="segments-importing-available-attributes"></a>

本节中的表列出并描述了您可以在导入到 Amazon Pinpoint 的端点定义中指定的属性。如果您通过使用 CSV 文件导入客户细分，则文件中的标头应该与**属性**列中显示的名称匹配。

对于 JSON 文件，属性名称中的句点指示句点后的名称是嵌套在父对象中的对象，而父对象的名称就是句点之前的值。例如，包含 `Demographic.Make` 和 `Demographic.Model` 属性的 JSON 文件具有以下结构：

```
{
...
"Demographic": {
  ...
  "Make":"Apple",
  "Model":"iPhone"
  ...
  }
...
}
```

完整 JSON 结构非常类似于《Amazon Pinpoint API 参考》中的[示例端点请求](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-endpoints-endpoint-id.html#apps-application-id-endpoints-endpoint-id-schemas)**。但是，但您导入客户细分时，并非端点请求架构中的所有属性都受支持，包括 `EndpointStatus` 和 `EffectiveDate`。

要使一个自定义字段包含 CSV 文件中的多个值，您必须复制标头并为每个标头保留一个值。例如：

```
...,User.UserId, User.UserAttributes.new_multi_field,User.UserAttributes.new_multi_field
...,example-user-id-2,test10,test20
```

您可以将显示为 `{{custom_attribute}}` 的属性名称替换为任意值。例如，如果要将用户的名和姓存储在名为 `FirstName` 和 `LastName` 的属性中，则可以分别创建名为 `User.UserAttributes.FirstName` 和 `User.UserAttributes.LastName` 的自定义属性。属性名称最多可包含 50 个字符。属性值最多可包含 100 个字符。属性名称区分大小写。

在 JSON 中，自定义属性必须采用 `"Attributes":{"Ride":["Bus"]}` 格式。


<table>
<thead>
  <tr><th>属性</th><th>说明</th></tr>
</thead>
<tbody>
  <tr><td><code>Address</code></td><td>您发送到端点的消息或推送通知的唯一目标地址，例如电子邮件地址、电话号码或设备令牌。 如果终端地址是电话号码，则必须以 E.164 格式指定。有关 E.164 格式的更多信息，请参见<a href="https://en.wikipedia.org/wiki/E.164">E.164</a>维基百科。 </td></tr>
  <tr><td><code>Attributes.custom_attribute</code></td><td>描述端点的自定义属性。创建客户细分时，您可以使用此类属性作为选择标准。您可以使用任意值替换 <code>custom_attribute</code>。</td></tr>
  <tr><td><code>ChannelType</code></td><td>向端点发送消息或推送通知时使用的渠道。例如：<ul><li> <code>APNS</code> – 适用于可以接收您通过 Apple Push Notification service (APNs) 渠道发送到运行在 iOS 设备上的应用程序的推送通知的端点。 </li><li> <code>EMAIL</code> – 适用于可接收电子邮件消息的端点。 </li><li> <code>GCM</code> – 适用于可以接收您通过 Firebase Cloud Messaging (FCM) 渠道发送到运行在 Android 设备上的应用程序的推送通知的端点。 </li><li> <code>SMS</code> – 适用于可以接收短信文本消息的端点。 </li></ul></td></tr>
  <tr><td><code>Demographic.AppVersion</code></td><td>与端点关联的应用程序的版本号。</td></tr>
  <tr><td><code>Demographic.Locale</code></td><td>端点的区域设置，格式如下：<a href="https://en.wikipedia.org/wiki/ISO_639-1">ISO 639-1 alpha-2</a> 代码，后跟下划线 (_)，然后是 <a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-1 alpha-2</a> 值。例如，<code>en_US</code> 是美国英语区域设置。</td></tr>
  <tr><td><code>Demographic.Make</code></td><td>端点设备的制造商，例如 <code>apple</code> 或 <code>samsung</code>。</td></tr>
  <tr><td><code>Demographic.Model</code></td><td>端点设备的产品名称或型号，例如 <code>iPhone</code> 或 SM-G900F。</td></tr>
  <tr><td><code>Demographic.ModelVersion</code></td><td>端点设备的型号版本。</td></tr>
  <tr><td><code>Demographic.Platform</code></td><td>端点设备上的操作系统，例如 <code>ios</code> 或 <code>android</code>。</td></tr>
  <tr><td><code>Demographic.PlatformVersion</code></td><td>端点设备上的操作系统版本。</td></tr>
  <tr><td><code>Demographic.Timezone</code></td><td>端点的时区，采用 <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones">tz 数据库</a>值。例如，<code>America/Los_Angeles</code> 表示太平洋时间（北美）。以下时区不再受支持，并且会自动重新映射到支持的时区。 <p><b></b></p>
<table>
<thead>
  <tr><th>时区</th><th>重新映射时区</th></tr>
</thead>
<tbody>
  <tr><td><code>Canada/East-Saskatchewan </code></td><td><code>America/Managua</code></td></tr>
  <tr><td><code>US/Pacific-New</code> </td><td><code>America/Los_Angeles</code></td></tr>
</tbody>
</table>
</td></tr>
  <tr><td><code>EffectiveDate</code></td><td>上次更新端点的日期和时间，采用 <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601 格式</a>。例如，<code>2019-08-23T10:54:35.220Z</code> 表示 UTC 2019 年 8 月 23 日 10:54 AM。</td></tr>
  <tr><td><code>Id</code></td><td>端点的唯一标识符。</td></tr>
  <tr><td><code>Location.City</code></td><td>端点所在的城市。</td></tr>
  <tr><td><code>Location.Country</code></td><td>两个字符的代码，采用 <a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-1 alpha-2 格式</a>，表示端点所在的国家/地区或区域。例如，<code>US</code> 表示美国。</td></tr>
  <tr><td><code>Location.Latitude</code></td><td>端点位置的纬度坐标，舍入到一位小数。</td></tr>
  <tr><td><code>Location.Longitude</code></td><td>端点位置的经度坐标，舍入到一位小数。</td></tr>
  <tr><td><code>Location.PostalCode</code></td><td>端点所在区域的邮政编码。</td></tr>
  <tr><td><code>Location.Region</code></td><td>端点所在区域的名称，例如，省/市/自治区。</td></tr>
  <tr><td><code>Metrics.custom_attribute</code></td><td>您的应用程序向 Amazon Pinpoint 报告的有关端点的自定义数值指标（例如，会话次数或购物车中剩余的商品数量），用于客户细分目的。您可以使用任意值替换 <code>custom_attribute</code>。这些自定义值只能为数字。由于它们是数字，所以 Amazon Pinpoint 可以对其执行算术运算，例如求平均值或求和。</td></tr>
  <tr><td><code>OptOut</code></td><td>指示用户是否选择不接收您的消息和推送通知。可接受的值为：<code>ALL</code>，用户选择退出，不希望接收任何消息或推送通知；或 <code>NONE</code>，用户未选择退出，希望接收所有消息和推送通知。</td></tr>
  <tr><td><code>RequestId</code></td><td>最近更新端点请求的唯一标识符。</td></tr>
  <tr><td><code>User.UserAttributes.custom_attribute</code></td><td>描述用户的自定义属性。您可以使用任意值替换 <code>custom_attribute</code>，例如 <code>FirstName</code> 或 <code>Age</code>。</td></tr>
  <tr><td><code>User.UserId</code></td><td>用户的唯一标识符。</td></tr>
</tbody>
</table>


您可以为每个项目中的端点和用户创建多达 250 个自定义属性。有关更多信息，请参阅《Amazon Pinpoint 开发者指南》**中的 [Amazon Pinpoint 限额](https://docs.aws.amazon.com/pinpoint/latest/developerguide/quotas.html)。