

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

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

# 向消息模板添加个性化内容
<a name="message-templates-personalizing"></a>

要使用模板在消息中提供动态的个性化内容，请将*消息变量* 添加到消息模板。*消息变量* 是一个占位符，引用您或 Amazon Pinpoint 创建的用于存储用户相关信息的特定属性。每个属性通常对应于某位用户的一个特征，例如用户的名字或居住的城市。通过将消息变量添加到模板中，您可以使用这些属性将自定义内容提供给使用模板的消息的每位收件人。

如果模板中包含消息变量，则 Amazon Pinpoint 将每个变量替换为每个收件人当前对应的属性值。在每次发送使用模板的消息时，都会执行此操作。这意味着您可以向每位收件人发送个性化内容，而无需创建多个自定义版本的消息或消息模板。您还可确保消息中使用了您拥有的收件人的最新信息。

例如，如果您的项目是适用于跑步者的健身应用程序，其中包含每个用户的名字、偏好的活动和个人成绩记录属性，则可以在模板中使用以下文本和消息变量：

`Hi {{User.UserAttributes.FirstName}}, congratulations on your new {{User.UserAttributes.Activity}} record of {{User.UserAttributes.PersonalRecord}}!`

当您发送使用模板的消息时，Amazon Pinpoint 将变量替换为每位收件人的每个属性的当前值。以下示例演示此操作。

**示例 1**  
`Hi Sofia, congratulations on your new half marathon record of 1:42:17!`

**示例 2**  
`Hi Alejandro, congratulations on your new 5K record of 20:52!`

如果收件人没有某个属性值，Amazon Pinpoint 可以使用您为变量指定的默认值替换变量。例如，如果健身应用程序的用户尚未选择其偏好的活动，则您可以使用 `running` 作为 `{{User.UserAttributes.Activity}}` 变量的默认值。在这种情况下，Amazon Pinpoint 将替换该变量，如以下示例所示：

**示例 1**  
`Hi Jane, congratulations on your new running record of 1:42:17!`

**示例 2**  
`Hi John, congratulations on your new running record of 20:52!`

如果您未指定默认值，且收件人没有对应的值，则 Amazon Pinpoint 在向该收件人发送消息时将忽略该变量的所有文本。例如：

`Hi Mary, congratulations on your new record of 20:52!`

作为最佳实践，建议您为模板中包含的每个变量指定默认值。

## 添加消息变量
<a name="message-templates-add-variables"></a>

您可以在创建的新模板或现有模板中添加消息属性。如果您将变量添加到现有模板中，Amazon Pinpoint 不一定会将更改应用于使用该模板并且尚未发送的消息，例如，计划稍后发送的活动消息。这取决于您将变量添加到的模板版本以及之前如何配置使用该模板的消息。有关更多信息，请参阅 [管理消息模板的版本](message-templates-versioning.md)。

**注意**  
应用程序内消息模板不支持使用消息变量。

**将消息变量添加到消息模板**

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

1. 在导航窗格中，选择**消息模板**。

1. 在**消息模板**页面上，执行以下操作之一：
   + 要创建新模板并向其中添加消息变量，请选择**创建模板**。然后，在模板页面上，输入模板的名称和（可选）模板的描述。
   + 要将消息变量添加到现有模板，请选择要将变量添加到的模板。然后，在模板页面上，选择**编辑**。在**模板详细信息**下面，使用版本选择器选择要作为起点的模板版本。如果您选择最新的版本，您可以将更改直接保存到该模板版本中。否则，您可以将更改另存为模板的新版本。

1. 在消息详细信息部分，确定添加消息变量的位置。您可以将变量添加到任何类型的模板的正文中。对于电子邮件和推送通知模板，您还可以在消息主题或标题中添加变量。

