当前位置: 首页 > news >正文

解决方案架构师系列 - AWS - Pinpoint

AWS Pinpoint介绍

Amazon Pinpoint 为营销人员和开发人员提供了一款可自定义的工具,助力他们大规模地开展跨渠道、行业和活动的客户通信。

Amazon Pinpoint是一个全面的客户参与平台,‌旨在帮助营销人员和开发人员大规模地开展跨渠道、‌行业和活动的客户通信。‌它提供了一系列功能,‌包括创建和管理营销活动、‌客户细分、‌推送通知、‌电子邮件、‌短信、‌语音消息以及应用程序内消息等,‌通过这些功能,‌用户可以与客户进行互动并分析活动效果,‌以优化营销策略。‌

使用Amazon Pinpoint的主要步骤包括:‌

  1. 创建项目:‌首先,‌用户需要在AWS控制台中创建一个新的项目,‌这是使用Amazon Pinpoint的第一步。‌
  2. 导入数据并创建客户细分:‌接下来,‌导入客户数据并创建不同的客户细分,‌以便更精确地定位目标受众。‌
  3. 创建活动:‌设计并创建各种营销活动,‌包括推送通知、‌电子邮件、‌短信等。‌
  4. 查看活动分析:‌活动创建后,‌可以通过分析工具查看活动的效果,‌包括送达率、‌打开率、‌点击率等,‌以便优化未来的活动。‌
  5. 项目管理和发送:‌管理项目,‌包括设置推送通知、‌电子邮件、‌短信等,‌并监控其性能。‌

Amazon Pinpoint还提供了多种最佳实践和建议,‌帮助用户优化送达率、‌提高客户参与度,‌并通过收件箱置入测试等方式确保邮件不被标记为垃圾邮件。‌此外,‌它还支持使用专用IP地址,‌帮助用户更好地管理邮件发送,‌以及通过沙盒模式对短信和语音消息进行限制和管理。‌

总的来说,‌Amazon Pinpoint是一个功能强大的工具,‌它允许用户通过多种渠道与客户进行互动,‌并通过详细的数据分析和优化建议,‌提高营销活动的效率和效果12。‌

Amazon Pinpoint 的安全最佳实践

使用 AWS 身份和访问管理 (IAM) 账户控制 API 操作的 Amazon Pinpoint 访问权限,尤其是创建、修改或 Amazon Pinpoint 删除资源的操作。对于 Amazon Pinpoint API,此类资源包括项目、活动和旅程。对于 Amazon Pinpoint SMS 和 Voice API,此类资源包括电话号码、资源池和配置集。

  • 为每个管理 Amazon Pinpoint 资源的人创建一个单独的用户,包括你自己。请勿使用 AWS 根凭证来管理 Amazon Pinpoint 资源。

  • 授予每位用户执行其职责所需的最低权限集。

  • 使用 IAM 组有效地管理适用于多个用户的权限。

  • 定期轮换您的 IAM 凭证。

发送短信或语音消息的示例

您可以参照以下代码示例,使用 AWS SDK for Python (Boto3)发送短信。

import boto3
from botocore.exceptions import ClientErrordef send_sms_message(sms_voice_v2_client, configuration_set, context_keys,country_parameters, destination_number, dry_run, keyword,max_price, message_body, message_type, origination_number,ttl):try:response = sms_voice_v2_client.send_text_message(ConfigurationSetName=configuration_set,Context=context_keys,DestinationCountryParameters=country_parameters,DestinationPhoneNumber=destination_number,DryRun=dry_run,Keyword=keyword,MaxPrice=max_price,MessageBody=message_body,MessageType=message_type,OriginationIdentity=origination_number,TimeToLive=ttl)except ClientError as e:print(e.response)else:return response['MessageId']def main():configuration_set = "MyConfigurationSet"context_keys = {"key1": "value1"}country_parameters = {"IN_TEMPLATE_ID": "TEMPLATE01234","IN_ENTITY_ID": "ENTITY98765"}destination_number = "+14255550168"dry_run = Falsekeyword = "MyKeyword"max_price = "2.00"message_body = ("This is a test message sent from Amazon Pinpoint SMS ""using the AWS SDK for Python (Boto3). ")message_type = "TRANSACTIONAL"origination_number = "+12065550183"ttl = 120print(f"Sending text message to {destination_number}.")message_id = send_sms_message(boto3.client('pinpoint-sms-voice-v2'), configuration_set, context_keys,country_parameters, destination_number, dry_run, keyword, max_price,message_body, message_type, origination_number, ttl)print(f"Message sent!\nMessage ID: {message_id}")if __name__ == '__main__':main()

在前面的示例中,对 main() 函数进行以下更改:

  • configuration_set 的值改为您要用于发送此消息的配置集的名称或 Amazon 资源名称 (ARN)。

  • context_keys 的值改为您要在发送此消息时使用的键和值。这些键出现在与此消息关联的事件记录中。

  • 如果您使用已注册的发件人 ID 向印度的客户发送消息,请将 country_parameters 的值改为匹配您在注册发件人 ID 时收到的注册实体 ID 和模板 ID。

  • 重要

    如果您不使用注册的发件人 ID 向印度的客户发送消息,请完全忽略此参数。同时,还必须删除 send_sms_message 函数中的相应行。

  • destination_number 的值改为您要向其发送消息的电话号码。

  • 如果要在不发送任何消息的情况下执行此操作,请将 dry_run 的值改为 True

  • max_price 的值改为您发送此消息的每个消息部分要花费的最大金额(以美元为单位)。一个消息部分最多包含 140 字节的信息。有关更多信息,请参阅 短信字符限制。

  • 更改 message_body 的值以包括您要发送的消息。一条消息的最大长度取决于其所包含的字符。有关短信字符编码的更多信息,请参阅短信字符限制。

  • 更改 message_type 的值以表示相应的消息类别。有效值包括 TRANSACTIONAT(适用于重要或对时间敏感的消息)和 PROMOTION(适用于不重要或对不时间敏感的消息)。

  • origination_number 的值改为您要用于发送消息的电话号码。电话号码必须使用 E.164 格式。

  • 将的值更改ttl为 Amazon Pinpoint SMS 应尝试发送消息的时间(以秒为单位)。您可以将 TTL 值设置为最多 259200 秒(72 小时)。

