来自 Amazon Pinpoint 的短信事件数据流 - Amazon Pinpoint

来自 Amazon Pinpoint 的短信事件数据流

如果为项目启用了短信渠道,Amazon Pinpoint 可以流式传输有关项目的短信传送事件数据。设置事件流式传输后,Amazon Pinpoint 会从您在设置期间指定的目的地中检索事件数据供您查看。有关如何设置事件流式传输的信息,请参阅 设置 Amazon Pinpoint 以通过 Amazon Kinesis 或 Amazon Data Firehose 流式传输应用程序事件数据

注意

运营商生成的短信事件最多可能需要 72 小时才能接收,因此不应将其用于判断出站消息传送是否存在延迟。72 小时后,如果 Amazon Pinpoint 仍未收到运营商的最终事件,则该服务将自动返回 UNKNOWN record_status,因为 Amazon Pinpoint 不知道该消息发生了什么情况。

短信事件示例

短信事件的 JSON 对象包含以下示例中显示的数据。

{ "event_type": "_SMS.SUCCESS", "event_timestamp": 1553104954322, "arrival_timestamp": 1553104954064, "event_version": "3.1", "application": { "app_id": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "sdk": {} }, "client": { "client_id": "123456789012" }, "device": { "platform": {} }, "session": {}, "attributes": { "sender_request_id": "565d4425-4b3a-11e9-b0a5-example", "campaign_activity_id": "cbcfc3c5e3bd48a8ae2b9cb41example", "origination_phone_number": "+12065550142", "destination_phone_number": "+14255550199", "record_status": "DELIVERED", "iso_country_code": "US", "treatment_id": "0", "number_of_message_parts": "1", "message_id": "1111-2222-3333", "message_type": "Transactional", "campaign_id": "52dc44b35c4742c98c5935269example" }, "metrics": { "price_in_millicents_usd": 645.0 }, "awsAccountId": "123456789012" }

短信事件属性

本节定义了在您发送短信消息时 Amazon Pinpoint 生成的事件流数据的上一个示例中包含的属性。

事件
属性 描述
event_type

事件类型。可能的值有:

  • _SMS.BUFFERED – 消息仍在传送给接收人的过程中。

  • _SMS.SUCCESS – 消息已成功被运营商接收/传送给接收人。

  • _SMS.FAILURE – Amazon Pinpoint 无法将消息传送给接收人。要了解有关阻止消息传送的错误的更多信息,请参阅 attributes.record_status

  • _SMS.OPTOUT – 客户收到消息并通过发送退订关键字(通常为“STOP”)来回复。

event_timestamp

报告事件的时间,显示为以毫秒为单位的 Unix 时间。

arrival_timestamp

Amazon Pinpoint 收到事件的时间,显示为以毫秒为单位的 Unix 时间。

event_version

事件 JSON 架构的版本。

提示

在事件处理应用程序中检查此版本,以便知道何时更新应用程序以响应架构更新。

application

与事件关联的 Amazon Pinpoint 项目的相关信息。有关更多信息,请参阅应用程序表。

client

安装在设备上用于报告事件的应用程序客户端的相关信息。有关更多信息,请参阅客户端 表。

device

报告事件的设备的相关信息。有关更多信息,请参阅设备 表。

对于短信事件,此对象为空。

session 对于短信事件,此对象为空。
attributes

与事件关联的属性。对于您的应用程序之一报告的事件,此对象包含由应用程序定义的自定义属性。对于在您发送活动时创建的事件,此对象包含与活动关联的属性。对于在您发送事务性电子邮件时生成的事件,此对象包含与电子邮件本身相关的信息。

有关更多信息,请参阅属性表。

metrics

与事件关联的其他指标。有关更多信息,请参阅指标表。

awsAccountId

已用于发送电子邮件的 AWS 账户的 ID。

应用程序

包括有关与事件关联的 Amazon Pinpoint 项目和(如果适用)用于报告事件的开发工具包的信息。

属性 描述
app_id

报告事件的 Amazon Pinpoint 项目的唯一 ID。

sdk

用于报告该事件的开发工具包。如果您通过直接调用 Amazon Pinpoint API 或使用 Amazon Pinpoint 控制台来发送事务性短信,则此对象为空。

Attributes

包括与事件关联的属性的相关信息。

属性 描述
sender_request_id

与发送短信的请求关联的唯一 ID。

campaign_activity_id 活动内活动的唯一 ID。
origination_phone_number

用于发送消息的电话号码。

destination_phone_number

尝试将消息发送到的电话号码。

record_status