1. 在**属性查找器**中，展开要添加消息变量的属性类型部分。您可以从以下类型的属性中进行选择：  
**标准属性**  
这些是 Amazon Pinpoint 为任何项目自动创建的属性。这意味着，您可以在为任何项目发送的消息中使用它们。有关其中的每个属性的详细信息，请参阅[支持的 属性](#message-templates-variables)。  
要为标准属性添加变量，请从列表中选择该属性。  
**自定义属性**  
这些是您可以选择为各个项目创建的属性。由于这些属性可能不适用于某些项目，所以，对于使用该模板的消息的每个收件人，Amazon Pinpoint 可能无法将变量替换为某个值。为了帮助您避免这一问题，Amazon Pinpoint 提供了一些选项来帮助您选择在特定项目或所有项目中存在的属性。  
添加自定义属性：  

   1. 选择**自定义属性**，然后选择**加载自定义属性**。在出现的窗口中，Amazon Pinpoint 列出您创建的所有项目。当您选择每个项目时，选定项目的通用属性将显示在右侧的导航窗格中。如果未显示任何属性，则这些项目之间没有通过用属性。

   1. 请执行以下操作之一：
      + 要使用选定项目的所有通用属性，请选择**加载自定义属性**。
      + 要使用列表中的某个特定属性，请在搜索字段中输入该属性名称的任意部分。与输入文本相匹配的属性将显示。当显示了您要使用的属性时，选择**加载自定义属性**。**属性查找器**显示新添加的自定义属性。
**注意**  
您既不能添加来自不同项目集的通用属性，也不能修改**属性查找器**的**自定义属性**部分。要更改自定义属性，请选择 **X** 以清除**属性查找器**，然后重新开始。

   1. 在**属性查找器**中，选择要添加变量的属性。  
**建议的属性**  
这些是您在配置 Amazon Pinpoint 以从推荐器模型中检索个性化建议时可以选择为您的账户创建的属性。有关使用推荐系统模型的信息，请参阅[机器学习模型](ml-models.md)。您可以将这种类型的属性的变量添加到电子邮件模板、推送通知模板和短信模板中。您无法将其添加到语音模板中。  
要为建议的属性添加变量，请从列表中选择该属性。如果**属性查找器**未列出任何建议的属性，您必须先将模板连接到推荐器模型。  
添加建议的属性：  

   1. 选择**连接模型**。

   1. 选择在发送使用该模板的消息时要从中检索建议的模型。

   1. 选择**连接模型**。


1. 当您从**属性查找器**选择一个属性时，Amazon Pinpoint 为该属性创建一个消息变量并将其复制到剪贴板中。将变量粘贴到所需的位置。如果属性列表很长，请输入搜索文本以缩小列表范围。选择 **X** 以清除搜索字段。

   粘贴变量后，Amazon Pinpoint 会将其显示为关联属性的名称，并用两组大括号括起来，例如 `{{User.UserAttributes.FirstName}}`。

1. 对于要添加的每个消息变量，请重复步骤 4 到 6。

1. 要为消息变量指定默认值，请展开**默认属性值**部分。然后，在变量列表中，输入用于变量的默认值。
**注意**  
我们建议您为模板中的每个变量执行该操作。否则，Amazon Pinpoint 可能无法发送使用该模板的消息，或者消息可能以意外或不希望的方式显示。

1. 完成后，请执行以下操作之一：
   + 如果您将消息变量添加到新模板，请选择**创建**。
   + 如果您将消息变量添加到现有模板并希望将更改另存为模板的新版本，请选择**另存为新版本**。
   + 如果您将消息变量添加到现有模板并希望将更改另存为模板最新版本的更新，请选择**更新版本**。仅当您在步骤 3 中打开了模板的最新版本时，此选项才可用。

## 支持的 属性
<a name="message-templates-variables"></a>

每个项目都可以具有标准属性和自定义属性。标准属性是 Amazon Pinpoint 为任何项目自动创建的属性。自定义属性是您可以选择为项目创建的属性。自定义属性有三种类型：
+ **用户属性** – 这些属性描述用户，例如用户的名字、姓氏和出生日期。*用户* 是具有项目的唯一用户 ID 的人员。
+ **端点属性** – 这些属性描述用户的特定端点。*端点* 是您可以将消息发送到的目标，例如电子邮件地址、电话号码或移动设备。每位用户可以与一个或多个端点关联。例如，如果您通过电子邮件、短信和电话与一个用户通信，则该用户与三个端点相关联：一个是其电子邮件地址，另一个是其移动电话号码，再一个是其家庭（固定电话）电话号码。
+ **指标属性** – 这些属性是应用程序向 Amazon Pinpoint 报告的有关单独端点的数值指标，例如某个移动应用程序的会话数或购物车中留下的商品数。
+ **Pinpoint 属性** – 这些属性是您的应用程序、活动或旅程的唯一标识符。

除了您或 Amazon Pinpoint 为项目创建的自定义属性和标准属性以外，Amazon Pinpoint 还支持*建议的属性*。*建议的属性* 是临时存储的针对用户或端点的个性化建议的属性。Amazon Pinpoint 会从您为它配置的推荐器模型中检索这些建议。建议的属性与特定项目无关联，相反，它们与您的 Amazon Pinpoint 账户关联。有关使用推荐系统模型的信息，请参阅[机器学习模型](ml-models.md)。

您可以在消息变量中使用任何标准、自定义或建议的属性。下表指示在每个支持的属性的消息变量中显示的文本，并描述了每个属性。在表中，*custom\$1attribute*表示出现在自定义属性的变量中的文本。在这种情况下，请*custom\$1attribute*替换为自定义属性的名称。例如，如果您的项目在名为 `FirstName` 的自定义用户属性中存储用户的名字，并且您为该属性添加一个变量，则该变量的文本为 `{{User.UserAttributes.FirstName}}`。


| 属性 | 说明 | 
| --- | --- | 
| Address | 您发送到端点的消息或推送通知的目标地址，例如电子邮件地址、电话号码或设备令牌。 | 
| Pinpoint.ApplicationId | 应用程序的唯一标识符。 | 
| Attributes.custom\$1attribute | 描述端点的自定义端点属性。 | 
| Pinpoint.CampaignId | 活动的唯一标识符。 | 
| ChannelType | 向端点发送消息或推送通知时使用的渠道。例如：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/pinpoint/latest/userguide/message-templates-personalizing.html) | 
| CreationDate | 将端点添加到项目的日期和时间，采用 [ISO 8601 格式](https://en.wikipedia.org/wiki/ISO_8601)。例如，2019-06-30T11:45:25.220Z 表示 UTC 2019 年 6 月 30 日 11:45 AM。 | 
| Demographic.AppVersion | 与端点关联的应用程序的版本号。 | 
| Demographic.Locale | 端点的区域设置，格式如下：[ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/ISO_639-1) 代码，后跟下划线 (\$1)，然后是 [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) 值。例如，en\$1US 是美国英语区域设置。 | 
| Demographic.Make | 端点设备的制造商，例如 apple 或 samsung。 | 
| Demographic.Model | 端点设备的产品名称或型号，例如 iPhone 或 SM-G900F。 | 
| Demographic.ModelVersion | 端点设备的型号版本。 | 
| Demographic.Platform | 端点设备上的操作系统，例如 ios 或 android。 | 
| Demographic.PlatformVersion | 端点设备上的操作系统版本。 | 
| Demographic.Timezone | 端点的时区，采用 [tz 数据库](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)值。例如，America/Los\$1Angeles 表示太平洋时间（北美）。 | 
| EffectiveDate | 上次更新端点的日期和时间，采用 [ISO 8601 格式](https://en.wikipedia.org/wiki/ISO_8601)。例如，2019-08-23T10:54:35.220Z 表示 UTC 2019 年 8 月 23 日 10:54 AM。 | 
| EndpointId | 端点的唯一标识符。 | 
| EndpointStatus | 是否向端点发送消息或推送通知：ACTIVE 表示向端点发送消息；INACTIVE 表示不向端点发送消息。 | 
| Id | 端点的唯一标识符。 | 
| Pinpoint.JourneyId | 旅程的唯一标识符。 | 
| Location.City | 端点所在的城市。 | 
| Location.Country | 两个字符的代码，采用 [ISO 3166-1 alpha-2 格式](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)，表示端点所在的国家/地区或区域。例如，US 表示美国。 | 
| Location.Latitude | 端点位置的纬度坐标，舍入到一位小数。 | 
| Location.Longitude | 端点位置的经度坐标，舍入到一位小数。 | 
| Location.PostalCode | 端点所在区域的邮政编码。 | 
| Location.Region | 端点所在区域的名称，例如，省/市/自治区。 | 
| Metrics.custom\$1attribute | 您的应用程序向 Amazon Pinpoint 报告的有关端点的自定义数值指标。 | 
| OptOut | 用户是否选择不接收来自您的消息和推送通知：ALL 表示用户退订并且不希望接收任何消息或推送通知；NONE 表示用户未退订并希望接收所有消息和推送通知。 | 
| RecommendationItems | 存储端点或用户的一个建议的标准建议属性。该属性包含推荐系统模型直接提供的文本。 | 
| RecommendationItems.[\$1] |  存储端点或用户的有序建议列表（包含 2–5 个建议）的标准建议属性。该属性包含推荐系统模型直接提供的文本。 数字占位符 (.[\$1]) 表示属性包含多个值。该属性的消息变量可以引用列表中的特定值。  | 
| Recommendations.custom\$1attribute | 存储端点或用户的一个建议的自定义建议属性。此属性包含由推荐模型提供并通过 AWS Lambda 函数增强的内容。 | 
| Recommendations.custom\$1attribute.[\$1] |  存储端点或用户的多个建议的自定义建议属性。该属性包含由推荐系统模型提供并由 AWS Lambda 函数改进的内容。 数字占位符 (.[\$1]) 表示属性包含多个值。该属性的消息变量可以专门引用其中的一个值。  | 
| RequestId | 最近更新端点请求的唯一标识符。 | 
| User.UserAttributes.custom\$1attribute | 描述用户的自定义用户属性。 | 
| User.UserId | 用户的唯一标识符。 | 