发送语音消息

您可以使用以下代码示例,通过 AWS SDK for Python (Boto3)发送语音消息。

import boto3
from botocore.exceptions import ClientErrordef send_voice_message(sms_voice_v2_client, configuration_set, context_keys,destination_number, dry_run, max_price, message_body,message_type, origination_number, ttl, voice_id):try:response = sms_voice_v2_client.send_voice_message(ConfigurationSetName=configuration_set,Context=context_keys,DestinationPhoneNumber=destination_number,DryRun=dry_run,MaxPricePerMinute=max_price,MessageBody=message_body,MessageBodyTextType=message_type,OriginationIdentity=origination_number,TimeToLive=ttl,VoiceId=voice_id)except ClientError as e:print(e.response)else:return response['MessageId']def main():configuration_set = "MyConfigurationSet"context_keys = {"key1":"value1"}destination_number = "+12065550123"dry_run = Falsemax_price = "2.00"message_body = ("<speak>""This is a test message sent from <emphasis>Amazon Pinpoint SMS</emphasis>""using the <break strength='weak'/> AWS SDK for Python (Boto3). ""<amazon:effect phonation='soft'>Thank you for listening.""</amazon:effect>""</speak>")message_type = "SSML"origination_number = "+18445550142"ttl = 120voice_id = "MATTHEW"print(f"Sending voice message with Amazon Pinpoint SMS from {origination_number} to {destination_number}.")message_id = send_voice_message(boto3.client('pinpoint-sms-voice-v2'), configuration_set, context_keys,destination_number, dry_run, max_price, message_body, message_type,origination_number, ttl, voice_id)print(f"Message sent!\nMessage ID: {message_id}")if __name__ == '__main__':main()
 

在前面的示例中,对 main() 函数进行以下更改:

  • configuration_set 的值改为您要用于发送此消息的配置集的名称或 Amazon 资源名称 (ARN)。

  • context_keys 的值改为您要在发送此消息时使用的键和值。这些键出现在与此消息关联的事件记录中。

  • destination_number 的值改为您要向其发送消息的电话号码。

  • max_price 的值改为发送此消息每分钟要花费的最大金额。

  • 更改 message_body 的值以包括您要发送的消息。消息最多可包含 6,000 个字符。

  • 如果要使用纯文本脚本而不是 SSML 格式的脚本,请将 message_type 的值改为 TEXT

  • origination_number 的值改为您要用于发送消息的电话号码。电话号码必须使用 E.164 格式。

  • 如果要在不发送任何消息的情况下执行此操作,请将 dry_run 的值改为 True

  • 将的值更改ttl为 Amazon Pinpoint SMS 应尝试发送消息的时间(以秒为单位)。您可以将 TTL 值设置为最多 259200 秒(72 小时)。

  • MATTHEW 替换为要用于发送消息的 Amazon Polly 语音的名称。有关支持的语音的完整列表,请参阅《短信和语音》第 2 版 API 参考SendVoiceMessage中。如果您未指定语音,则您的消息将使用 “MATTHEW” 语音发送。

http://www.lryc.cn/news/405007.html

相关文章:

  • MF173:将多个工作表转换成PDF文件
  • Docker、containerd、CRI-O 和 runc 之间的区别
  • PRISM-Python 中的规则一个简单的 Python 规则感应系统
  • DB-GPT:LLM应用的集大成者
  • 汉明权重(Hamming Weight)(统计数据中1的个数)VP-SWAR算法
  • 基于 PyTorch 的模型瘦身三部曲:量化、剪枝和蒸馏,让模型更短小精悍!
  • 二、原型模式
  • 【目标检测】Anaconda+PyTorch(GPU)+PyCharm(Yolo5)配置
  • Django实战项目之进销存数据分析报表——第二天:项目创建和 PyCharm 配置
  • 静态路由实验
  • VSCode STM32嵌入式开发插件记录
  • linux cpu 占用超100% 分析。
  • 自然学习法和科学学习法
  • 力扣第二十四题——两两交换链表中的节点
  • C语言柔性数组详解
  • 自动驾驶---视觉Transformer的应用
  • 预训练语言模型实践笔记
  • Perl 哈希
  • Linux之Mysql索引和优化
  • springboot业务逻辑写在controller层吗
  • Ubuntu 24.04 LTS 桌面安装MT4或MT5 (MetaTrader)教程
  • Go基础编程 - 12 -流程控制
  • 汽车信息安全--TLS,OpenSSL
  • 深入探索 SQL 中的 LIKE 右模糊匹配(LIKE RIGHT)与左模糊匹配(LIKE LEFT)
  • mybatis 多数据源 TDataSource required a single bean, but 2 were found
  • Dubbo SPI 之路由器
  • Python深度学习环境配置(Pytorch、CUDA、cuDNN),包括Anaconda搭配Pycharm的环境搭建以及基础使用教程(保姆级教程,适合小白、深度学习零基础入门)
  • 月影护眼大路灯怎么样?书客|月影|霍尼韦尔超硬核实力性能测评pk!
  • 邮件安全篇:邮件传输加密(SSL/TLS or STATRTTLS)
  • 【系统架构设计 每日一问】三 Redis支持事务么,Redis的事务如何保证