有关信息状态的其他消息。可能的值包括:

  • SUCCESSFUL/DELIVERED – 消息已成功传送。

  • PENDING – 消息尚未传送到接收人的设备。

  • INVALID – 目标电话号码无效。

  • UNREACHABLE – 接收人的设备当前无法访问或者不可用。例如,设备可能已关闭,或者可能断开与网络的连接。您可以稍后再次尝试发送消息。

  • UNKNOWN –出现错误,阻止了消息的传送。此错误通常是临时的,您可以稍后再次尝试发送消息。

  • BLOCKED – 接收人的设备阻止了来自发送号码的短信。

  • CARRIER_UNREACHABLE – 接收人的移动网络出现问题,阻止了消息的传送。此错误通常是临时的,您可以稍后再次尝试发送消息。

  • SPAM – 接收人的移动运营商将消息内容标识为垃圾内容并阻止了消息的传送。

  • INVALID_MESSAGE – 短信的正文无效,无法传送。

  • CARRIER_BLOCKED – 接收人的运营商阻止了此消息的传送。当运营商确定消息的内容是未经请求内容或恶意内容时,通常会出现这种情况。

  • TTL_EXPIRED – 短信无法在特定时间范围内传送。此错误通常是临时的,您可以稍后再次尝试发送消息。

  • MAX_PRICE_EXCEEDED – 发送消息可能会产生超过您账户的每月短信支出限额的费用。您可以通过完成《Amazon Pinpoint 用户指南》中的请求增加每月短信支出限额中的步骤来申请增加此限额。

  • OPTED_OUT – 由于收件人选择不接收您的消息,因此未发送短信。

  • NO_QUOTA_LEFT_ON_ACCOUNT – 您的账户上剩余的支出限额不足,无法发送消息。您可以通过完成《AWS 终端用户消息发送 SMS 服务用户指南》中的请求增加每月短信支出限额中的步骤来申请增加此限额。

  • NO_ORIGINATION_IDENTITY_AVAILABLE_TO_SEND – 您的账户中没有可用于向目的地发送消息的电话号码。

  • DESTINATION_COUNTRY_NOT_SUPPORTED –目的地国家/地区已被屏蔽。有关所有支持的国家/地区,请参阅《AWS 终端用户消息发送 SMS 服务用户指南》中的支持的国家/地区和区域(短信渠道)

  • ACCOUNT_IN_SANDBOX – 您的账户位于沙盒中,只能发送到经过验证的目的地号码。您可以在 Amazon Pinpoint 控制台中验证目的地号码,也可以开始将账户移出沙盒的过程,请参阅《AWS 终端用户消息发送 SMS 服务用户指南》中的关于短信/彩信和语音沙盒

  • RATE_EXCEEDED – 您试图发送消息的速度太快并受到限制。您需要降低调用率。有关我们的限制的详细信息,请参阅《AWS 终端用户消息发送 SMS 服务用户指南》中的每秒消息部分数(MPS)限制

  • INVALID_ORIGINATION_IDENTITY – 提供的源身份无效。

  • ORIGINATION_IDENTITY_DOES_NOT_EXIST – 提供的源身份不存在。

  • INVALID_DLT_PARAMETERS – 提供了无效的 DLT 参数(为印度的目的地所必需)。

  • INVALID_PARAMETERS – 提供的参数无效。

  • ACCESS_DENIED – 您的账户被禁止发送消息。请联系客户支持以找出原因并解决问题。

  • INVALID_KEYWORD – 提供的关键字无效。关键字的格式可能不正确或未在您的账户中设置。

  • INVALID_SENDER_ID – 提供的发件人 ID 无效。发件人 ID 的格式或长度可能不正确。

  • INVALID_POOL_ID – 提供的池 ID 无效。池 ID 的格式可能不正确或不属于您的账户。

  • SENDER_ID_NOT_SUPPORTED_FOR_DESTINATION – 目的地国家/地区不支持发件人 ID。您必须使用电话号码或其他源身份进行发送。

  • INVALID_PHONE_NUMBER – 提供的源电话号码无效。电话号码的格式或长度可能不正确。

iso_country_code

与接收人的电话号码关联的国家,按 ISO 3166-1 alpha-2 格式显示。

treatment_id

在 A/B 活动中发送消息时,消息处理的 ID。

treatment_id

如果使用 A/B 测试活动发送了消息,则此值表示消息的处理编号。对于事务性短信,此值为 0。

number_of_message_parts

Amazon Pinpoint 为了发送消息而创建的消息部分数量。

通常,短信只能包含 160 个 GSM-7 字符或 67 个非 GSM 字符,但这些限制会因国家而异。如果您发送的消息超出了这些限制,Amazon Pinpoint 会自动将消息拆分为较小的部分。我们根据您发送的消息部分数量收取费用。

message_id

Amazon Pinpoint 在接受消息时生成的唯一 ID。

message_type

消息类型。可能的值为 PromotionalTransactional。您可以在创建活动时,或在 Amazon Pinpoint API 中使用 SendMessages 操作来发送事务性消息时指定此值。

campaign_id

发送消息的 Amazon Pinpoint 活动的唯一 ID。

customer_context

Amazon Pinpoint SendMessages 操作中发送的 Context 映射内容的 JSON 字符串。

客户端

包括安装在设备上用于报告事件的应用程序客户端的相关信息。

属性 描述
client_id

对于应用程序生成的事件,此值是安装在设备上的应用程序客户端的唯一 ID。此 ID 由 AWS Mobile SDK for iOS 和 AWS Mobile SDK for Android 自动生成。

对于在您发送活动和事务性消息时生成的事件,此值等于您将消息发送到的端点的 ID。

cognito_id 在应用程序使用的 Amazon Cognito 身份池中分配给应用程序客户端的唯一 ID。

设备

包括报告事件的设备的相关信息。

属性 描述
locale 设备区域设置。
make 设备制造商,如 AppleSamsung
model 设备型号,如 iPhone
platform 设备平台,如 iosandroid

指标

包括与事件关联的指标的相关信息。

属性 描述
price_in_millicents_usd

我们向您收取的发送消息的费用。此价格以千分之一美分显示。例如,如果此属性的值为 645,则我们收取的消息发送单价是 0.645¢ (645 / 1000 = 0.645¢ = $0.00645)。

注意

对于 event_type_SMS.BUFFERED 的消息,不显示此属性。