431
Amazon Pinpoint Guia do desenvolvedor

Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon PinpointGuia do desenvolvedor

Page 2: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedor

Amazon Pinpoint: Guia do desenvolvedorCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedor

Table of ContentsEm que consiste o Amazon Pinpoint? ................................................................................................... 1

Recursos do Amazon Pinpoint ...................................................................................................... 1Definir segmentos de público ............................................................................................... 1Envolver seu público com campanhas de mensagens .............................................................. 1Enviar mensagens transacionais ........................................................................................... 1Analisar o comportamento dos usuários ................................................................................. 2

Disponibilidade regional ............................................................................................................... 2Tutoriais ............................................................................................................................................ 3

Como usar o Postman com o Amazon Pinpoint .............................................................................. 3Sobre este tutorial .............................................................................................................. 3Pré-requisitos ..................................................................................................................... 4Etapa 1: criar políticas e funções do IAM ............................................................................... 4Etapa 2: configurar o Postman ............................................................................................. 6Etapa 3: Enviar solicitações adicionais ................................................................................. 13

Importação de dados de fontes externas ...................................................................................... 19Pré-requisitos ................................................................................................................... 22Etapa 1: criar um bucket do Amazon S3 .............................................................................. 22Etapa 2: crie funções do IAM ............................................................................................. 24Etapa 3: empacotar as bibliotecas ....................................................................................... 29Etapa 4: criar a função Lambda que divide os dados de entrada .............................................. 30Etapa 5: criar a função Lambda que processa os registros recebidos ........................................ 34Etapa 6: criar a função Lambda que importa registros para o Amazon Pinpoint ........................... 43Etapa 7: configurar eventos do Amazon S3 .......................................................................... 46Próximas etapas ............................................................................................................... 50

Configuração de um sistema de gerenciamento de preferências de e-mail ......................................... 51Arquitetura ....................................................................................................................... 51Sobre esta solução ........................................................................................................... 52Pré-requisitos ................................................................................................................... 53Etapa 1: configurar o Amazon Pinpoint ................................................................................ 54Etapa 2: adicionar ou configurar endpoints ........................................................................... 59Etapa 3: criar políticas e funções do IAM ............................................................................. 62Etapa 4: criar a função do Lambda ..................................................................................... 64Etapa 5: configurar o Amazon API Gateway ......................................................................... 70Etapa 6: criar e implantar o formulário da Web ...................................................................... 78Etapa 7: criar e enviar campanhas do Amazon Pinpoint .......................................................... 92Próximas etapas ............................................................................................................... 94

Configuração de um sistema de registro de SMS .......................................................................... 95Sobre a inclusão dupla ...................................................................................................... 96Sobre esta solução ........................................................................................................... 97Pré-requisitos ................................................................................................................... 98Etapa 1: configurar o Amazon Pinpoint ................................................................................ 99Etapa 2: criar políticas e funções do IAM ............................................................................ 102Etapa 3: criar funções do Lambda ..................................................................................... 104Etapa 4: configurar o Amazon API Gateway ........................................................................ 115Etapa 5: criar e implantar o formulário da Web .................................................................... 122Próximas etapas ............................................................................................................. 130

Integração ao seu aplicativo ............................................................................................................. 132SDK Support .......................................................................................................................... 132Como integrar os Mobile SDKs ou bibliotecas JS ......................................................................... 133

Integração de Mobile SDKs .............................................................................................. 133Integração do AWS Amplify .............................................................................................. 133Próxima etapa ................................................................................................................ 134

Registro de endpoints .............................................................................................................. 134Antes de começar ........................................................................................................... 134

iii

Page 4: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedor

SDKs móveis do AWS ..................................................................................................... 134AWS Amplify .................................................................................................................. 134Próximas etapas ............................................................................................................. 135

Relato de eventos ................................................................................................................... 135Antes de começar ........................................................................................................... 136SDKs móveis do AWS ..................................................................................................... 136Web e React Native ........................................................................................................ 134Eventos da API do Amazon Pinpoint .................................................................................. 136Próxima etapa ................................................................................................................ 136

Gerenciar notificações por push ................................................................................................ 136Configuração de notificações por push ............................................................................... 137Gerenciar notificações por push ........................................................................................ 138

Definição do público-alvo ................................................................................................................. 139Adicionando endpoints ............................................................................................................. 139

Exemplos ....................................................................................................................... 140Informações relacionadas ................................................................................................. 144

Associação de usuários com endpoints ...................................................................................... 144Exemplos ....................................................................................................................... 145Informações relacionadas ................................................................................................. 148

Adição de um lote de endpoints ................................................................................................ 148Exemplos ....................................................................................................................... 148Informações relacionadas ................................................................................................. 153

Importação de endpoints .......................................................................................................... 153Antes de começar ........................................................................................................... 153Exemplos ....................................................................................................................... 154Informações relacionadas ................................................................................................. 162

Como excluir endpoints ............................................................................................................ 162Exemplos ....................................................................................................................... 162

Acesso aos dados do público-alvo ..................................................................................................... 164Pesquisa de endpoints ............................................................................................................. 164

Exemplos ....................................................................................................................... 165Informações relacionadas ................................................................................................. 168

Exportação de endpoints .......................................................................................................... 168Antes de começar ........................................................................................................... 168Exemplos ....................................................................................................................... 169Informações relacionadas ................................................................................................. 175

Listagem de IDs de endpoints ................................................................................................... 176Criação de Segmentos ..................................................................................................................... 179

Criação de segmentos ............................................................................................................. 179Criação de segmentos com o AWS SDK for Java ................................................................ 179

Importação de segmentos ........................................................................................................ 180Importação de segmento .................................................................................................. 180

Personalizando segmentos com o AWS Lambda ......................................................................... 183Dados de eventos ........................................................................................................... 184Criar uma função Lambda ................................................................................................ 185Atribuição de uma política de função Lambda ...................................................................... 186Atribuição de uma função Lambda a uma campanha ............................................................ 188

Criação de campanhas .................................................................................................................... 189Criação de campanhas padrão .................................................................................................. 189

Criação de campanhas com o AWS SDK for Java ............................................................... 189Criação de campanhas de teste A/B .......................................................................................... 190

Criação de campanhas de teste A/B com o AWS SDK for Java .............................................. 190Validação de números de telefone ..................................................................................................... 192

Casos de uso da validação de números de telefone ..................................................................... 192Uso do serviço de validação de números de telefone ................................................................... 192Respostas da validação de números de telefone ......................................................................... 193

Envio de mensagens ....................................................................................................................... 196

iv

Page 5: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedor

Enviar e-mail .......................................................................................................................... 196Escolhe de um método de envio de e-mail ......................................................................... 197Uso da API .................................................................................................................... 197Uso da interface SMTP .................................................................................................... 204

Enviar mensagens SMS ........................................................................................................... 211Enviar mensagens de voz ........................................................................................................ 218Enviar notificações por push ..................................................................................................... 222

Criar canais personalizados .............................................................................................................. 229Criar uma campanha que envia mensagens por meio de um canal personalizado .............................. 229Noções básicas sobre dados de eventos .................................................................................... 230Configurar webhooks ............................................................................................................... 231Configuração de funções Lambda .............................................................................................. 231

Exemplos de função Lambda ............................................................................................ 231Conceder ao Amazon Pinpoint permissão para invocar a função do Lambda ............................ 234

Eventos em streaming ..................................................................................................................... 236Configurar eventos de streaming .............................................................................................. 236

Pré-requisitos ................................................................................................................. 237AWS CLI ....................................................................................................................... 237AWS SDK for Java ......................................................................................................... 237Desativando eventos de streaming .................................................................................... 238

Eventos de aplicativo ............................................................................................................... 238Exemplo ........................................................................................................................ 238Atributos de eventos do aplicativo ..................................................................................... 239

Eventos de campanha ............................................................................................................. 242Evento de exemplo ......................................................................................................... 242Atributos de eventos de campanha .................................................................................... 243

Eventos de jornada ................................................................................................................. 245Evento de exemplo ......................................................................................................... 245Atributos de eventos de jornadas ...................................................................................... 246

Eventos de e-mail ................................................................................................................... 248Eventos de exemplo ........................................................................................................ 248Atributos de eventos de e-mail .......................................................................................... 252

Eventos de SMS ..................................................................................................................... 256Exemplo ........................................................................................................................ 256Atributos de eventos de SMS ............................................................................................ 257

Consulta de dados de análise ........................................................................................................... 262Métricas compatíveis ............................................................................................................... 262Noções básicas de consulta ..................................................................................................... 263Políticas do IAM ...................................................................................................................... 264Métricas padrão ...................................................................................................................... 266

Métricas de aplicativo para campanhas .............................................................................. 267Métricas de aplicativo para mensagens de e-mail transacionais .............................................. 271Métricas de aplicativo para mensagens SMS transacionais .................................................... 278Métricas de campanha ..................................................................................................... 280Métricas de engajamento de jornada .................................................................................. 286Métricas de execução de jornada ...................................................................................... 291Métricas de execução de atividades da jornada ................................................................... 292

Consultar dados de campanha .................................................................................................. 294Pré-requisitos ................................................................................................................. 295Consultar dados para uma campanha ................................................................................ 295Consultar dados para várias campanhas ............................................................................ 299

Consultar dados de mensagens transacionais ............................................................................. 303Pré-requisitos ................................................................................................................. 304Consultar dados para mensagens de e-mail transacionais ..................................................... 304Consultar dados para mensagens SMS transacionais ........................................................... 307

Usar resultados da consulta ..................................................................................................... 311Estrutura do JSON .......................................................................................................... 312

v

Page 6: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedor

Objetos e campos JSON .................................................................................................. 316Registro em log de chamadas da API ................................................................................................ 317

Informações sobre o Amazon Pinpoint no CloudTrail .................................................................... 317Ações de API do Amazon Pinpoint que podem ser registradas pelo CloudTrail .................................. 318Ações de API de e-mail do Amazon Pinpoint que podem ser registradas pelo CloudTrail ..................... 321Ações da API de SMS e voz do Amazon Pinpoint que podem ser registradas pelo CloudTrail .............. 322Exemplos: entradas de arquivos de log do Amazon Pinpoint .......................................................... 322

Marcação de recursos ..................................................................................................................... 326Gerenciamento de tags ............................................................................................................ 326Uso te Tags em políticas do IAM .............................................................................................. 327Adicionar tags a recursos ......................................................................................................... 327Exibição de tags para recursos ................................................................................................. 329Atualização de tags para recursos ............................................................................................. 330Remoção de tags de recursos .................................................................................................. 332Informações relacionadas ......................................................................................................... 333

Personalizar recomendações com o AWS Lambda ............................................................................... 334Usar recomendações em mensagens ......................................................................................... 334Criar a função Lambda ............................................................................................................ 336

Dados de evento de entrada ............................................................................................ 336Dados e requisitos de resposta ......................................................................................... 337

Atribuição de uma política de função Lambda ............................................................................. 341Autorizar o Amazon Pinpoint a chamar a função .......................................................................... 342Configurar o modelo do recomendação ...................................................................................... 342

Como excluir dados ......................................................................................................................... 344Como excluir endpoints ............................................................................................................ 344Como excluir dados de segmentos e endpoints do Amazon S3 ...................................................... 344Exclusão de todos os dados do projeto ...................................................................................... 345Exclusão de todos os dados da AWS ........................................................................................ 345

Segurança ...................................................................................................................................... 347Proteção de dados .................................................................................................................. 347

Criptografia de dados ...................................................................................................... 349Privacidade do tráfego entre redes .................................................................................... 349

Identity and Access Management .............................................................................................. 350Público .......................................................................................................................... 350Autenticação com identidades ........................................................................................... 351Gerenciamento do acesso usando políticas ......................................................................... 353Como o Amazon Pinpoint funciona com o IAM .................................................................... 354Ações de políticas do Amazon Pinpoint .............................................................................. 358Exemplos de políticas baseadas em identidade ................................................................... 378Exemplos de política baseada em recursos ......................................................................... 385Funções do IAM para tarefas comuns ................................................................................ 386Solução de problemas ..................................................................................................... 400

Registro e monitoramento ........................................................................................................ 402Validação de conformidade ....................................................................................................... 403Resiliência .............................................................................................................................. 404Segurança da infraestrutura ...................................................................................................... 404Análise de configuração e vulnerabilidade ................................................................................... 405

Cotas ............................................................................................................................................ 406Cotas gerais ........................................................................................................................... 406Cotas de solicitação da API ...................................................................................................... 406Cotas de campanhas ............................................................................................................... 407Cotas de e-mail ...................................................................................................................... 408

Cotas de mensagens de e-mail ......................................................................................... 408Cotas de remetentes e destinatários de e-mail .................................................................... 408Cotas de envio de e-mail ................................................................................................. 409

Cotas de endpoint ................................................................................................................... 410Cotas de importação de endpoints ............................................................................................. 411

vi

Page 7: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedor

Cotas de ingestão de eventos ................................................................................................... 411Cotas de jornadas ................................................................................................................... 412Cotas de machine learning ....................................................................................................... 412Cotas de modelos de mensagem .............................................................................................. 413Cotas de notificações por push ................................................................................................. 414Cotas de segmentos ................................................................................................................ 415Cotas de SMS ........................................................................................................................ 415Cotas de voz .......................................................................................................................... 415Solicitar um aumento de cota ................................................................................................... 417

Histórico do documento .................................................................................................................... 419Atualizações anteriores ............................................................................................................ 420

AWS Glossary ................................................................................................................................ 424

vii

Page 8: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorRecursos do Amazon Pinpoint

Em que consiste o Amazon Pinpoint?O Amazon Pinpoint é um serviço da AWS que você pode usar para interagir com seus clientes em várioscanais de mensagens. Você pode usar o Amazon Pinpoint para enviar notificações por push, e-mails,mensagens de texto SMS ou mensagens de voz.

As informações neste guia do desenvolvedor são destinadas a desenvolvedores de aplicativos. Este guiacontém informações sobre como usar os recursos do Amazon Pinpoint de forma programática. Ele tambémcontém informações de interesse específico para os desenvolvedores de aplicativos móveis, como osprocedimentos para integrar os recursos de mensagens e análises ao aplicativo (p. 132).

Há vários outros documentos que complementam esse documento. Os seguintes documentos forneceminformações de referência relacionadas às APIs do Amazon Pinpoint:

• Referência de API do Amazon Pinpoint• API de e-mail do Amazon Pinpoint• API de voz e SMS do Amazon Pinpoint

Se você não estiver familiarizado com o Amazon Pinpoint, pode ser útil revisar o Guia do usuário doAmazon Pinpoint antes de prosseguir com este documento.

Recursos do Amazon PinpointEsta seção descreve os principais recursos do Amazon Pinpoint e as tarefas que você pode realizar comeles.

Definir segmentos de públicoAlcance o público correto para suas mensagens definindo segmentos de público (p. 179). Um segmentodefine quais usuários receberão as mensagens enviadas por uma campanha. Você pode definirsegmentos dinâmicos baseados em dados relatados pelo aplicativo, como sistema operacional ou tipo dedispositivo móvel. Você também pode importar segmentos estáticos definidos com o uso de outro serviçoou aplicativo.

Envolver seu público com campanhas de mensagensEnvolva seu público criando uma campanha de mensagens (p. 189). Uma campanha envia mensagenspersonalizadas seguindo uma programação definida por você. Você pode criar campanhas que enviempush para dispositivos móveis, e-mail ou SMS.

Para experimentar estratégias alternativas, configure sua campanha como um teste A/B e analise osresultados com análise do Amazon Pinpoint.

Enviar mensagens transacionaisMantenha seus clientes bem-informados enviando mensagens transacionais por push para dispositivosmóveis e mensagens SMS — como mensagens de ativação de novas contas, confirmações de pedidos enotificações de redefinição de senha — diretamente a usuários específicos. Você pode enviar mensagenstransacionais usando a API REST do Amazon Pinpoint.

1

Page 9: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAnalisar o comportamento dos usuários

Analisar o comportamento dos usuáriosObtenha informações sobre o seu público e a eficácia de suas campanhas usando as análises fornecidaspelo Amazon Pinpoint. Você pode visualizar as tendências sobre o grau de envolvimento de seus usuários,atividades de compra, dados demográficos, e muito mais. Você também pode monitorar seu tráfegode mensagens exibindo métricas como o número total de mensagens enviadas ou abertas para umacampanha ou aplicativo. Com a API do Amazon Pinpoint, seu aplicativo pode relatar dados personalizadosque o Amazon Pinpoint disponibiliza para análise, e você pode consultar os dados de análise paradeterminadas métricas padrão.

Para analisar ou armazenar os dados de análise fora do Amazon Pinpoint, é possível configurar o AmazonPinpoint para transmitir os dados (p. 236) para o Amazon Kinesis.

Disponibilidade regionalO Amazon Pinpoint está disponível em várias regiões da AWS na América do Norte, na Europa, naÁsia e na Oceania. Em cada região, a AWS mantém várias zonas de disponibilidade. Essas zonas dedisponibilidade são fisicamente isoladas umas das outras, mas são unidas por conexões de rede privadas,de baixa latência, de alta taxa de transferência e altamente redundantes. Essas zonas de disponibilidadepermitem que forneçamos níveis muito altos de disponibilidade e redundância ao mesmo tempo queminimizamos a latência.

Para saber mais sobre regiões da AWS, consulte Como gerenciar regiões da AWS na Referência geral doAmazon Web Services. Para obter uma lista de todas as regiões onde o Amazon Pinpoint está disponívelno momento, consulte Endpoints de serviços da AWS na Referência geral do Amazon Web Services.Para saber mais sobre quantas zonas de disponibilidade estão disponíveis em cada região, consulteInfraestrutura global da AWS.

2

Page 10: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorComo usar o Postman com o Amazon Pinpoint

TutoriaisOs tutoriais nesta seção são projetados para mostrar aos novos usuários do Amazon Pinpoint comoexecutar várias tarefas importantes. Se você é novo no Amazon Pinpoint ou não conhece determinadosrecursos, estes tutoriais serão um bom ponto de partida.

Os tutoriais neste guia incluem tarefas destinadas a um público de desenvolvedores ou administradores desistemas. Estes tutoriais mostram como executar tarefas usando a API do Amazon Pinpoint, os AWS SDKse a AWS CLI. Se você interage com o Amazon Pinpoint usando principalmente o console baseado na web,consulte a seção Tutoriais do Guia do usuário do Amazon Pinpoint.

Tutorial: Como usar o Postman com a API doAmazon Pinpoint

O Postman é uma ferramenta popular para testar APIs em um ambiente gráfico de fácil utilização. Vocêpode usar o Postman para enviar solicitações de API para qualquer API REST e para receber respostaspara suas solicitações. Usar o Postman é uma maneira conveniente de testar e solucionar problemas emchamadas feitas para a API do Amazon Pinpoint. Este tutorial inclui procedimentos para configurar e usar oPostman com o Amazon Pinpoint.

Note

O Postman foi desenvolvido por uma empresa terceira. Ele não foi desenvolvido nem écompatível com a Amazon Web Services (AWS). Para saber mais sobre como usar o Postman,ou para obter assistência com problemas relacionados ao Postman, consulte o Centro de suporteno site do Postman.

Sobre este tutorialEsta seção contém uma visão geral deste tutorial.

Público-alvo

Este tutorial é destinado a desenvolvedores e implementadores de sistemas. Você não precisa estarfamiliarizado com o Amazon Pinpoint nem com o Postman para concluir as etapas deste tutorial. Énecessário saber gerenciar as políticas do IAM políticas e modificar exemplos de código JSON.

Os procedimentos neste tutorial foram criados para impedir que novos usuários utilizem operações deAPI que possam excluir permanentemente recursos do Amazon Pinpoint. Os usuários avançados podemremover essa restrição modificando a política que está associada aos seus usuários do IAM.

Recursos usados

Este tutorial inclui exemplos de uso para os seguintes recursos do Amazon Pinpoint:

• Interação com a API do Amazon Pinpoint API usando o Postman

Tempo necessário

Ele levará aproximadamente 15 minutos para ser concluído.

Restrições regionais

3

Page 11: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorPré-requisitos

Não há restrições regionais associadas ao uso desta solução.

Custos pelo uso de recursos

Não há cobrança para criar uma conta da AWS. No entanto, ao implementar esta solução, você pode tercustos de uso da AWS se você usar o Postman para executar uma das seguintes ações:

• Enviar e-mail, SMS ou mensagens de voz ou por push para dispositivos móveis• Criar e enviar campanhas• Usar o recurso de validação de número de telefone

Para obter mais informações sobre as cobranças associadas ao uso do Amazon Pinpoint, consulteDefinição de preço do Amazon Pinpoint.

Pré-requisitosAntes de começar este tutorial, você precisa concluir os seguintes pré-requisitos:

• Você precisa ter uma conta da AWS. Para criar uma conta da AWS, acesse https://console.aws.amazon.com/ e escolha Create a new AWS account (Criar uma conta da AWS).

• A conta que você usa para entrar no Console de gerenciamento da AWS precisa ser capaz de criarpolíticas e funções do IAM.

• É preciso baixar e instalar o Postman no computador. Você pode baixar o Postman no site do Postman.• Depois de instalar o Postman no computador, você deve criar uma conta do Postman. Quando você

inicia o aplicativo do Postman pela primeira vez, é solicitado que você faça login ou crie uma conta.Conclua as instruções mostradas na tela para fazer login na conta (se você já tiver uma) ou para criaruma conta (se você ainda não tiver uma).

Etapa 1: criar políticas e funções do IAMA primeira etapa do uso do Postman para testar a API do Amazon Pinpoint consiste em criar um usuáriodo IAM. Nesta seção, você cria uma política que fornece aos usuários a capacidade de interagir com todosos recursos do Amazon Pinpoint. Depois, você cria uma conta de usuário e anexa a política diretamente aessa conta.

Etapa 1.1: criar uma política do IAMEsta seção mostra como criar uma política do IAM. Usuários e funções que usam essa política podeminteragir com todos os recursos na API do Amazon Pinpoint. Ele também fornece acesso a recursos queestão associados à Amazon Pinpoint Email API, bem como à API de voz e SMS do Amazon Pinpoint.

Para criar a política

1. Faça login no Console de gerenciamento da AWS e abra o console da IAM em https://console.aws.amazon.com/iam/.

2. No painel de navegação, escolha Policies (Políticas) e Create policy (Criar política).3. Na guia JSON, cole o seguinte código.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0",

4

Page 12: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 1: criar políticas e funções do IAM

"Effect": "Allow", "Action": [ "mobiletargeting:Update*", "mobiletargeting:Get*", "mobiletargeting:Send*", "mobiletargeting:Put*", "mobiletargeting:Create*" ], "Resource": [ "arn:aws:mobiletargeting:*:123456789012:apps/*", "arn:aws:mobiletargeting:*:123456789012:apps/*/campaigns/*", "arn:aws:mobiletargeting:*:123456789012:apps/*/segments/*" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "mobiletargeting:TagResource", "mobiletargeting:PhoneNumberValidate", "mobiletargeting:ListTagsForResource", "mobiletargeting:CreateApp" ], "Resource": "arn:aws:mobiletargeting:*:123456789012:*" }, { "Sid": "VisualEditor2", "Effect": "Allow", "Action": [ "ses:TagResource", "ses:Send*", "ses:Create*", "ses:Get*", "ses:List*", "ses:Put*", "ses:Update*", "sms-voice:SendVoiceMessage", "sms-voice:List*", "sms-voice:Create*", "sms-voice:Get*", "sms-voice:Update*" ], "Resource": "*" } ]}

No exemplo anterior, substitua 123456789012 pelo ID exclusivo da sua conta da AWS.

Note

Para proteger os dados na sua conta do Amazon Pinpoint, essa política inclui apenaspermissões que permitem ler, criar e modificar recursos. Ela não inclui permissões quepermitem excluir recursos. Você pode modificar essa política usando o editor visualno console do IAM. Para obter mais informações, consulte Managing IAM Policies(Gerenciamento de políticas do IAM) no Guia do usuário do IAM. Você também pode usar aoperação CreatePolicyVersion na API do IAM para atualizar essa política.Observe também que essa política inclui permissões que permitem a interação com osserviços ses e sms-voice, além do serviço mobiletargeting. As permissões ses esms-voice permitem que você interaja com a Amazon Pinpoint Email API e API de voz eSMS do Amazon Pinpoint, respectivamente. As permissões mobiletargeting permitemque você interaja com a API do Amazon Pinpoint.

4. Escolha Review policy (Revisar política).

5

Page 13: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 2: configurar o Postman

5. Em Name (Nome), insira um nome para a política, como PostmanAccessPolicy. Escolha Createpolicy (Criar política).

Etapa 1.2: criar um usuário do IAMDepois de criar a política, você pode criar um usuário do IAM e anexar a política a ele. Ao criar o usuário,o IAM fornece um conjunto de credenciais que você pode usar para permitir que o Postman executeoperações da API do Amazon Pinpoint.

Para criar o usuário

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.2. No console do IAM, no painel de navegação, escolha Users (Usuários) e Add user (Adicionar usuário).3. Em Set user details (Definir detalhes do usuário), em User name (Nome do usuário), insira um nome

que identifique a conta do usuário, como PostmanUser.4. Em Select AWS access type (Selecionar o tipo de acesso da AWS), para Access type (Tipo de

acesso), escolha Programmatic access (Acesso programático). Então, escolha Próximo: Permissões.5. Em Set permissions (Definir permissões), selecione Attach existing policies directly (Anexar políticas

existentes diretamente). Na lista de políticas, escolha a política que você criou na Etapa 1.1 (p. 4).Em seguida, escolha Next: tags (Próximo: tags).

6. Na página Add tags (Adicionar tags), você tem a opção de adicionar tags que ajudam a identificar ousuário. Para obter mais informações sobre como usar tags, consulte Marcar usuários e funções doIAM no Guia do usuário do IAM. Então, escolha Próximo: Análise.

7. Na página Review (Revisar), verifique e confirme as configurações do usuário. Quando você estiverpronto para criar o usuário, escolha Create user (Criar usuário).

8. Na página Success (Bem-sucedido), copie as credenciais mostradas nas colunas Access key ID (IDde chave de acesso) e Secret access key (Chave de acesso secreta).

Note

É necessário fornecer o ID de chave de acesso e a chave de acesso secreta posteriormenteneste tutorial. Como se trata da única vez que você pode ver a chave de acesso secreta,você deve copiá-la e salvá-la em um local seguro.

Etapa 2: configurar o PostmanAgora que você criou uma conta de usuário do IAM que pode acessar a API do Amazon Pinpoint, épossível configurar o Postman. Nesta seção, você cria um ou mais ambientes no Postman. Em seguida,importe uma coleção que contenha um modelo de solicitação para cada uma das operações na API doAmazon Pinpoint.

Etapa 2.1: criar ambientes do PostmanNo Postman, um ambiente é um conjunto de variáveis que são armazenadas como pares chave/valor.Você pode usar ambientes para alterar rapidamente a configuração das solicitações feitas por meio doPostman, sem precisar alterar as próprias solicitações da API.

Nesta seção, você cria pelo menos um ambiente para usar com o Amazon Pinpoint. Cada ambienteque você cria contém um conjunto de variáveis que são específicas para sua conta em uma únicaregião da AWS. Se você usar os procedimentos nesta seção para criar mais de um ambiente, poderáalternar facilmente entre regiões, escolhendo um ambiente diferente no menu Environment (Ambiente) noPostman.

6

Page 14: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 2: configurar o Postman

Para criar um ambiente

1. No Postman, no menu File (Arquivo), escolha New (Novo).2. Na janela Create New (Criar novo), escolha Environment (Ambiente).3. Na janela MANAGE ENVIRONMENTS (GERENCIAR AMBIENTES), de Environment Name (Nome

do ambiente), insira Amazon Pinpoint - Region Name. Substitua Region Name (Nome daregião) por um dos seguintes valores:

• Leste dos EUA (Norte da Virgínia)• Oeste dos EUA (Oregon)• Ásia Pacífico (Mumbai)• Ásia-Pacífico (Sydney)• Europa (Frankfurt)• Europa (Irlanda)

4. Crie seis novas variáveis: endpoint, region, serviceName, accountId, accessKey esecretAccessKey. Use a tabela a seguir para determinar qual valor inserir na coluna Initial Value(Valor inicial) para cada variável.

Região Variável Valor inicial

endpoint pinpoint.us-east-1.amazonaws.com

region us-east-1

serviceName mobiletargeting

accountId (seu ID da conta da AWS)

accessKey (Seu ID de chave de acesso daIAM)

Leste dos EUA(Norte da Virgínia)

secretAccessKey (Sua chave de acesso secretada IAM)

 

endpoint pinpoint.us-west-2.amazonaws.com

region us-west-2

serviceName mobiletargeting

accountId (seu ID da conta da AWS)

accessKey (Seu ID de chave de acesso daIAM)

Oeste dos EUA (Oregon)

secretAccessKey (Sua chave de acesso secretada IAM)

 

endpoint pinpoint.ap-south-1.amazonaws.comÁsia Pacífico (Mumbai)

region ap-south-1

7

Page 15: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 2: configurar o Postman

Região Variável Valor inicial

serviceName mobiletargeting

accountId (seu ID da conta da AWS)

accessKey (Seu ID de chave de acesso daIAM)

secretAccessKey (Sua chave de acesso secretada IAM)

 

endpoint pinpoint.ap-southeast-2.amazonaws.com

region ap-southeast-2

serviceName mobiletargeting

accountId (seu ID da conta da AWS)

accessKey (Seu ID de chave de acesso daIAM)

Ásia-Pacífico (Sydney)

secretAccessKey (Sua chave de acesso secretada IAM)

 

endpoint pinpoint.eu-central-1.amazonaws.com

region eu-central-1

serviceName mobiletargeting

accountId (seu ID da conta da AWS)

accessKey (Seu ID de chave de acesso daIAM)

Europa (Frankfurt)

secretAccessKey (Sua chave de acesso secretada IAM)

 

endpoint pinpoint.eu-west-1.amazonaws.com

region eu-west-1

serviceName mobiletargeting

accountId (seu ID da conta da AWS)

accessKey (Seu ID de chave de acesso daIAM)

Europa (Irlanda)

secretAccessKey (Sua chave de acesso secretada IAM)

8

Page 16: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 2: configurar o Postman

Depois de criar essas variáveis, a janela MANAGE ENVIRONMENTS (GERENCIAR AMBIENTES) ésemelhante ao exemplo mostrado na imagem a seguir.

Ao concluir, escolha Add (Adicionar).

9

Page 17: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 2: configurar o Postman

Important

As chaves de acesso mostradas na imagem anterior são fictícias. Nunca compartilhe suaschaves de acesso do IAM com outras pessoas.O Postman inclui recursos que permitem compartilhar e exportar ambientes. Se você usaresses recursos, tenha o cuidado de não compartilhar seu ID de chave de acesso e chave deacesso secreta com ninguém que não tenha acesso a essas credenciais.Para obter mais informações, consulte Melhores práticas do IAM no Guia do usuário do IAM.

5. (Opcional) Repita as etapas 1–4 para cada ambiente adicional que você deseja criar.

Tip

No Postman, você pode criar quantos ambientes forem necessários. Você pode usarambientes de várias maneiras. Por exemplo, você pode fazer o seguinte:

• Crie um ambiente separado para cada região onde você precisa testar a API do AmazonPinpoint.

• Crie ambientes associados a diferentes contas da AWS.• Crie ambientes que usam credenciais associadas a outros usuários do IAM.

6. Ao terminar de criar ambientes, vá para a próxima seção.

Etapa 2.2: criar uma coleção do Amazon Pinpoint no PostmanNo Postman, uma coleção é um grupo de solicitações de API. Solicitações em uma coleção geralmentesão unidas por um propósito comum. Nesta seção, você cria uma coleção que contém um modelo desolicitação para cada operação na API do Amazon Pinpoint.

Para criar a coleção do Amazon Pinpoint

1. No Postman, no File (Arquivo), escolha Import (Importar).2. Na janela Import (Importar), escolha Import From Link (Importar do link) e insira o seguinte URL:

https://raw.githubusercontent.com/awsdocs/amazon-pinpoint-developer-guide/master/Amazon%20Pinpoint.postman_collection.json.

Escolha Import (Importar). O Postman importa a coleção do Amazon Pinpoint, que contém 120solicitações de exemplo.

Etapa 2.3: testar a configuração do PostmanDepois de importar a coleção do Amazon Pinpoint, você deve executar um teste rápido para garantir quetodos os componentes estejam configurados corretamente. Você pode testar sua configuração enviandouma solicitação GetApps. Essa solicitação retorna uma lista de todos os projetos existentes na sua contado Amazon Pinpoint na região atual da AWS. Como essa solicitação não exige nenhuma configuraçãoadicional, trata-se de uma boa maneira de testar rapidamente sua configuração.

Para testar a configuração da coleção do Amazon Pinpoint

1. No painel de navegação, expanda a coleção do Amazon Pinpoint e expanda a pasta Apps(Aplicativos).

2. Na lista de solicitações, escolha GetApps.

10

Page 18: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 2: configurar o Postman

3. Use o seletor Environment (Ambiente) para escolher o ambiente que você criou na Etapa2.1 (p. 6), conforme mostrado na imagem a seguir.

4. Selecione Send (Enviar). Se a solicitação for enviada com sucesso, o painel de resposta mostrará umstatus de 200 OK. Você verá uma resposta que é semelhante ao exemplo na imagem a seguir.

11

Page 19: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 2: configurar o Postman

Essa resposta mostra uma lista de todos os projetos do Amazon Pinpoint que existem na sua conta naregião escolhida na etapa 3.

Solução de problemas

Ao enviar sua solicitação, talvez você veja um erro. Consulte a lista a seguir para ver vários erros comunsque você pode encontrar e as etapas que você pode seguir para resolvê-los.

Mensagem de erro Problema Resolução

Could not get any response

There was an error connectingto https://%7B%7Bendpoint%7D%7D/v1/apps.

Não há um valor atual para avariável {{endpoint}}, que édefinida quando você escolhe umambiente.

Use o seletor de ambiente paraescolher um ambiente.

O token de segurança incluído nasolicitação é inválido.

O Postman não conseguiuencontrar o valor atual de seu IDde chave de acesso ou chave deacesso secreta.

Escolha o ícone de engrenagemperto do seletor de ambientee escolha o ambiente atual.Certifique-se de que osvalores accessKey esecretAccessKey apareçamnas colunas INITIAL VALUE

12

Page 20: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: Enviar solicitações adicionais

Mensagem de erro Problema Resolução(VALOR INICIAL) e CURRENTVALUE (VALOR ATUAL) eque você tenha inserido ascredenciais corretamente.

"Message": "User:arn:aws:iam::123456789012:user/PinpointPostmanUser isnot authorized to perform:mobiletargeting:GetAppson resource:arn:aws:mobiletargeting:us-west-2:123456789012:*"

A política do IAM associadaao seu usuário não incluem aspermissões apropriadas.

Certifique-se de que seu usuáriodo IAM tenha as permissõesdescritas na Etapa 1.1 (p. 4)e forneça as credenciais corretasao criar o ambiente na Etapa2.1 (p. 6).

Etapa 3: Enviar solicitações adicionaisAo terminar de configurar e testar o Postman, você poderá começar a enviar solicitações adicionais paraa API do Amazon Pinpoint. Esta seção inclui informações que você precisa saber antes de iniciar o enviode solicitações. Ela também inclui dois exemplos de solicitações que ajudam você a entender como usar acoleção de Amazon Pinpoint.

Important

Ao concluir os procedimentos desta seção, você enviará solicitações para a API do AmazonPinpoint. Essas solicitações são capazes de criar recursos em sua conta do Amazon Pinpoint,modificar recursos existentes, enviar mensagens, alterar a configuração de seus projetos doAmazon Pinpoint e usar outros recursos do Amazon Pinpoint. Tenha cuidado ao executar essassolicitações.

Sobre os exemplos na coleção do Amazon Pinpoint PostmanVocê precisa configurar a maioria das operações na coleção do Amazon Pinpoint Postman para usá-las.Para as operações GET e DELETE, normalmente, você só precisa modificar as variáveis definidas na guiaPre-request Script (Script de pré-solicitação).

Note

Ao usar a política do IAM que é mostrada na Etapa 1.1 (p. 4), você não pode executarnenhuma das solicitações DELETE incluídas nesta coleção.

Por exemplo, a operação GetCampaign exige que você especifique um projectId e um campaignId.Na guia Pre-request Script (Script de pré-solicitação), essas variáveis estão presentes e são preenchidascom valores de exemplo. Exclua os valores de exemplo e substitua-os pelos valores apropriados para acampanha e o projeto do Amazon Pinpoint.

Dessas variáveis, a mais comumente usada é a variável projectId. O valor dessa variável deve sero identificador exclusivo para o projeto ao qual sua solicitação se aplica. Para obter uma lista dessesidentificadores para seus projetos, consulte a resposta à solicitação GetApps que você enviou na etapaanterior deste tutorial. (No Amazon Pinpoint, um "projeto" é a mesma coisa que um "app" ou "aplicativo".)Nessa resposta, o campo Id fornece o identificador exclusivo para um projeto. Para saber mais sobre aoperação GetApps e o significado de cada campo na resposta, consulte Aplicativos no Referência de APIdo Amazon Pinpoint.

Para as operações POST e PUT, você também precisa modificar o corpo da solicitação para incluir osvalores que você deseja enviar para a API. Por exemplo, quando envia uma solicitação CreateApp (que

13

Page 21: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: Enviar solicitações adicionais

é uma solicitação POST), é necessário especificar um nome para o projeto que você criar. É possívelmodificar a solicitação na guia Body (Corpo). Neste exemplo, substitua o valor ao lado de "Name" pelonome do projeto. Se quiser adicionar tags ao projeto, especifique-os no objeto tags. Ou, se não desejaradicionar tags, exclua todo o objeto tags.

Note

A operação UntagResource também exige que você especifique parâmetros de URL. Vocêpode especificar esses parâmetros na guia Params (Parâmetros). Substitua os valores na colunaVALUE (Valor) pelas tags que você deseja excluir para o recurso especificado.

Exemplo de solicitação: Criação de um projeto com a operaçãoCreateApp

Antes de criar segmentos e campanhas no Amazon Pinpoint, primeiro você precisa criar um projeto.No Amazon Pinpoint, um projeto consiste em segmentos, campanhas, configurações e dados que sãounidos por uma finalidade comum. Por exemplo, você pode usar um projeto para conter todo o conteúdorelacionado a um determinado aplicativo ou a uma marca ou iniciativa de marketing específica. Quandovocê adiciona informações do cliente ao Amazon Pinpoint, essas informações são associadas a umprojeto.

Para criar um projeto enviando uma solicitação de API CreateApp

1. No menu Environments (Ambientes), selecione a região da AWS na qual você deseja criar o projeto,conforme mostrado na imagem a seguir.

2. Na pasta Apps (Aplicativos), escolha a operação CreateApp, conforme mostrado na imagem a seguir.

14

Page 22: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: Enviar solicitações adicionais

3. Na guia Body (Corpo), ao lado de "Name", substitua o valor do espaço reservado ("string") por umnome para a campanha, como "MySampleProject".

4. Exclua a vírgula depois do nome da campanha e, depois, exclua o objeto tags inteiro nas linhas de 3a 5. Ao terminar, sua solicitação deverá se parecer com o exemplo mostrado na imagem a seguir.

5. Selecione Send (Enviar). Se a campanha for criada com êxito, o painel de resposta mostrará o status201 Created. Você verá uma resposta que é semelhante ao exemplo na imagem a seguir.

15

Page 23: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: Enviar solicitações adicionais

Exemplo: Como enviar um e-mail usando a operaçãoSendMessages

É muito comum usar a API do Amazon Pinpoint SendMessages para enviar mensagens transacionais.Uma vantagem de enviar mensagens usando a API SendMessages (em vez de criar campanhas), éque você pode usar a API SendMessages para enviar mensagens para qualquer endereço (como umendereço de e-mail, número de telefone ou token de dispositivo). O endereço para o qual você enviarmensagens não precisará existir em sua conta do Amazon Pinpoint. Compare isso com o envio demensagens por meio da criação de campanhas. Antes de enviar uma campanha no Amazon Pinpoint,você precisa adicionar endpoints à sua conta do Amazon Pinpoint, criar segmentos, criar e executar acampanha.

O exemplo nesta seção mostra como enviar uma mensagem de e-mail transacional diretamente para umdeterminado endereço de e-mail. Você pode modificar essa solicitação para enviar mensagens por meiode outros canais, como SMS, push ou voz para dispositivos móveis.

Para enviar uma mensagem de e-mail enviando uma solicitação SendMessages

1. Verifique o endereço de e-mail ou o domínio que você deseja usar para enviar a mensagem. Paraobter mais informações, consulte Verificação de identidades de e-mail no Guia do usuário do AmazonPinpoint.

Note

No Amazon Pinpoint, você só pode enviar e-mails de endereços ou domínios verificados.Você só poderá concluir o procedimento nesta seção quando verificar um endereço de e-mail.

2. No menu Environments (Ambientes), selecione a região da AWS da qual deseja enviar a mensagem,conforme mostrado na imagem a seguir.

16

Page 24: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: Enviar solicitações adicionais

3. Na pasta Messages (Mensagens), escolha a operação SendMessages.

17

Page 25: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: Enviar solicitações adicionais

4. Na guia Pre-request Script (Script de pré-solicitação), substitua o valor da variável projectId pelo IDde um projeto que já existe na região que você selecionou na etapa 2 desta seção.

5. Na guia Body (Corpo), exclua a solicitação de exemplo que é mostrada no editor de solicitações. Coleo seguinte código:

{ "MessageConfiguration":{ "EmailMessage":{ "FromAddress":"[email protected]", "SimpleEmail":{ "Subject":{ "Data":"Sample Amazon Pinpoint message" }, "HtmlPart":{ "Data":"<h1>Test message</h1><p>This is a sample message sent from <a href=\"https://aws.amazon.com/pinpoint\">Amazon Pinpoint</a> using the SendMessages API.</p>" }, "TextPart":{ "Data":"This is a sample message sent from Amazon Pinpoint using the SendMessages API." } } } }, "Addresses":{ "[email protected]": { "ChannelType": "EMAIL" } }}

6. No código anterior, substitua [email protected] pelo endereço de e-mail verificado. [email protected] pelo endereço para o qual você deseja enviar a mensagem.

Note

Se sua conta ainda estiver na sandbox de e-mails do Amazon Pinpoint, você só poderáenviar e-mails de endereços ou domínios verificados na sua conta do Amazon Pinpoint. Paraobter mais informações sobre como remover a conta da sandbox, consulte Como solicitaracesso de produção para e-mail no Guia do usuário do Amazon Pinpoint.

7. Selecione Send (Enviar). Se a mensagem for enviada com êxito, o painel de respostas mostrará ostatus 200 OK. Você verá uma resposta que é semelhante ao exemplo na imagem a seguir.

18

Page 26: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorImportação de dados de fontes externas

Tutorial: importação de dados para o AmazonPinpoint de fontes externas

Antes de criar segmentos e enviar mensagens de campanha, você precisa criar endpoints. No AmazonPinpoint, endpoints são destinos aos quais você envia mensagens, como endereços de e-mail,identificadores de dispositivos móveis ou números de telefones celulares. Há várias maneiras de adicionarendpoints ao Amazon Pinpoint. Por exemplo, seus aplicativos da web ou para dispositivos móveis podemusar um AWS Mobile SDK para gravar automaticamente os dados do endpoint no Amazon Pinpoint.

Se preferir, você pode importar listas de clientes existentes para o Amazon Pinpoint usando o consoleou usando a operação da API CreateImportJob. Contudo, ao criar uma tarefa de importação, os arquivosimportados precisam ser formatados de forma que o Amazon Pinpoint possa interpretar. Além disso, se osdados que você deseja importar incluem vários métodos de contato (como endereços de e-mail e númerosde telefone) para cada cliente, você deve criar endpoints separados para cada método de contato. Vocêpode unir esses endpoints, aplicando um atributo de ID de usuário comum a cada um.

A solução descrita neste tutorial destina-se a simplificar o processo de trazer informações do cliente parao Amazon Pinpoint usando um sistema externo, como Salesforce, Segment, Braze ou Adobe MarketingCloud. Este tutorial inclui um pequeno arquivo de amostra baseado em dados que foram originalmenteexportados do Salesforce.

Note

A AWS e o Amazon Pinpoint não estão associados a nenhum dos produtos ou serviçosmencionados no parágrafo anterior. Para saber mais sobre como exportar dados dessessistemas, consulte a documentação oficial:

• Salesforce: consulte Criando um relatório personalizado no site do Salesforce.

19

Page 27: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorImportação de dados de fontes externas

• Segment: consulte What are my data export options? (Quais são minhas opções de exportaçãode dados?) no site do Segment.

• Braze: consulte Exporting to CSV (Exportação para CSV) no User Guide (Guia do usuário) nosite do Braze.

• Adobe Marketing Cloud: consulte Exporting Data Using Segment Export (Exportação de dadosusando Segment Export) no site Adobe Experience Cloud Help.

Depois de implementar essa solução, você pode enviar facilmente os dados do cliente para o AmazonPinpoint carregando o seu arquivo de origem em um bucket específico do Amazon S3. Quando vocêadiciona um novo arquivo de origem ao bucket do Amazon S3, o Amazon S3 aciona uma função do AWSLambda. Essa função divide o arquivo de origem em vários arquivos menores e move esses arquivos paraum segundo bucket do Amazon S3. Quando os arquivos são adicionados ao segundo bucket do AmazonS3, ele aciona outra função Lambda.

A segunda função processa cada um dos arquivos de entrada menores, fazendo o seguinte:

• Ele cria um registro separado para cada endpoint (endereço de e-mail, número de telefone) queencontra no arquivo.

• Ele altera os cabeçalhos na planilha de entrada para os nomes de registros esperados pelo AmazonPinpoint.

• Ele usa o recurso de validação do número de telefone do Amazon Pinpoint para formatar corretamenteos números de telefone encontrados. Se o serviço de validação do número de telefone descobrir que umnúmero de telefone pode receber mensagens SMS, ele criará o endpoint como um endpoint de SMS.Caso contrário, ele cria o endpoint como um endpoint de voz.

• Ele altera alguns dados para usar o formato esperado pelo Amazon Pinpoint. Por exemplo, o AmazonPinpoint espera que você especifique nomes de países no formato ISO 3166 alpha-2. Se sua entradaincluir nomes de países, essa função os converterá automaticamente no formato correto. Além disso, oAmazon Pinpoint espera que você especifique números de telefone no formato E.164. Ele obtém essevalor da etapa de validação do número de telefone.

• Ele armazena os arquivos processados em um terceiro bucket do Amazon S3.

Como essa função processa apenas uma pequena seção de seus dados, ela pode ser executadarapidamente toda vez que é invocada. Além disso, cada instância da função é executada simultaneamente,o que possibilita processar grandes quantidades de dados em um período de tempo relativamente curto.

Quando os arquivos são adicionados ao terceiro e último bucket do Amazon S3, uma função Lambdaadicional é acionada. Essa função usa os arquivos processados para criar tarefas de importação noAmazon Pinpoint. Quando essas tarefas de importação são concluídas, você pode começar a enviarcampanhas para os endpoints importados.

O diagrama a seguir mostra o fluxo de dados nesta solução.

Público-alvo

Este tutorial é destinado a desenvolvedores e implementadores de sistemas. Você não precisa estarfamiliarizado com o Amazon Pinpoint para concluir as etapas deste tutorial.

Para implementar a solução descrita neste tutorial, você precisa instalar o Python e o gerenciador depacotes PIP no seu computador. Isso permite que você baixe alguns dos pacotes necessários. Este tutorialinclui todo o código necessário para concluí-lo. Contudo, para que essa solução funcione no seu caso deuso específico, talvez seja necessário modificar alguns dos códigos Python incluídos no tutorial. Por fim,você precisa criar novas políticas e usuários do IAM

Recursos usados

20

Page 28: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorImportação de dados de fontes externas

Este tutorial mostra como importar dados do cliente usando funções Lambda personalizadas paraprocessar seus dados. Além de modificar o formato de alguns dos dados em seus arquivos de origem, asolução descrita neste tutorial também usa o serviço de validação de número de telefone incorporado noAmazon Pinpoint.

Depois que os dados são processados, uma função do Lambda importa seus dados do cliente para oAmazon Pinpoint usando a operação da API CreateImportJob.

Tempo necessário

Deve levar 60–90 minutos para concluir os procedimentos deste tutorial. No entanto, você deve planejargastar mais tempo personalizando essa solução para se adequar ao seu caso de uso exclusivo.

Restrições regionais

Não há restrições regionais associadas ao uso desta solução.

Custos pelo uso de recursos

Não há cobrança para criar uma conta da AWS. Contudo, ao implementar essa solução, pode haveralguns ou todos os custos listados na tabela a seguir.

Descrição Custo (dólares americanos)

Uso do Lambda Essa solução usa três funções Lambda queinteragem com a API do Amazon Pinpoint. Quandovocê chama uma função Lambda, você é cobradocom base no número de solicitações de suasfunções, pelo tempo para execução de seu códigoe pela quantidade de memória usada por suasfunções. O número de solicitações, a quantidadede tempo de computação e a quantidade dememória necessária dependem do número deregistros que você está importando.

O uso de Lambda na implementação dessasolução pode ser incluído no nível gratuito daAWS. Para obter mais informações, consulteDefinição de preço do AWS Lambda.

Uso do Amazon S3 Você paga 0,023–0,025 USD por GB de dados quevocê armazena no Amazon S3, dependendo dequal região da AWS você usa. Você também paga0,005–0,0055 USD, dependendo da região, paracada 1.000 solicitações PUT feitas para o AmazonS3.

O uso de Amazon S3 na implementação dessasolução pode ser incluído no nível gratuito daAWS. Para obter mais informações, consulteDefinição de preço do Amazon Simple StorageService.

Uso de validação do número de telefone A solução neste tutorial usa o recurso de validaçãodo número de telefone no Amazon Pinpointpara verificar se cada número de telefone emseus dados recebidos é válido e formatadocorretamente.

21

Page 29: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorPré-requisitos

Descrição Custo (dólares americanos)Você paga 0,006 USD para cada solicitação devalidação de número de telefone. Este tutorialinclui um arquivo de amostra que contém 10endpoints. Toda vez que você executar a soluçãomostrada neste tutorial, haverá uma cobrança de0,06 USD pelo uso do serviço de validação donúmero de telefone.

Pré-requisitosAntes de começar este tutorial, conclua os seguintes pré-requisitos:

• Crie uma conta da AWS, se você ainda não tiver uma. Para criar uma conta da AWS, acesse https://console.aws.amazon.com/ e escolha Create a new AWS account (Criar uma conta da AWS).

• Certifique-se de que a conta que você usa para entrar no Console de gerenciamento da AWS possacriar novas políticas e funções do IAM. Se não tiver certeza, pergunte ao administrador do sistema.

• Baixe e instale o Python e o gerenciador de pacotes PIP no seu computador. Essa solução foi testadausando Python versão 3.7.3 e PIP versão 19.0.3. Para obter mais informações sobre como baixar einstalar o Python e o PIP, consulte o Beginner's Guide to Python (Guia de iniciantes para o Python) nosite do Python.

• Crie um projeto em sua conta do Amazon Pinpoint ou identifique um projeto existente para o qualvocê deseja importar segmentos. Para obter mais informações sobre a criação de projetos, consulteConceitos básicos do Amazon Pinpoint no Guia do usuário do Amazon Pinpoint.

Etapa 1: criar um bucket do Amazon S3Nesta solução, você carrega os arquivos que deseja importar para uma pasta input em um bucket doAmazon S3. Quando você carrega um arquivo nessa pasta, o Amazon S3 aciona uma função Lambda.Essa função move o arquivo de entrada para uma pasta archive. Ela também cria vários arquivosmenores em uma pasta to_process. A primeira etapa na implementação dessa solução consiste em criarum bucket do Amazon S3. Em seguida, você cria uma pasta input nesse bucket.

Etapa 1.1: criar um bucket do Amazon S3 e uma pasta deentradaConclua o procedimento a seguir para criar um bucket do Amazon S3 que contenha uma pasta chamadainput.

Para criar um bucket do Amazon S3

1. Abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.2. Selecione Create bucket (Criar bucket).3. Em Bucket name (Nome do bucket), insira um nome exclusivo para o bucket, conforme mostrado na

imagem a seguir.

22

Page 30: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 1: criar um bucket do Amazon S3

23

Page 31: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 2: crie funções do IAM

Tip

O nome que você especifica deve atender a todos os requisitos a seguir:

• Deve ser exclusivo em todos os AWS.• Deve conter pelo menos três caracteres e não mais que 63 caracteres.• Pode conter apenas letras ASCII minúsculas (a–z), números (0–9), pontos (.) e traços (-).• O primeiro caractere no nome do bucket precisa ser uma letra ou um número.• O nome do bucket não pode ser formatado como um endereço IP (como 192.0.2.0).

4. Escolha Create (Criar).5. Na lista de buckets, escolha o bucket que você acabou de criar.6. Escolha Create folder (Criar pasta).7. Para o nome da pasta, insira input, conforme mostrado na imagem a seguir. Escolha Save (Salvar).

Etapa 2: crie funções do IAMA próxima etapa na implementação dessa solução é configurar políticas e funções no AWS Identity andAccess Management (IAM). Para essa solução, você precisa criar as seguintes funções e políticas:

24

Page 32: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 2: crie funções do IAM

• Uma função que pode ler e gravar usando um conjunto específico de buckets do Amazon S3.• Uma função que pode ser transmitida para o Amazon Pinpoint que permite que o Amazon Pinpoint

importe dados do segmento do seu bucket do Amazon S3 quando você cria uma tarefa de importação.• Uma política que pode executar determinadas ações em sua conta do Amazon Pinpoint.

As políticas criadas nesta seção usam o princípio de conceder o privilégio mínimo. Em outras palavras,eles concedem apenas as permissões específicas necessárias para concluir uma tarefa específica e nãomais.

Etapa 2.1: criar uma política e uma função para leitura egravação no Amazon S3A primeira política que você precisa criar é aquela que permite ao Lambda visualizar o conteúdo de umapasta em um bucket do Amazon S3. Ela também permite que o Lambda leia arquivos nesse bucket e movaesses arquivos para outras pastas no mesmo bucket.

Para criar a política

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.2. No painel de navegação, escolha Policies (Políticas) e Create policy (Criar política).3. Na guia JSON, cole o seguinte código:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "logs:CreateLogStream", "s3:ListBucket", "s3:DeleteObject", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:*", "arn:aws:s3:::bucket-name/*", "arn:aws:s3:::bucket-name" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "logs:CreateLogGroup", "Resource": "arn:aws:logs:*:*:*" }, { "Sid": "VisualEditor2", "Effect": "Allow", "Action": [ "s3:GetAccountPublicAccessBlock", "s3:ListAllMyBuckets", "s3:HeadBucket" ], "Resource": "*" } ]

25

Page 33: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 2: crie funções do IAM

}

No exemplo anterior, substitua bucket-name pelo nome do bucket que você criou na Etapa1 (p. 22) deste tutorial.

4. Escolha Review policy (Revisar política).5. Em Name (Nome), insira ImporterS3Policy. Escolha Create policy (Criar política).

Quando você terminar de criar a política, poderá criar uma função que a utilize.

Para criar a função

1. No painel de navegação, escolha Roles (Funções) e Create role (Criar função).2. Em Choose the service that will use this role (Escolher o serviço que usará esta função), selecione

Lambda e Next: Permissions (Próximo: permissões).3. Em Attach permissions policies (Anexar políticas de permissões), escolha ImporterS3Policy e depois

Next: Tags (Próximo: Tags).4. Selecione Next: Review (Próximo: análise).5. Na página Review (Revisar), em Name (Nome), insira ImporterS3Role. Selecione Create role (Criar

função).

Etapa 2.2: criar uma política e função para importar do AmazonS3Para usar a operação da API CreateImportJob, você precisa fornecer uma função do IAM que permitaque o Amazon Pinpoint leia e grave em seu bucket do Amazon S3. Essa função deve ser transmitida desua função de usuário para o Amazon Pinpoint. Para permitir que a função seja transmitida para o AmazonPinpoint, você precisa adicionar uma política de confiança à função.

Para criar a política

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.2. No painel de navegação, escolha Policies (Políticas) e Create policy (Criar política).3. Na guia JSON, cole o seguinte código:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutAccountPublicAccessBlock", "s3:GetAccountPublicAccessBlock", "s3:ListAllMyBuckets", "s3:HeadBucket" ], "Resource": "*" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::bucket-name/*", "arn:aws:s3:::bucket-name"

26

Page 34: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 2: crie funções do IAM

] } ]}

No exemplo anterior, substitua bucket-name pelo nome do bucket que você criou na Etapa1 (p. 22) deste tutorial.

4. Escolha Review policy (Revisar política).5. Em Name (Nome), insira ImporterS3PassthroughPolicy. Escolha Create policy (Criar política).

Em seguida, você cria uma função que usa essa política e anexa uma política de confiança à função.

Para criar a política de função e confiança

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.2. No painel de navegação, escolha Roles (Funções) e Create role (Criar função).3. Em Choose the service that will use this role (Escolher o serviço que usará esta função), selecione

Lambda e Next: Permissions (Próximo: permissões).4. Em Attach permissions policies (Anexar políticas de permissões), escolha

ImporterS3PassthroughPolicy e depois Next: Tags (Próximo: Tags).5. Selecione Next: Review (Próximo: análise).6. Na página Review (Revisar), em Name (Nome), insira PinpointSegmentImport. Selecione Create

role (Criar função).7. Na lista de funções, selecione a função PinpointSegmentImport recém-criada.8. Na guia Trust relationships (Relações de confiança), escolha Edit trust relationship (Editar relação de

confiança).9. Remova o código no editor de políticas e cole o código a seguir:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "pinpoint.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

10. Selecione Update trust policy (Atualizar política de confiança).

Etapa 2.3: criar uma política e função para usar recursos doAmazon PinpointA próxima política que você precisa criar é aquela que permite ao Lambda interagir com o AmazonPinpoint. Especificamente, essa política permite que o Lambda chame o serviço de validação de númerosde telefone do Amazon Pinpoint e crie tarefas de importação no Amazon Pinpoint. Ela também permite queo Amazon Pinpoint leia do seu bucket do Amazon S3 quando você cria uma tarefa de importação.

Para criar a política

1. No painel de navegação, escolha Policies (Políticas) e Create policy (Criar política).

27

Page 35: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 2: crie funções do IAM

2. Na guia JSON, cole o seguinte código:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "mobiletargeting:CreateImportJob", "mobiletargeting:GetImportJobs", "iam:GetRole", "iam:PassRole" ], "Resource": [ "arn:aws:mobiletargeting:us-east-1:123456789012:apps/01234567890123456789012345678901", "arn:aws:mobiletargeting:us-east-1:123456789012:apps/01234567890123456789012345678901/*", "arn:aws:iam::123456789012:role/PinpointSegmentImport" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "mobiletargeting:PhoneNumberValidate", "Resource": "arn:aws:mobiletargeting:us-east-1:123456789012:phone/number/validate" } ]}

No exemplo anterior, faça o seguinte:

• Substitua us-east-1 pela região da AWS em que você usa o Amazon Pinpoint.• Substitua 123456789012 pelo seu ID de conta da AWS.• Substitua 01234567890123456789012345678901 pelo ID do projeto do Amazon Pinpoint para

o qual você deseja importar contatos. O ID do aplicativo que você especificar deve existir em suaconta do Amazon Pinpoint na região especificada.

Note

Você pode usar curingas em qualquer um desses valores. O uso de curingas torna essapolítica mais flexível, mas também reduz a segurança da política porque ela não estáestritamente em conformidade com o princípio de privilégio mínimo.

3. Escolha Review policy (Revisar política).4. Em Name (Nome), insira ImporterPinpointPolicy. Escolha Create policy (Criar política).

Quando você terminar de criar a política, poderá criar uma função que a utilize. Você também adiciona aImporterS3Policy à função.

Para criar a função

1. No painel de navegação, escolha Roles (Funções) e Create role (Criar função).2. Em Choose the service that will use this role (Escolher o serviço que usará esta função), selecione

Lambda e Next: Permissions (Próximo: permissões).3. Em Attach permissions policies (Anexar políticas de permissões), escolha ImporterS3Policy e

ImporterPinpointPolicy e depois Next: Tags (Próximo: Tags).

28

Page 36: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: empacotar as bibliotecas

4. Selecione Next: Review (Próximo: análise).5. Na página Review (Revisar), em Name (Nome), insira ImporterPinpointRole. Selecione Create

role (Criar função).

Etapa 3: criar um pacote que contenha as bibliotecasnecessárias do PythonA solução documentada neste tutorial usa várias bibliotecas que não estão incluídas no pacote padrão doPython que o Lambda usa. Para usar essas bibliotecas, primeiro é preciso baixá-las no computador. Emseguida, você cria um arquivo .zip que contém todas as bibliotecas. Por fim, você carregue esse arquivono Lambda para poder chamar as bibliotecas de suas funções.

Note

Esse procedimento pressupõe que você já tenha instalado o Python. O Python é incluído porpadrão nas distribuições mais recentes do Linux, macOS, or Unix. Se você usar o Windows,poderá baixar o Python na página Python Releases for Windows (Versões do Python para oWindows) no site do Python. Essa solução foi testada usando o Python versão 3.7.3 no macOSHigh Sierra, Ubuntu 18.04 LTS e Windows Server 2019.

Para baixar as bibliotecas necessárias para este tutorial

1. Na linha de comandos, insira o seguinte comando para instalar o pacote virtualenv:

python -m pip install virtualenv

2. Insira o seguinte comando para criar um diretório para o ambiente virtual:

Linux, macOS, or Unix

mkdir ~/pinpoint-importer

Windows PowerShell

new-item pinpoint-import -itemtype directory

3. Insira o comando a seguir para alterar o diretório do pinpoint-importer:

cd pinpoint-importer

4. Insira o seguinte comando para criar e inicializar um ambiente virtual chamado venv:

python -m virtualenv venv

5. Insira o seguinte comando para ativar o ambiente virtual:

Linux, macOS, or Unix

source venv/bin/activate

Windows PowerShell

.\venv\Scripts\activate

29

Page 37: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 4: criar a função Lambdaque divide os dados de entrada

O prompt de comando é alterado para mostrar que o ambiente virtual está ativo.6. Insira o seguinte comando para instalar os pacotes necessários para este tutorial:

pip install s3fs jmespath s3transfer six python-dateutil docutils

7. Insira o seguinte comando para desativar o ambiente virtual:

deactivate

8. Insira o seguinte comando para criar um arquivamento que contenha as bibliotecas necessárias:

Linux, macOS, or Unix

cd venv/lib/python3.7/site-packages && \zip -r ~/pinpoint-importer/pinpoint-importer.zip dateutil docutils jmespath \s3fs s3transfer six.py && cd -

No comando anterior, substitua 3.7 pela versão do Python instalada no computador.Windows PowerShell

cd .\venv\Lib\site-packages\Compress-Archive -Path dateutil, docutils, jmespath, s3fs, s3transfer, six.py `-DestinationPath ..\..\..\pinpoint-importer.zip ; cd ..\..\..

Etapa 4: criar a função Lambda que divide os dadosde entradaA solução descrita neste tutorial usa três funções Lambda. A primeira função Lambda é acionada quandovocê carrega um arquivo para um bucket específico do Amazon S3. Essa função lê o conteúdo doarquivo de entrada e o divide em partes menores. Outras funções (criadas posteriormente neste tutorial)processam esses arquivos recebidos simultaneamente. O processo simultâneo dos arquivos reduz otempo necessário para importar todos os endpoints para o Amazon Pinpoint.

Etapa 4.1: criar a funçãoPara criar a primeira função Lambda para este tutorial, primeiro é necessário fazer upload do arquivo .zipque você criou na Etapa 3 (p. 29). Em seguida, você configura a própria função.

Para criar a função do Lambda

1. Abra o console do AWS Lambda em https://console.aws.amazon.com/lambda/.2. Selecione Create function (Criar função).3. Escolha Author from scratch (Criar do zero). Em Basic information (Informações básicas), faça o

seguinte:

• Em Function name (Nome da função), insira CustomerImport_ReadIncomingAndSplit.• Em Runtime (Tempo de execução), escolha Python 3.7.• Para Execution role (Função de execução), selecione Use an existing role (Usar uma função

existente).• Em Existing role (Função existente), selecione ImporterS3Role.

30

Page 38: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 4: criar a função Lambdaque divide os dados de entrada

• Selecione Create function (Criar função).4. Em Function code (Código de função), para Code entry type (Tipo de entrada de código), escolha

Upload a .ZIP file (Carregar um arquivo .ZIP). Em Function package (Pacote de funções), escolhaUpload (Carregar). Selecione o arquivo do pinpoint-importer.zip que você criou na Etapa3 (p. 29). Depois de selecionar o arquivo, escolha Save (Salvar).

Note

Depois de escolher Save (Salvar), você recebe uma mensagem de erro informando que oLambda não pôde abrir o arquivo lambda_function.py. Ignore esse erro — você cria estearquivo na próxima etapa.

5. No editor de funções, no menu File (Arquivo), selecione New File (Novo arquivo). O editor cria umarquivo chamado Untitled1.

6. Cole o seguinte código no editor:

import osimport boto3import s3fsfrom botocore.exceptions import ClientError

input_archive_folder = "input_archive"to_process_folder = "to_process"file_row_limit = 50file_delimiter = ','

# S3 bucket infos3 = s3fs.S3FileSystem(anon=False) def lambda_handler(event, context): print("Received event: \n" + str(event)) for record in event['Records']: # Assign some variables that make it easier to work with the data in the # event record. bucket = record['s3']['bucket']['name'] key = record['s3']['object']['key'] input_file = os.path.join(bucket,key) archive_path = os.path.join(bucket,input_archive_folder,os.path.basename(key)) folder = os.path.split(key)[0] s3_url = os.path.join(bucket,folder) output_file_template = os.path.splitext(os.path.basename(key))[0] + "__part" output_path = os.path.join(bucket,to_process_folder) # Set a variable that contains the number of files that this Lambda # function creates after it runs. num_files = file_count(s3.open(input_file, 'r'), file_delimiter, file_row_limit) # Split the input file into several files, each with 50 rows. split(s3.open(input_file, 'r'), file_delimiter, file_row_limit, output_file_template, output_path, True, num_files) # Send the unchanged input file to an archive folder. archive(input_file,archive_path) # Determine the number of files that this Lambda function will create.def file_count(file_handler, delimiter, row_limit): import csv reader = csv.reader(file_handler, delimiter=delimiter) # Figure out the number of files this function will generate. row_count = sum(1 for row in reader) - 1 # If there's a remainder, always round up. file_count = int(row_count // row_limit) + (row_count % row_limit > 0)

31

Page 39: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 4: criar a função Lambdaque divide os dados de entrada

return file_count

# Split the input into several smaller files.def split(filehandler, delimiter, row_limit, output_name_template, output_path, keep_headers, num_files): import csv reader = csv.reader(filehandler, delimiter=delimiter) current_piece = 1 current_out_path = os.path.join( output_path, output_name_template + str(current_piece) + "__of" + str(num_files) + ".csv" ) current_out_writer = csv.writer(s3.open(current_out_path, 'w'), delimiter=delimiter) current_limit = row_limit if keep_headers: headers = next(reader) current_out_writer.writerow(headers) for i, row in enumerate(reader): if i + 1 > current_limit: current_piece += 1 current_limit = row_limit * current_piece current_out_path = os.path.join( output_path, output_name_template + str(current_piece) + "__of" + str(num_files) + ".csv" ) current_out_writer = csv.writer(s3.open(current_out_path, 'w'), delimiter=delimiter) if keep_headers: current_out_writer.writerow(headers) current_out_writer.writerow(row)

# Move the original input file into an archive folder.def archive(input_file, archive_path): s3.copy_basic(input_file,archive_path) print("Moved " + input_file + " to " + archive_path) s3.rm(input_file)

7. No editor de funções, no menu File (Arquivo), selecione Save As (Salvar como). Salve o arquivo comolambda_function.py no diretório raiz da função.

8. Na parte superior da página, escolha Save (Salvar).

Etapa 4.2: testar a funçãoDepois de criar a função, você deve testá-la para verificar se ela está configurada corretamente.

Para testar a função do Lambda

1. Em um editor de texto, crie um arquivo. No arquivo, cole o seguinte texto:

Salutation,First Name,Last Name,Title,Mailing Street,Mailing City,Mailing State/Province,Mailing Zip/Postal Code,Mailing Country,Phone,Email,Contact Record Type,Account Name,Account Owner,Lead SourceMr.,Alejandro,Rosales,Operations Manager,414 Main Street,Anytown,AL,95762,United States,+18705550156,[email protected],Customer,Example Corp.,Richard Roe,WebsiteMs.,Ana Carolina,Silvia,Customer Service Representative,300 First Avenue,Any Town,AK,65141,United States,(727) 555-0128,[email protected],Qualified Lead,AnyCompany,Jane Doe,SeminarMrs.,Juan,Li,Auditor,717 Kings Street,Anytown,AZ,18162,United States,768.555.0122,[email protected],Unqualified Lead,Example Corp.,Richard Roe,Phone

32

Page 40: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 4: criar a função Lambdaque divide os dados de entrada

Dr.,Arnav,Desai,Senior Analyst,782 Park Court,Anytown,AR,27084,United States,+17685550162,[email protected],Customer,Example Corp.,Richard Roe,WebsiteMr.,Mateo,Jackson,Sales Representative,372 Front Street,Any Town,CA,83884,United States,(781) 555-0169,[email protected],Customer,AnyCompany,Jane Doe,SeminarMr.,Nikhil,Jayashankar,Executive Assistant,468 Fifth Avenue,Anytown,CO,75376,United States,384.555.0178,[email protected],Qualified Lead,Example Corp.,Jane Doe,WebsiteMrs.,Shirley,Rodriguez,Account Manager,287 Park Avenue,Any Town,CT,26715,United States,+12455550188,[email protected],Qualified Lead,Example Corp.,Richard Roe,SeminarMs.,Xiulan,Wang,Information Architect,107 Queens Place,Anytown,DE,70710,United States,(213) 555-0192,[email protected],Unqualified Lead,Example Corp.,Richard Roe,PhoneMiss,Saanvi,Sarkar,Director of Finance,273 Sample Boulevard,Any Town,FL,85431,United States,237.555.0121,[email protected],Customer,AnyCompany,Richard Roe,ReferralMr.,Wei,Zhang,Legal Counsel,15 Third Avenue,Any Town,GA,82387,United States,+18065550179,[email protected],Customer,AnyCompany,Jane Doe,Website

Salve o arquivo como testfile.csv.

Note

Esse arquivo contém registros de contatos fictícios. Você só o usa para testar a funçãoLambda que você criou neste tutorial. Depois, você poderá excluir os segmentos que contêmesses dados fictícios.Por enquanto, não adicione nem remova nenhuma coluna do arquivo. Depois de implementara solução mostrada neste tutorial, você pode modificá-la para atender às suas necessidades.

2. Abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.3. Na lista de buckets, escolha o bucket que você criou na Etapa 1 (p. 22) e escolha a pasta input.4. Escolha Upload (Carregar). Carregue o arquivo testfile.csv que você acabou de criar.5. Abra o console do AWS Lambda em https://console.aws.amazon.com/lambda/.6. Na lista de funções, escolha a função CustomerImport_ReadIncomingAndSplit que você criou antes.7. Escolha Test (Testar). Na janela Configure test event (Configurar evento de teste), para Event name

(Nome do evento), insira TestEvent. Depois, no editor, cole o código a seguir.

{ "Records": [ { "s3": { "bucket": { "name": "bucket-name", "arn": "arn:aws:s3:::bucket-name" }, "object": { "key": "input/testfile.csv" } } } ]}

No exemplo anterior, substitua bucket-name pelo nome do bucket do Amazon S3 que você criou naEtapa 1 (p. 22). Ao concluir, selecione Create (Criar).

8. Escolha Test (Testar) novamente. A função é executada com o evento de teste que você forneceu.

Se a função for executada conforme o esperado, prossiga para a próxima etapa.

Se a função não for concluída, faça o seguinte:

• Verifique se você especificou o nome correto do bucket na política do IAM que você criou na Etapa2: crie funções do IAM (p. 24).

33

Page 41: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: criar a função Lambda que

processa os registros recebidos

• Verifique se o evento de teste Lambda que você criou na etapa 7 desta seção se refere ao bucketcorreto e ao nome do arquivo.

• Se você nomeou o arquivo de entrada com algo diferente de testfile.csv, certifique-se de que onome do arquivo não contém espaços.

9. Retorne para o console doAmazon S3. Escolha o bucket que você criou na the section called “Etapa 1:criar um bucket do Amazon S3” (p. 22).

Abra as pastas no bucket e anote o conteúdo de cada uma delas. Se todas as instruções a seguirforem verdadeiras, a função Lambda funcionará conforme o esperado:

• A pasta input não contém nenhum arquivo.• A pasta input_archive contém o arquivo que você carregou na etapa 4 desta seção.• A pasta to_process contém um arquivo chamado testfile__part1__of1.csv.

Não exclua nenhum dos arquivos recém-gerados. A função Lambda que você cria na próxima etapausa os arquivos na pasta to_process.

Etapa 5: criar a função Lambda que processa osregistros recebidosA próxima função Lambda criada por você processa os registros nos arquivos recebidos que foram criadospela função que você criou na Etapa 4 (p. 30). Especificamente, ela faz o seguinte:

• Altera os cabeçalhos no arquivo recebido para valores que o Amazon Pinpoint espera ver.• Converte algumas das informações de contato na planilha de entrada em um formato esperado pelo

Amazon Pinpoint. Por exemplo, o valor "United States" (Estados Unidos) na coluna Mailing Countryé convertido em "US" (EUA) na coluna Location.Country do arquivo de saída. Isso ocorre porque oAmazon Pinpoint espera que os países sejam representados no formato ISO-3166-1.

• Envia todos os números de telefone encontrados para o serviço de validação de números de telefone.Essa etapa garante que todos os números de telefone sejam convertidos no formato E.164. Tambémdetermina o tipo de número de telefone. Números de celular são criados como endpoints de SMS,enquanto todos os outros números de telefone são criados como endpoints de voz.

• Grava linhas diferentes para cada endpoint que encontrar. Por exemplo, se uma linha no arquivo deentrada contiver um número de telefone e um endereço de e-mail, o arquivo de saída conterá uma linhaseparada para cada um desses endpoints. Contudo, os dois registros são unidos por um ID de usuáriocomum.

• Verifica se os IDs de endpoint no arquivo de entrada já existem no projeto do Amazon Pinpoint. Se sim,a função Lambda atualizará os registros existentes em vez de criar outros.

Quando a função termina de processar os arquivos de entrada, ela os envia para uma pasta no diretórioprocessed.

Etapa 5.1: criar a funçãoO processo de criação dessa função é semelhante ao processo que você concluiu na Etapa 4 (p. 30)deste tutorial. Primeiro, você carrega o arquivo .zip que contém as bibliotecas necessárias. Em seguida,você cria dois arquivos Python.

Para criar a função do Lambda

1. Abra o console do AWS Lambda em https://console.aws.amazon.com/lambda/.2. Selecione Create function (Criar função).

34

Page 42: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: criar a função Lambda que

processa os registros recebidos

3. Escolha Author from scratch (Criar do zero). Em Basic information (Informações básicas), faça oseguinte:

• Para Function name (Nome da função), insira CustomerImport_ProcessInput.• Em Runtime (Tempo de execução), escolha Python 3.7.• Para Execution role (Função de execução), selecione Use an existing role (Usar uma função

existente).• Em Existing role (Função existente), selecione ImporterPinpointRole.• Selecione Create function (Criar função).

4. Em Function code (Código de função), para Code entry type (Tipo de entrada de código), escolhaUpload a .ZIP file (Carregar um arquivo .ZIP). Em Function package (Pacote de funções), escolhaUpload (Carregar). Selecione o arquivo do pinpoint-importer.zip que você criou na Etapa3 (p. 29). Depois de selecionar o arquivo, escolha Save (Salvar).

Note

Depois de escolher Save (Salvar), você recebe uma mensagem de erro informando que oLambda não pôde abrir o arquivo lambda_function.py. Ignore esse erro — você cria estearquivo na próxima etapa.

5. No editor de funções, no menu File (Arquivo), selecione New File (Novo arquivo). O editor cria umarquivo chamado Untitled1.

6. Cole o seguinte código no editor:

import ioimport osimport csvimport timeimport uuidimport boto3import s3fsimport input_internationalization as i18nfrom datetime import datetimefrom botocore.exceptions import ClientError

# You might need to change some things to fit your specific needs.

# If incoming data doesn't specify a country, you have to pass a default value.# Specify a default country code in ISO 3166-1 alpha-2 format.defaultCountry = "US"

# The column header names that are applied to the output file. You might need to # change the order of the items in this list to suit the data that's in the file# that you want to import. Column numbers are included as comments here to make it# easier to align the columns.# If you add columns here, you also need to add them in the process_incoming_file# function below. Specifically, you need to add them to the lists that the# Filewriter object uses to write the processed files. See the sections that # begin at lines 137 and 175 below.header = [ #Col num in input 'ChannelType', #not in input 'Address', #9 (phone), 10 (email) 'Id', #9 (phone), 10 (email) 'User.UserAttributes.City', #5 'User.UserAttributes.Region', #6 'User.UserAttributes.PostalCode', #7 'Location.Country', #8 'User.UserAttributes.Salutation', #0 'User.UserAttributes.FirstName', #1 'User.UserAttributes.LastName', #2 'User.UserAttributes.Title', #3 'User.UserAttributes.StreetAddress', #4

35

Page 43: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: criar a função Lambda que

processa os registros recebidos

'User.UserAttributes.ContactRecordType', #11 'User.UserAttributes.AccountName', #12 'User.UserAttributes.AccountOwner', #13 'User.UserAttributes.LeadSource', #14 'User.UserId' #not in input ]

# You probably don't need to change any variables below this point.AWS_REGION = os.environ['region']projectId = os.environ['projectId']processed_folder = "processed"startTime = datetime.now()s3 = s3fs.S3FileSystem(anon=False)

def lambda_handler(event, context): print("Received event: " + str(event)) for record in event['Records']: # Create some variables that make it easier to work with the data in the # event record. bucket = record['s3']['bucket']['name'] key = record['s3']['object']['key'] input_file = os.path.join(bucket,key) output_file_name = os.path.splitext(os.path.basename(input_file))[0] + "_processed.csv" processed_subfolder = os.path.basename(input_file).split("__part",1)[0] output_fullpath = os.path.join(bucket,processed_folder,processed_subfolder,output_file_name) # Start the function that processes the incoming data. process_incoming_file(input_file, output_fullpath)

# Check the current project to see if an endpoint ID already exists.def check_endpoint_exists(endpointId): client = boto3.client('pinpoint',region_name=AWS_REGION)

try: response = client.get_endpoint( ApplicationId=projectId, EndpointId=endpointId ) except ClientError as e: endpointInfo = [ False, "" ] else: userId = response['EndpointResponse']['User']['UserId'] endpointInfo = [ True, userId ]

return endpointInfo

# Change the column names, validate and reformat some of the input, and then # write to output files.def process_incoming_file(input_file, output_file): # Counters for tracking the number of records and endpoints processed. line_count = 0 create_count = 0 update_count = 0 folder = os.path.split(output_file)[0] with s3.open(output_file, 'w', newline='', encoding='utf-8-sig') as outFile: fileWriter = csv.writer(outFile) with s3.open(input_file, 'r', newline='', encoding='utf-8-sig') as inFile: fileReader = csv.reader(inFile) for row in fileReader: # Sleep to prevent throttling errors. time.sleep(.025)

36

Page 44: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: criar a função Lambda que

processa os registros recebidos

# Write the header row. if (line_count == 0): fileWriter.writerow(header) line_count += 1 # Write the rest of the data. else: # Generate a new UUID. userId = str(uuid.uuid4()) # Varibles that make things easier to read. inputEmail = row[10] inputPhone = row[9] inputCountry = row[8] # If a country is included in the incoming record, create a # variable that contains the ISO 3166-1 alpha-2 country code. if inputCountry: country = i18n.get_country_code(inputCountry, defaultCountry) # If no country code is provided, create a variable that contains a # default country code. Change this if you want to use a different # default value. elif not inputCountry: country = defaultCountry if inputEmail: emailEndpointInfo = check_endpoint_exists(inputEmail) if emailEndpointInfo[0]: userId = emailEndpointInfo[1] update_count += 1 else: create_count += 1 fileWriter.writerow([ "EMAIL", row[10], row[10], row[5], #City row[6], #Region row[7], #Postal code country, #Country row[0], #Salutation row[1], #First name row[2], #Last name row[3], #Title row[4], #Street address row[11], #Contact record type row[12], #Account name row[13], #Account owner row[14], #Lead source userId ]) if inputPhone: phoneInfo = i18n.check_phone_number(country, inputPhone, AWS_REGION) cleansedPhone = phoneInfo[0] phoneType = phoneInfo[1] if (phoneType == "MOBILE") or (phoneType == "PREPAID"): phoneType = "SMS" else: phoneType = "VOICE" phoneEndpointInfo = check_endpoint_exists(cleansedPhone)

37

Page 45: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: criar a função Lambda que

processa os registros recebidos

if phoneEndpointInfo[0]: userId = phoneEndpointInfo[1] update_count += 1 else: create_count += 1 fileWriter.writerow([ phoneType, cleansedPhone, cleansedPhone, row[5], #City row[6], #Region row[7], #Postal code country, #Country row[0], #Salutation row[1], #First name row[2], #Last name row[3], #Title row[4], #Street address row[11], #Contact record type row[12], #Account name row[13], #Account owner row[14], #Lead source userId ]) line_count += 1 # Calculate the amount of time the script ran. duration = datetime.now() - startTime # Print the number of records processed. Subtract 1 to account for the header. print("Processed " + str(line_count - 1) + " records in " + str(duration) + ". ", end="") # Print the numbers of endpoints created and updated. print("Found " + str(create_count) + " new endpoints and " + str(update_count) + " existing endpoints.")

s3.rm(input_file)

7. No editor de funções, no menu File (Arquivo), selecione Save As (Salvar como). Salve o arquivo comolambda_function.py no diretório raiz da função.

8. No editor de funções, no menu File (Arquivo), selecione New File (Novo arquivo). O editor cria umarquivo chamado Untitled1.

9. Cole o seguinte código no editor:

import reimport boto3from botocore.exceptions import ClientError

def get_country_code(country, default): # The Location.Country attribute expects an ISO 3166-1 Alpha 2 formatted # country name. This function attempts to identify several possible # variations of each country name and convert them to the required format. # This function exists so that the program doesn't need to rely on non- # standard libraries. Update this section to suit the data in your existing # content management system. # This section includes common aliases for the 10 most populous countries # in the world, and some additional countries where Amazon Pinpoint is often used to # send SMS messages. If necessary, expand this section to include # additional countries, or additional aliases for the countries that are # already listed.

38

Page 46: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: criar a função Lambda que

processa os registros recebidos

country = country.strip().lower()

bangladeshAliases = [ "bd", "bgd", "bangladesh", "########" ] brazilAliases = [ "br", "bra", "brazil", "brasil", "república federativa do brasil" ] canadaAliases = [ "ca", "can", "canada" ] chinaAliases = [ "cn", "chn", "prc", "proc", "china", "people's republic of china", "#######", "##" ] indiaAliases = [ "in", "ind", "india", "republic of india" ] indonesiaAliases = [ "id", "idn", "indonesia", "republic of indonesia", "republik indonesia" ] irelandAliases = [ "ie", "irl", "ireland", "éire" ] japanAliases = [ "jp", "jpn", "japan", "##" ] mexicoAliases = [ "mx", "mex", "mexico", "méxico", "estados unidos mexicanos" ] nigeriaAliases = [ "ng", "nga", "nigeria" ] pakistanAliases = [ "pk", "pak", "pakistan", "#######" ] russiaAliases = [ "ru", "rus", "russian federation", "#######", "########### ##########" ] ukAliases = [ "uk", "gb", "gbr", "united kingdom", "britain", "england", "wales", "scotland", "northern ireland" ] usAliases = [ "us", "usa", "united states", "united states of america" ]

if country in bangladeshAliases: countryISO3166 = "BD" elif country in brazilAliases: countryISO3166 = "BR" elif country in canadaAliases: countryISO3166 = "CA" elif country in chinaAliases: countryISO3166 = "CN" elif country in indiaAliases: countryISO3166 = "IN" elif country in indonesiaAliases: countryISO3166 = "ID" elif country in irelandAliases: countryISO3166 = "IE" elif country in japanAliases: countryISO3166 = "JP" elif country in mexicoAliases: countryISO3166 = "MX" elif country in nigeriaAliases: countryISO3166 = "NG" elif country in pakistanAliases: countryISO3166 = "PK" elif country in russiaAliases: countryISO3166 = "RU" elif country in ukAliases: countryISO3166 = "GB" elif country in usAliases: countryISO3166 = "US" else: countryISO3166 = default

return countryISO3166

def check_phone_number(country, phone, region):

client = boto3.client('pinpoint',region_name=region)

# Phone number validation can generate an E.164-compliant phone number as # long as you provide it with the correct country code. This function looks # for the appropriate country code at the beginning of the phone number. If # the country code isn't present, it adds it to the beginning of the phone # number that was provided to the function, and then sends it to the phone

39

Page 47: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: criar a função Lambda que

processa os registros recebidos

# number validation service. The phone number validation service performs # additional cleansing of the phone number, removing things like # unnecessary leading digits. It also provides metadata, such as the phone # number type (mobile, landline, etc.). # Add more countries and regions to this function if necessary. phone = re.sub("[^0-9]", "", phone)

if (country == 'BD') and not phone.startswith('880'): phone = "+880" + phone elif (country == 'BR') and not phone.startswith('55'): phone = "+55" + phone elif (country == 'CA' or country == 'US') and not phone.startswith('1'): # US and Canada (country code 1) area codes and phone numbers can't use # 1 as their first digit, so it's fine to search for a 1 at the # beginning of the phone number to determine whether or not the number # contains a country code. phone = "+1" + phone elif (country == 'CN') and not phone.startswith('86'): phone = "+86" + phone elif (country == 'IN') and not phone.startswith('91'): phone = "+91" + phone elif (country == 'ID') and not phone.startswith('62'): phone = "+62" + phone elif (country == 'IE') and not phone.startswith('353'): phone = "+353" + phone elif (country == 'JP') and not phone.startswith('81'): phone = "+81" + phone elif (country == 'MX') and not phone.startswith('52'): phone = "+52" + phone elif (country == 'NG') and not phone.startswith('234'): phone = "+234" + phone elif (country == 'PK') and not phone.startswith('92'): phone = "+92" + phone elif (country == 'RU') and not phone.startswith('7'): # No area codes in Russia begin with 7. However, Kazakhstan also uses # country code 7, and Kazakh area codes can begin with 7. If your # contact database contains Kazakh phone numbers, you might have to # use some additional logic to identify them. phone = "+7" + phone elif (country == 'GB') and not phone.startswith('44'): phone = "+44" + phone

try: response = client.phone_number_validate( NumberValidateRequest={ 'IsoCountryCode': country, 'PhoneNumber': phone } ) except ClientError as e: print(e.response) else: returnValues = [ response['NumberValidateResponse']['CleansedPhoneNumberE164'], response['NumberValidateResponse']['PhoneType'] ] return returnValues

10. No editor de funções, no menu File (Arquivo), selecione Save As (Salvar como). Salve o arquivo comoinput_internationalization.py no diretório raiz da função.

11. Em Environment variables (Variáveis de ambiente), faça o seguinte:

• Na primeira linha, crie uma variável com uma chave de projectId. Em seguida, defina o valorpara o ID exclusivo do projeto que você especificou na política do IAM na Etapa 2.2 (p. 27).

40

Page 48: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: criar a função Lambda que

processa os registros recebidos

• Na segunda linha, crie uma variável com uma chave de region. Em seguida, defina o valor para aregião da AWS especificada na política do IAM na Etapa 2.2 (p. 27).

Quando você terminar, a seção Environment Variables (Variáveis de ambiente) deve ser semelhanteao exemplo mostrado na imagem a seguir.

12. Em Basic settings (Configurações básicas), defina o valor Timeout (Tempo limite) para 6 minutos.

Note

Cada chamada para o serviço de validação do número de telefone geralmente leva cercade 0,5 segundos para ser concluída, mas pode demorar mais tempo. Se você não aumentaro valor Timeout (Tempo limite), a função pode expirar antes de concluir o processamentodos registros de entrada. Essa configuração fornece à função Lambda tempo suficiente paraconcluir a execução.

13. Em Concurrency (Simultaneidade), escolha Reserve concurrency (Reservar simultaneidade) e depoisdefina o valor como 20.

Note

Um valor mais alto de simultaneidade pode fazer com que os arquivos sejam processadosmais rapidamente. Contudo, se o valor de simultaneidade for muito alto, você começará agerar um número de eventos PUT que excede as cotas do Amazon S3. Como resultado, oprocesso de importação não captura todos os dados em sua planilha de entrada. Isso ocorreporque muitas das solicitações geradas por essa função terminam em falha.

14. Na parte superior da página, escolha Save (Salvar).

41

Page 49: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: criar a função Lambda que

processa os registros recebidos

Etapa 5.2: testar a funçãoDepois de criar a função, você deve testá-la para verificar se ela está configurada corretamente.

Para testar a função do Lambda

1. Escolha Test (Testar). Na janela Configure test event (Configurar evento de teste), para Event name(Nome do evento), insira TestEvent. Depois, no editor, cole o código a seguir.

{ "Records": [ { "s3": { "bucket": { "name": "bucket-name", "arn": "arn:aws:s3:::bucket-name" }, "object": { "key": "to_process/testfile__part1__of1.csv" } } } ]}

No exemplo anterior, substitua bucket-name pelo nome do bucket do Amazon S3 que você criou naEtapa 1 (p. 24). Ao concluir, selecione Create (Criar).

2. Escolha Test (Testar) novamente. A função é executada com o evento de teste que você forneceu.

Se a função for executada conforme o esperado, prossiga para a próxima etapa.

Se a função não for concluída, faça o seguinte:

• Verifique se você especificou o nome correto do bucket na política do IAM que você criou na Etapa1: criar um bucket do Amazon S3 (p. 22).

• Verifique se o evento de teste Lambda que você criou na etapa 1 desta seção se refere ao bucketcorreto e ao nome do arquivo.

3. Abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

Escolha o bucket que você criou na the section called “Etapa 1: criar um bucket do AmazonS3” (p. 22).

Abra as pastas no bucket e anote o conteúdo de cada uma delas. Se todas as instruções a seguirforem verdadeiras, a função Lambda funcionará conforme o esperado:

• A pasta to_process não contém nenhum arquivo.• A pasta processada contém uma subpasta chamada testfile. Na pasta testfile, há um

arquivo chamado testfile__part1__of1_processed.csv.

Não exclua nenhum dos arquivos recém-gerados. A função Lambda que você cria na próxima etapausa os arquivos na pasta to_process.

42

Page 50: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 6: criar a função Lambda que

importa registros para o Amazon Pinpoint

Etapa 6: criar a função Lambda que importa registrospara o Amazon PinpointA função Lambda final criada para este tutorial cria uma tarefa de importação no Amazon Pinpoint. A tarefade importação importa os arquivos na pasta processed do seu bucket do Amazon S3. Embora a pastaprocessed possa conter vários arquivos, a tarefa de importação cria um único segmento que contémtodos os endpoints nesses arquivos.

Essa função usa um teste para garantir que todos os arquivos que foram gerados pelas funções Lambdaanteriores estejam presentes antes de iniciar a tarefa de importação. Ele também verifica se você crioutarefas de importação que se referem à mesma pasta, para evitar a criação de segmentos duplicados.

Etapa 6.1: criar a funçãoO processo de criação da função Lambda final é muito mais simples que o processo das duas funçõesanteriores. Isso porque você não precisa importar nenhuma biblioteca externa.

Para criar a função

1. Abra o console do AWS Lambda em https://console.aws.amazon.com/lambda/.2. Selecione Create function (Criar função).3. Escolha Author from scratch (Criar do zero). Em Basic information (Informações básicas), faça o

seguinte:

• Em Function name (Nome da função), insira CustomerImport_CreateJob.• Em Runtime (Tempo de execução), escolha Python 3.7.• Para Execution role (Função de execução), selecione Use an existing role (Usar uma função

existente).• Em Existing role (Função existente), selecione ImporterPinpointRole.• Selecione Create function (Criar função).

4. Apague o exemplo no editor de código e cole o seguinte código no editor:

import os import timeimport boto3from botocore.exceptions import ClientError

AWS_REGION = os.environ['region']projectId = os.environ['projectId']importRoleArn = os.environ['importRoleArn']

def lambda_handler(event, context): print("Received event: " + str(event)) for record in event['Records']: # Assign some variables to make it easier to work with the data in the # event recordi bucket = record['s3']['bucket']['name'] key = record['s3']['object']['key'] folder = os.path.split(key)[0] folder_path = os.path.join(bucket, folder) full_path = os.path.join(bucket, key) s3_url = "s3://" + folder_path # Check to see if all file parts have been processed. if all_files_processed(bucket, folder, full_path): # If you haven't recently run an import job that uses a file stored in

43

Page 51: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 6: criar a função Lambda que

importa registros para o Amazon Pinpoint

# the specified S3 bucket, then create a new import job. This prevents # the creation of duplicate segments. if not (check_import_jobs(bucket, folder, s3_url)): create_import_job(s3_url) else: print("Import job found with URL s3://" + os.path.join(bucket,folder) + ". Aborting.") else: print("Parts haven't finished processing yet.")

# Determine if all of the file parts have been processed.def all_files_processed(bucket, folder, full_path): # Use the "__ofN" part of the file name to determine how many files there # should be. number_of_parts = int((full_path.split("__of")[1]).split("_processed")[0]) # Figure out how many keys contain the prefix for the current batch of # folders (basically, how many files are in the appropriate "folder"). client = boto3.client('s3') objs = client.list_objects_v2(Bucket=bucket,Prefix=folder) file_count = objs['KeyCount']

ready_for_import = False if file_count == number_of_parts: ready_for_import = True return ready_for_import

# Check Amazon Pinpoint to see if any import jobs have been created by using # the same S3 folder. def check_import_jobs(bucket, folder, s3_url): url_list = [] # Retrieve a list of import jobs for the current project ID. client = boto3.client('pinpoint') try: client_response = client.get_import_jobs( ApplicationId=projectId ) except ClientError as e: print(e.response['Error']['Message']) else: segment_response = client_response['ImportJobsResponse']['Item'] # Parse responses. Add all S3Url values to a list. for item in segment_response: s3_url_existing = item['Definition']['S3Url'] url_list.append(s3_url_existing) # Search for the current S3 URL in the list. if s3_url in url_list: found = True else: found = False return found

# Create the import job in Amazon Pinpoint.def create_import_job(s3_url): client = boto3.client('pinpoint') segment_name = s3_url.split('/')[4]

try: response = client.create_import_job( ApplicationId=projectId,

44

Page 52: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 6: criar a função Lambda que

importa registros para o Amazon Pinpoint

ImportJobRequest={ 'DefineSegment': True, 'Format': 'CSV', 'RegisterEndpoints': True, 'RoleArn': importRoleArn, 'S3Url': s3_url, 'SegmentName': segment_name } ) except ClientError as e: print(e.response['Error']['Message']) else: print("Import job " + response['ImportJobResponse']['Id'] + " " + response['ImportJobResponse']['JobStatus'] + ".") print("Segment ID: " + response['ImportJobResponse']['Definition']['SegmentId']) print("Application ID: " + projectId)

5. Em Environment variables (Variáveis de ambiente), faça o seguinte:

• Na primeira linha, crie uma variável com uma chave de projectId. Em seguida, defina o valorpara o ID exclusivo do projeto que você especificou na política do IAM na Etapa 2.2 (p. 27).

• Na segunda linha, crie uma variável com uma chave de region. Em seguida, defina o valor para aregião da AWS especificada na política do IAM na Etapa 2.2 (p. 27).

• Na terceira linha, crie uma variável com uma chave de importRoleArn. Em seguida, definao valor para o nome de recurso da Amazon (ARN) da função do IAM que você criou na Etapa2.2 (p. 26).

6. Em Basic settings (Configurações básicas), defina o valor Timeout (Tempo limite) para 7 segundos.

Note

Você pode usar o valor de tempo limite padrão de 3 segundos. Contudo, pode exigir umpouco mais de tempo para que tarefas maiores sejam criadas.

7. Na parte superior da página, escolha Save (Salvar).

Etapa 6.2: testar a funçãoDepois de criar a função, você deve testá-la para verificar se ela está configurada corretamente.

Para testar a função do Lambda

1. Escolha Test (Testar). Na página Configure test event (Configurar evento de teste), para Event name(Nome do evento), insira TestEvent. Depois, no editor, cole o código a seguir.

{ "Records": [ { "s3": { "bucket": { "name": "bucket-name", "arn": "arn:aws:s3:::bucket-name" }, "object": { "key": "processed/testfile/testfile__part1_processed.csv" } } } ]

45

Page 53: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 7: configurar eventos do Amazon S3

}

No exemplo anterior, substitua bucket-name pelo nome do bucket do Amazon S3 que você criou naEtapa 1 (p. 24). Ao concluir, selecione Create (Criar).

2. Escolha Test (Testar) novamente. A função é executada com o evento de teste que você forneceu.3. Abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

Escolha o bucket que você criou na the section called “Etapa 1: criar um bucket do AmazonS3” (p. 22).

Abra as pastas no bucket e anote o conteúdo de cada uma delas. Se todas as instruções a seguirforem verdadeiras, a função Lambda funcionará conforme o esperado:

• A pasta to_process não contém nenhum arquivo.• A pasta processada contém uma subpasta chamada testfile. Na pasta testfile, há um

arquivo chamado testfile__part1__of1_processed.csv.

Não exclua nenhum dos arquivos recém-gerados. A função Lambda que você cria na próxima etapausa os arquivos na pasta to_process.

Etapa 7: configurar eventos do Amazon S3Nesta seção, você configura seu bucket do Amazon S3 para que ele acione suas funções Lambda quandovocê adicionar arquivos às pastas no bucket. Você também testa toda a função para garantir que osgatilhos funcionem conforme o esperado.

Ao usar gatilhos de eventos no Amazon S3, você torna o processo de execução automática dasfunções Lambda. Quando você carrega um arquivo para a pasta input, o Amazon S3 enviaautomaticamente uma notificação para a função CustomerImport_ReadIncomingAndSplit.Quando essa função é executada, ele envia arquivos para a pasta to_process. Quando arquivos sãoadicionados à pasta to_process, o Amazon S3 aciona a função CustomerImport_ProcessInput.Quando essa função é executada, ela adiciona arquivos à pasta processed, o que aciona a funçãoCustomerImport_CreateJob.

Etapa 7.1: configurar notificações de eventosNesta seção, você configura três notificações de eventos para o seu bucket do Amazon S3. Essasnotificações acionam automaticamente as funções Lambda quando os arquivos são adicionados a pastasespecíficas no seu bucket.

Para configurar os gatilhos de evento

1. Abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.2. Na lista de buckets, escolha o bucket que você criou na Etapa 1 (p. 22).3. Na guia Properties (Propriedades), escolha Events (Eventos). Depois, faça o seguinte:

• Escolha Add notification (Adicionar notificação), conforme mostrado na imagem a seguir.• Em Name (Nome), insira SplitInput.• Em Events (Eventos), escolha PUT.• Em Prefix (Prefixo), insira input/.• Em Suffix (Sufixo), insira .csv.• Em Send to (Enviar para), escolha Lambda Function (Função Lambda).• Em Lambda, escolha CustomerImport_ReadIncomingAndSplit.

46

Page 54: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 7: configurar eventos do Amazon S3

Ao concluir, a seção Events (Eventos) é semelhante ao exemplo mostrado na imagem a seguir.

47

Page 55: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 7: configurar eventos do Amazon S3

48

Page 56: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 7: configurar eventos do Amazon S3

• Escolha Save (Salvar).4. Escolha Events (Eventos) e depois Add notification (Adicionar notificação) novamente. Faça o

seguinte:

• Escolha Add notification (Adicionar notificação), conforme mostrado na imagem a seguir.• Em Name (Nome), insira ProcessInput.• Em Events (Eventos), escolha PUT.• Em Prefix (Prefixo), insira to_process/.• Em Suffix (Sufixo), insira .csv.• Em Send to (Enviar para), escolha Lambda Function (Função Lambda).• Em Lambda, escolha CustomerImport_ProcessInput.• Escolha Save (Salvar).

5. Escolha Events (Eventos) e depois Add notification (Adicionar notificação) novamente. Faça oseguinte:

• Escolha Add notification (Adicionar notificação), conforme mostrado na imagem a seguir.• Em Name (Nome), insira CreateImportJob.• Em Events (Eventos), escolha PUT.• Em Prefix (Prefixo), insira processed/.• Em Suffix (Sufixo), insira .csv.• Em Send to (Enviar para), escolha Lambda Function (Função Lambda).• Em Lambda, escolha CustomerImport_CreateJob.• Escolha Save (Salvar).

Etapa 7.2: testar os gatilhosA última etapa da configuração da solução discutida neste tutorial consiste em carregar um arquivo para apasta input no seu bucket do Amazon S3. O carregamento de um arquivo aciona a função Lambda quevocê criou na Etapa 4 (p. 30). Quando essa função termina a execução, ela cria arquivos nas outraspastas para as quais você configurou as notificações de eventos na seção anterior. Após alguns minutos,toda a sequência de funções Lambda termina de ser executada e o projeto do Amazon Pinpoint contémum novo segmento.

Para testar os gatilhos do evento

1. No seu computador, localize o arquivo testfile.csv que você criou na Etapa 4.2 (p. 32). Altereo nome do arquivo para testfile1.csv.

2. Abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.3. Na lista de buckets, escolha o bucket que você criou na Etapa 1 (p. 22) e escolha a pasta input.4. Carregue testfile1.csv na pasta input. Depois que o arquivo terminar o carregamento, aguarde

alguns minutos.5. Abra o console do Amazon Pinpoint em https://console.aws.amazon.com/pinpoint/.6. Na lista de projetos, escolha o projeto para o qual você está importando segmentos.7. No painel de navegação, selecione Segments (Segmentos). Na guia Segments (Segmentos), procure

um segmento chamado testfile1. Se o segmento não estiver listado, verifique a guia Scheduledimports (Importações programadas) para ver se a tarefa de importação ainda está em andamento.

Se você não vir um novo segmento em nenhuma das guias, aguarde mais alguns minutos e atualize apágina Segments (Segmentos). Se você ainda não vir o segmento, faça o seguinte:

49

Page 57: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorPróximas etapas

• Certifique-se de que os eventos de notificação do Amazon S3 estejam configurados exatamenteconforme descrito na seção anterior.

• Verifique os logs de todas as três funções Lambda no CloudWatch Logs. Se alguma das funçõesterminar com erro, corrija os problemas que causaram o erro.

Próximas etapasAo concluir este tutorial, você fez o seguinte:

• Criou um bucket do Amazon S3 para conter os arquivos que você importar para o Amazon Pinpoint.• Criou várias funções e políticas do IAM que seguem o princípio de privilégio mínimo.• Criou funções Lambda que dividem seu arquivo de entrada em partes menores, processam esses

arquivos e os usam para criar uma tarefa de importação no Amazon Pinpoint.• Configurou seu bucket do Amazon S3 para iniciar as funções Lambda quando detecta arquivos em

determinadas pastas.

Esta seção discute algumas maneiras de personalizar essa solução para se adequar ao seu caso de usoexclusivo.

Executar tarefas de limpezaDepois de concluir este tutorial, você pode excluir as pastas input_archive, to_process eprocessed completamente. As funções neste tutorial criam automaticamente essas pastas novamentequando são necessárias.

Esta solução não exclui automaticamente os arquivos na pasta processed. Se uma tarefa de importaçãofalhar, você poderá tentar importar os arquivos novamente criando uma tarefa de importação usando oconsole ou a API.

Com o tempo, essa pasta pode acumular um grande número de arquivos que você não precisa mais. Vocêpode criar um script que remova periodicamente o conteúdo antigo dessa pasta. Se fizer isso, você deveincluir a lógica que verifica se há tarefas de importação em andamento antes de excluir arquivos.

Você também pode excluir opcionalmente os segmentos que foram criados quando você executou estetutorial. Se preferir, você pode excluir todos os endpoints do exemplo, bem como o segmento ao qual elespertencem, excluindo o projeto inteiro no qual você importou os endpoints.

Modificar a função de internacionalização para adequar seubanco de dados de clienteUma das funções Lambda criadas na Etapa 5 realiza alguns testes simples para normalizar os dados dopaís e do número de telefone que ela processa. Essa função inclui testes para os países mais populososdo mundo, bem como para alguns outros países para os quais os clientes do Amazon Pinpoint geralmenteenviam mensagens. Você pode expandir esses testes para incluir países e regiões adicionais.

Modificar a função de processamento de entrada para adequarseus sistemas externosA outra função Lambda criada na Etapa 5 cria os nomes das colunas que o Amazon Pinpoint esperaver. Ela os mapeia para as colunas que estão em sua planilha de entrada. Você pode alterar esse

50

Page 58: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConfiguração de um sistema de

gerenciamento de preferências de e-mail

mapeamento fazendo algumas pequenas alterações na função. Os comentários no código incluídoinformam especificamente o que você precisa alterar.

Sincronizar dados automaticamente com sistemas externosSe você usa regularmente dados de sistemas externos para enviar campanhas no Amazon Pinpoint, talvezseja possível configurar o sistema externo para exportar dados regularmente para a pasta de entrada noseu bucket do Amazon S3. Se fizer isso, verifique se cada arquivo exportado tem um nome exclusivo. Sevocê não fornecer nomes exclusivos, a função Lambda que cria tarefas de importação falhará. Isso ocorreporque a função possui uma lógica simples para impedir a criação de tarefas de importação duplicadas.

Tutorial: configuração de um sistema degerenciamento de preferências de e-mail

Em muitas jurisdições em todo o mundo, os remetentes de e-mail devem incluir um mecanismo paracancelar as comunicações por e-mail em cada e-mail que enviam.

Uma maneira comum de permitir que os clientes especifiquem suas preferências é hospedar uma páginaque eles possam usar para escolher os tipos específicos de mensagens que querem receber. Geralmente,os clientes também podem usar essa mesma página para cancelar completamente todas as comunicaçõespor e-mail que você envia.

Este tutorial mostra como configurar um formulário web que pode ser usado para capturar as preferênciasde e-mail dos seus clientes. O formulário da Web envia essas informações para o Amazon Pinpoint. OAmazon Pinpoint cria ou modifica atributos no registro de endpoint do cliente que indicam os tópicossobre os quais eles desejam receber informações. Você pode usar esses atributos ao criar segmentos noAmazon Pinpoint.

O formulário da Web também inclui uma opção com a qual os clientes possam cancelar todas ascomunicações por e-mail. Quando os clientes escolhem essa opção, eles são automaticamente excluídosde todos os tópicos. Além disso, a solução neste tutorial modifica seus registros de endpoint para que elesnão apareçam em nenhum segmento futuro em seu projeto do Amazon Pinpoint.

ArquiteturaQuando você usa a solução descrita neste tutorial, você envia um e-mail de campanha para seus clientes.Esse e-mail contém um link para uma página de gerenciamento de preferências. O link contém várias tagsde atributo que identificam cada destinatário.

Quando os clientes recebem um e-mail da sua parte, eles podem escolher o link. Ao fazerem isso, elessão levados a um formulário da Web que podem ser usados para ativar ou desativar vários tópicos. Oformulário envia esses dados para uma API hospedada pelo API Gateway. Essa API aciona uma funçãoLambda, que faz alterações no registro do endpoint do cliente.

O diagrama a seguir mostra o fluxo de informações nesta solução.

51

Page 59: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorSobre esta solução

Sobre esta soluçãoEsta seção contém informações sobre a solução que você está criando neste tutorial.

Público-alvo

Este tutorial é destinado a desenvolvedores e implementadores de sistemas. Você não precisa estarfamiliarizado com o Amazon Pinpoint para concluir as etapas deste tutorial. Você deve se sentir à vontadepara gerenciar políticas do IAM, criar funções Lambda no Node.js e implantar conteúdo da Web. Contudo,você não precisa escrever nenhum código — este tutorial inclui um código de exemplo completo que vocêpode implementar sem ter que fazer nenhuma alteração.

Recursos usados

Este tutorial inclui exemplos de uso dos seguintes recursos do Amazon Pinpoint:

• Criação de segmentos dinâmicos• Envio de campanhas de e-mail que contenham conteúdo personalizado• Interação com a API do Amazon Pinpoint usando o AWS Lambda

Tempo necessário

Levará aproximadamente 30–45 minutos para concluir este tutorial. Depois de implementar essa solução,há etapas adicionais que você pode seguir para refinar a solução para se adequar ao seu caso de usoexclusivo.

52

Page 60: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorPré-requisitos

Restrições regionais

Não há restrições regionais associadas ao uso dessa solução. No entanto, verifique se as campanhas dee-mail que você envia incluem todas as informações necessárias na jurisdição de cada destinatário.

Custos pelo uso de recursos

Não há cobrança para criar uma conta da AWS. Contudo, ao implementar essa solução, pode haveralguns ou todos os custos listados na tabela a seguir.

Descrição Custo (dólares americanos)

Custos de envio de mensagens Você paga 0,0001 USD por cada e-mail enviadopor meio do Amazon Pinpoint.

Público-alvo mensal Você paga 0 USD pelos primeiros 5.000 endpointsque você direciona no Amazon Pinpoint a cadamês. Depois disso, você paga 0,0012 USD porendpoint que você direciona.

Uso do Lambda A função Lambda neste tutorial usaaproximadamente 80–90 MB de memória eaproximadamente 100–300 milissegundos detempo de computação cada vez que é executada.

O uso de AWS Lambda na implementação dessasolução pode ser incluído no nível gratuito. Paraobter mais informações, consulte Definição depreço do AWS Lambda.

Uso do API Gateway Você paga 0,0000035–0,0000037 USD porsolicitação de API, dependendo da região daAWS que você usa. Para obter mais informações,consulte Definição de preço do Amazon APIGateway.

Custos de hospedagem na Web O preço que você paga varia de acordo com o seuprovedor de hospedagem na web.

Próximo: Pré-requisitos (p. 53)

Pré-requisitosAntes de começar este tutorial, você precisa concluir os seguintes pré-requisitos:

• Você precisa ter uma conta da AWS. Para criar uma conta da AWS, acesse https://console.aws.amazon.com/ e escolha Create a new AWS account (Criar uma conta da AWS).

• A conta que você usa para entrar no Console de gerenciamento da AWS deve ser capaz de executar asseguintes tarefas:• Criar políticas e funções do IAM• Criar projetos do Amazon Pinpoint• Criar funções do Lambda• Criar APIs no API Gateway

• Você precisa ter um método de hospedagem de páginas da Web e deve saber como publicar páginasda Web. Embora você possa usar os serviços da AWS para hospedar as páginas da Web, não énecessário.

53

Page 61: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 1: configurar o Amazon Pinpoint

Tip

Para saber mais sobre como hospedar páginas da Web usando os serviços da AWS, consulteHospede um site estático.

Próximo: Configurar o Amazon Pinpoint (p. 54)

Etapa 1: configurar o Amazon PinpointA primeira etapa na implementação dessa solução é configurar o Amazon Pinpoint. Nesta seção, faça oseguinte:

• Criar um projeto do Amazon Pinpoint• Habilitar o canal de e-mail e verificar uma identidade• Configurar atributos do endpoint

Antes de começar este tutorial, você deve analisar os pré-requisitos (p. 53).

Etapa 1.1: criar um projeto do Amazon PinpointPara começar, é preciso criar um projeto do Amazon Pinpoint. No Amazon Pinpoint, um projeto consisteem segmentos, campanhas, configurações e dados unidos por um propósito comum. Por exemplo, vocêpode usar um projeto para conter todo o conteúdo relacionado a um determinado aplicativo ou a umamarca ou iniciativa de marketing específica. Quando você adiciona informações do cliente ao AmazonPinpoint, essas informações são associadas a um projeto.

As etapas envolvidas na criação de um projeto diferem dependendo se você criou um projeto no AmazonPinpoint anteriormente.

Criação de um projeto (novos usuários do Amazon Pinpoint)

Essas etapas descrevem o processo de criação de um projeto do Amazon Pinpoint, caso você nuncatenha criado um projeto na região atual da AWS.

Para criar um projeto

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon Pinpoint em https://console.aws.amazon.com/pinpoint/.

2. Use o seletor de região para escolher a região da AWS que você deseja usar, conforme mostrado naimagem a seguir. Em caso de dúvida, escolha a região mais próxima de você.

54

Page 62: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 1: configurar o Amazon Pinpoint

3. Em Get started (Conceitos básicos), em Name (Nome), insira um nome para a campanha e escolhaCreate project (Criar projeto).

4. Na página Configure features (Configurar recursos), escolha Skip this step (Ignorar esta etapa).5. No painel de navegação, selecione All projects (Todos os projetos).6. Na página All projects (Todos os projetos), ao lado do projeto recém-criado, copie o valor mostrado na

coluna Project ID (ID do projeto).

Tip

Você precisa usar esse ID em alguns lugares diferentes neste tutorial. Mantenha o ID doprojeto em um local conveniente para que você possa copiá-lo mais tarde.

Criação de um projeto (usuários existentes do Amazon Pinpoint)

Essas etapas descrevem o processo de criação de um projeto do Amazon Pinpoint, caso você já tenhacriado projetos na região atual da AWS.

Para criar um projeto

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon Pinpoint em https://console.aws.amazon.com/pinpoint/.

2. Use o seletor de região para escolher a região da AWS que você deseja usar, conforme mostrado naimagem a seguir. Em caso de dúvida, escolha a região mais próxima de você.

55

Page 63: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 1: configurar o Amazon Pinpoint

3. Na página All projects (Todos os projetos), escolha Create a project (Criar um projeto).4. Na janela Create a project (Criar um projeto), em Project name (Nome do projeto), insira um nome

para o projeto. Escolha Create (Criar).5. Na página Configure features (Configurar recursos), escolha Skip this step (Ignorar esta etapa).6. No painel de navegação, selecione All projects (Todos os projetos).7. Na página All projects (Todos os projetos), ao lado do projeto recém-criado, copie o valor mostrado na

coluna Project ID (ID do projeto).

Tip

Você precisa usar esse ID em alguns lugares diferentes neste tutorial. Mantenha o ID doprojeto em um local conveniente para que você possa copiá-lo mais tarde.

Etapa 1.2: habilitar o canal de e-mailDepois de criar um projeto, você pode começar a configurar recursos nesse projeto. Nesta seção, vocêhabilita o canal de e-mail.

1. No painel de navegação, em Settings (Configurações), selecione Email (E-mail).2. Ao lado de Identity details (Detalhes de identidade), escolha Edit (Editar).3. Na página Edit email (Editar e-mail), em Identity details (Detalhes de identidade), escolha Enable the

email channel for this project (Habilitar o canal de e-mail para este projeto).4. Conclua as etapas na próxima seção para verificar uma identidade.

Etapa 1.3: verificar uma identidadeNesta seção, verifique uma identidade. No Amazon Pinpoint, uma identidade é um endereço de e-mailou domínio que você usa para enviar e-mails. Ao verificar um endereço de e-mail, você poderá enviar ume-mail desse endereço. Ao verificar um domínio, você pode enviar e-mails de qualquer endereço nessedomínio.

Esta seção inclui procedimentos para verificar um endereço de e-mail, bem como procedimentos paraverificar uma identidade. Você só precisa verificar um tipo de identidade. Na maioria dos casos, o processode verificação de um endereço de e-mail é mais fácil e rápido. Entretanto, a verificação de um domíniooferece mais flexibilidade, já que permite o envio de e-mails usando qualquer endereço desse domínio. Porexemplo, se você quiser usar um endereço Reply-To diferente do endereço From, talvez seja mais fácilverificar todo o domínio.

56

Page 64: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 1: configurar o Amazon Pinpoint

Verificar um endereço de e-mail

Esta seção inclui procedimentos para verificar um endereço de e-mail no Amazon Pinpoint. Você nãoprecisa concluir estas etapas se já tiver verificado o domínio (p. 58) que deseja usar para enviar e-mails.

1. Em Identity type (Tipo de identidade), escolha Email address (Endereço de e-mail) e depois Verify anew email address (Verificar um novo endereço de e-mail).

2. Em Email address (Endereço de e-mail), digite o endereço de e-mail que você deseja verificar. Oendereço de e-mail deve ser um endereço que você possa acessar e pelo qual você possa receber e-mails.

3. Escolha Verify email address (Verificar endereço de e-mail).4. Escolha Salvar.5. Procure na caixa de entrada do endereço que você inseriu por um e-mail de no-reply-

[email protected]. Abra o e-mail e clique no link do e-mail para concluir o processo de verificaçãopara o endereço de e-mail.

Note

Você deve receber o e-mail de verificação em cinco minutos. Se você não receber o e-mail,faça o seguinte:

• Certifique-se de ter digitado o endereço que você deseja verificar corretamente.• Verifique se o endereço de e-mail que está tentando verificar é capaz de receber e-mail.

Você pode testar isso usando outro endereço de e-mail para enviar um e-mail de teste parao endereço que deseja verificar.

• Verifique sua pasta de lixeira.

O link no e-mail de verificação expira após 24 horas. Para enviar novamente o e-mail deverificação, escolha Send verification email again (Enviar o e-mail de verificação novamente).

Ao verificar um endereço de e-mail, considere o seguinte:

• O Amazon Pinpoint tem endpoints em várias regiões da AWS. O status de verificação de um endereçode e-mail é separado para cada região. Se você deseja enviar e-mails usando a mesma identidade emmais de uma região, é preciso verificar essa identidade em cada região. Você pode verificar até 10.000identidades (endereços de e-mail e domínios, em qualquer combinação) em cada região da AWS.

• A parte local do endereço de e-mail, que vem antes do sinal de arroba (@), diferencia maiúsculasde minúsculas. Por exemplo, se você verificar [email protected], não poderá enviar e-mails [email protected], a não ser que verifique esse endereço também.

• Nomes de domínios não diferenciam maiúsculas de minúsculas. Por exemplo, se você [email protected], também poderá enviar e-mails de [email protected].

• Você pode aplicar rótulos a endereços de e-mail verificados adicionando um sinal de adição (+) seguidopor uma string de texto após a parte local do endereço e antes do sinal de arroba (@). Por exemplo,para aplicar label1 ao endereço [email protected], use [email protected]. Você pode usarquantos rótulos quiser em cada endereço verificado. Você também pode usar rótulos nos campos"From" e "Return-Path" para implementar o Variable Envelope Return Path (VERP).

Note

Ao verificar um endereço sem rótulo, você está verificando todos os endereços que poderiamser formados adicionando um rótulo a eles. No entanto, se você verificar um endereço rotulado,não poderá usar outros rótulos com esse endereço.

57

Page 65: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 1: configurar o Amazon Pinpoint

Verificação de um domínio

Esta seção inclui procedimentos para verificar um domínio no Amazon Pinpoint. Você não precisa concluiressas etapas se já tiver verificado o endereço de e-mail (p. 57) que deseja usar para enviar e-mails.

Note

Para concluir as etapas dessa seção, você precisa modificar as configurações de DNSdo seu domínio. As etapas exatas necessárias para modificar as configurações de DNSvariam dependendo do provedor de DNS usado por você. Caso você não consiga alterar asconfigurações de DNS do seu domínio ou não se sinta à vontade para fazer essas alterações,entre em contato com o administrador do sistema.

1. Conclua os procedimentos na seção anterior para ativar o canal de e-mail.2. Em Identity type (Tipo de identidade), escolha Domain (Domínio).3. Escolha Verify a New Domain (Verificar um novo domínio). Depois, em Domain (Domínio), insira o

nome do domínio que deseja verificar.4. Em Default sender address (Endereço do remetente padrão), insira o endereço padrão que você

deseja usar para enviar e-mails usando esse domínio.

Ao enviar e-mails desse domínio, você poderá enviá-los de qualquer endereço no domínio. Contudo,se você não especificar um endereço de remetente, o Amazon Pinpoint enviará o e-mail do endereçoque você especificar nesta seção.

5. Escolha Verify domain (Verificar domínio). Copie os três nomes DNS e registre os valores mostradosem Record set (Conjunto de registros). Como alternativa, você pode escolher Download record set(Fazer download de conjunto de registros) para fazer download de uma planilha que contenha essesregistros.

Ao concluir, escolha Save (Salvar).6. Faça login no console de gerenciamento do provedor de hospedagem na Web ou no DNS e crie três

novos registros CNAME que contenham os valores que você salvou na etapa anterior. Consulte apróxima seção para obter os links para a documentação de vários provedores comuns.

Geralmente leva de 24–48 horas para que as configurações de DNS sejam propagadas. Assim queo Amazon Pinpoint detecta esses três registros CNAME na configuração do DNS do seu domínio, oprocesso de verificação é concluído.

Note

Você não pode enviar e-mails de um domínio até que o processo de verificação sejaconcluído.

Instruções para configuração de registros DNS para vários provedores

Os procedimentos para atualizar os registros de DNS de um domínio variam de acordo com qual DNS ouprovedor de hospedagem na web você usa. A tabela a seguir lista links para a documentação de váriosprovedores comuns. Essa lista não é exaustiva e a inclusão nela não é um endosso ou recomendaçãode produtos ou serviços de nenhuma empresa. Se seu provedor não estiver listado na tabela, vocêprovavelmente poderá usar o domínio com o Amazon Pinpoint.

Provedor de DNS/hospedagem Link da documentação

Amazon Route 53 Criar registros usando o console do AmazonRoute 53

GoDaddy Adicionar um registro CNAME (link externo)

58

Page 66: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 2: adicionar ou configurar endpoints

Provedor de DNS/hospedagem Link da documentação

Dreamhost Como adicionar registros DNS personalizados?(link externo)

Cloudflare Gerenciamento de registros DNS no Cloudflare(link externo)

HostGator Gerenciar registros DNS com HostGator/eNom(link externo)

Namecheap Como adicionar registros TXT/SPF/DKIM/DMARCpara o meu domínio? (link externo)

Names.co.uk Alterar configurações de DNS dos domínios (linkexterno)

Wix Como adicionar ou atualizar registros CNAME nasua conta do Wix (link externo)

Dicas e solução de problemas de verificação de domínio

Se você concluir as etapas anteriores, mas seu domínio não for verificado após 72 horas, verifique oseguinte:

• Verifique se você informou os valores para os registros DNS nos campos corretos. Alguns provedoresse referem ao campo Name/host (Nome/host) como Host ou Hostname (Nome do host). Além disso,alguns provedores referem-se ao campo Record value (Valor do registro) como Points to (Aponta para)ou Result (Resultado).

• Verifique se seu provedor não anexou automaticamente seu nome de domínio ao valor Name/host(Nome/host) que você inseriu no registro de DNS. Alguns provedores acrescentam o nome de domíniosem indicar que fizeram isso. Se seu provedor acrescentou seu nome de domínio ao valor Name/host(Nome/host), remova o nome do domínio do final do valor. Você também pode tentar adicionar umperíodo ao final do valor no registro de DNS. Este período indica ao provedor que o nome de domínio étotalmente qualificado.

• O caractere de sublinhado (_) é necessário no valor Name/host (Nome/host) de cada registro de DNS.Se seu provedor não permitir sublinhados nos nomes de registro de DNS, entre em contato com odepartamento de suporte ao cliente do provedor para obter assistência adicional.

• Os registros de validação que você precisa adicionar à configuração de DNS de seu domínio sãodiferentes para cada região da AWS. Se quiser usar um domínio para enviar e-mails de várias regiõesda AWS, você precisará verificar o domínio em cada uma dessas regiões.

Etapa 2: adicionar ou configurar endpointsQuando você envia campanhas no Amazon Pinpoint, você as envia para os endpoints. Um endpointrepresenta um método único de entrar em contato com um cliente. Por exemplo, o número de telefone deum cliente, seu endereço de e-mail e seu token exclusivo do Apple Push Notification Service (APNs) sãotrês endpoints separados. Neste exemplo, esses três endpoints representam três formas diferentes decomunicação com um cliente — nesse caso, enviando mensagens SMS, e-mails ou notificações por push.

Se você é novo no Amazon Pinpoint, seu projeto do Amazon Pinpoint não contém nenhum endpoint. Háalgumas maneiras de adicionar endpoints ao Amazon Pinpoint:

• Importar de um arquivo CSV ou JSON.• Usar a operação da API UpdateEndpoint na API do Amazon Pinpoint.

59

Page 67: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 2: adicionar ou configurar endpoints

• Exportar dados de eventos de um aplicativo que usa o AWS Mobile SDK ou a biblioteca JavaScript doAWS Amplify para enviar dados de análise ao Amazon Pinpoint.

Para concluir este tutorial, seu projeto do Amazon Pinpoint deve conter pelo menos um endpoint de e-mail.Se o seu projeto do Amazon Pinpoint já contiver endpoints de e-mail, você poderá usá-los. Você tambémpode usar a amostra de arquivo CSV nesta seção para importar uma lista de endpoints de teste.

Importar endpoints de testeEsta seção inclui um arquivo que você pode usar como um arquivo de origem para importar um endpointde teste no Amazon Pinpoint. Esse método de adição de endpoints é útil caso você não tenha umaplicativo que envie informações de endpoint para o Amazon Pinpoint, caso não deseje usar a API doAmazon Pinpoint para criar endpoints ou caso não deseje modificar os endpoints que já existem no seuprojeto do Amazon Pinpoint.

Criar o arquivo de origemPrimeiro, crie o arquivo CSV que contém informações sobre seus endpoints.

Para criar o arquivo CSV

1. Em um editor de texto, crie um arquivo.2. Cole o seguinte texto no arquivo.

ChannelType,Address,EndpointStatus,OptOut,Id,Attributes.Email,Attributes.EndpointId,User.UserAttributes.FirstName,User.UserAttributes.LastNameEMAIL,[email protected],ACTIVE,NONE,12345,recipient%40example.com,12345,Carlos,Salazar

3. No texto da etapa anterior, faça as seguintes alterações:

• Substitua destinatá[email protected] pelo seu endereço de e-mail.• Substitua destinatário%40exemplo.com pelo seu endereço de e-mail, mas use %40 em vez de

usar o sinal de arroba (@).• Substitua Carlos e Salazar pelo seu nome e sobrenome, respectivamente.• (Opcional) Substitua ambas as ocorrências de 12345 por um valor de ID de endpoint. O valor que

você usa deve ser exatamente o mesmo em ambos os locais.4. Salve o arquivo como testImports.csv.

Carregar o arquivoO Amazon Pinpoint requer que você armazene arquivos de origem no Amazon S3. Conclua oprocedimento abaixo para enviar seu arquivo CSV para uma pasta em um bucket do Amazon S3.

Para carregar o arquivo em um bucket do Amazon S3

1. Abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.2. Selecione Create bucket (Criar bucket).3. Na janela Create bucket (Criar bucket), para Bucket name (Nome do bucket), insira um nome para

o bucket no qual você deseja armazenar o arquivo. O nome que você especifica deve ser exclusivo.Além disso, existem várias restrições relacionadas ao nome do bucket. Para obter mais informaçõessobre essas restrições, consulte Restrições de buckets no Guia do desenvolvedor do Amazon SimpleStorage Service. Escolha Create (Criar).

4. Na lista de buckets, escolha o bucket que você acabou de criar.5. Escolha Create folder (Criar pasta). Nomeie a pasta Imports. Escolha Save (Salvar).6. Escolha a pasta Imports (Importações) que você acabou de criar.

60

Page 68: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 2: adicionar ou configurar endpoints

7. Escolha Upload (Carregar).8. Escolha Add files (Adicionar arquivos). Localize o arquivo testImports.csv que você criou na

seção anterior (p. 60). Escolha Upload (Carregar).

Importar o arquivo para o Amazon PinpointDepois de carregar seu arquivo CSV em um bucket do Amazon S3, você pode importá-lo para o seuprojeto do Amazon Pinpoint.

Para importar o arquivo para o Amazon Pinpoint

1. Abra o console do Amazon Pinpoint em https://console.aws.amazon.com/pinpoint/.2. Na página All projects (Todos os projetos), selecione o projeto que você criou na Etapa 1.1 (p. 54).3. No painel de navegação, selecione Segments (Segmentos).4. Selecione Create a segment (Criar um segmento).5. Na página Create a segment (Criar um segmento), escolha Import a segment (Importar um segmento).6. Em Specifications (Especificações), faça o seguinte:

• Em Name (Nome), insira EmailRegistrationTestRecipients.• Para o URL do Amazon Simple Storage Service, insira o endereço do bucket e da pasta do Amazon

S3 que você criou na seção anterior. Por exemplo, se o seu bucket se chamar email-registration-tutorial, insira o seguinte URL: s3://email-registration-tutorial/Imports.

• Em IAM role (Função do IAM), escolha Automatically create a role (Criar umafunção automaticamente). Em seguida, insira um nome para a função do IAM, comoSegmentImportRole.

• Em What type of file are you importing (Qual tipo de arquivo você está importando), escolhaComma-Separated Values (Valores separados por vírgula). Selecione Create segment (Criarsegmento).

7. Depois de enviar o segmento, você verá a guia Scheduled imports (Importações agendadas) napágina Segments (Segmentos). Aguarde 30 segundos após o envio do segmento e depois atualizea página. A coluna Import status (Status de importação) deve indicar se a importação do segmentofoi concluída. Se ela indicar que a importação ainda está pendente, aguarde 30 segundos adicionaise depois atualize a página novamente. Repita esse processo até que o status de importação sejaCompleted (Concluído).

8. Na guia Segments (Segmentos), escolha o segmento EmailRegistrationTestRecipients. Na seçãoImport details (Detalhes da importação), confirme se o valor em Number of records (Número deregistros) é preciso. Se você usou a amostra do arquivo CSV nessa seção, o valor correto é 1.

Usar endpoints existentes (para usuários avançados)Se o seu projeto do Amazon Pinpoint já contiver endpoints de e-mail, você precisará modificar essesterminais pouco antes de poder usá-los neste tutorial. Primeiro, os terminais devem incluir dois valores deatributos de endpoint. Esses valores estão listados na tabela a seguir.

Nome do atributo Valor

Attributes.Email Uma versão codificada por URL do atributoAddress existente para o endpoint.

Attributes.EndpointId Igual ao atributo Id existente para o endpoint. Seo valor do ID do endpoint contiver caracteres nãoalfanuméricos, você deverá codificar esse valor porURL.

61

Page 69: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: criar políticas e funções do IAM

Nome do atributo Valor

Note

Para obter mais informações sobrecodificação por URL, consulte a HTMLURL Encoding Reference no site daW3Schools.

Os endpoints também devem conter dois valores de atributo do usuário. Esses valores não sãoestritamente necessários para que a solução funcione. Esses valores estão listados na tabela a seguir.

Nome do atributo Valor

User.UserAttributes.FirstName O nome do destinatário.

User.UserAttributes.LastName O sobrenome do destinatário.

Se o seu projeto do Amazon Pinpoint contiver um grande número de endpoints existentes, você poderáusar a operação da API CreateExportJob para exportar uma lista de todos os endpoints de um segmentoou projeto para um bucket do Amazon S3. Depois disso, você poderá gravar um script que usa a operaçãoUpdateEndpoint para atualizar programaticamente os endpoints para incluir esses atributos.

Etapa 3: criar políticas e funções do IAMA próxima etapa da implementação da solução de gerenciamento de preferências de e-mail consiste emconfigurar uma política e uma função no AWS Identity and Access Management (IAM). No caso dessasolução, será preciso criar uma política que forneça acesso a determinados recursos relacionados aoAmazon Pinpoint. Crie uma função e anexe a política a ela. Posteriormente neste tutorial, você criará umafunção do AWS Lambda que usa essa função para chamar determinadas operações na API do AmazonPinpoint.

Etapa 3.1: criar uma política do IAMEsta seção mostra como criar uma política do IAM. Os usuários e funções que usam essa política podemexibir, criar e atualizar endpoints do Amazon Pinpoint.

Neste tutorial, você deseja dar ao Lambda a capacidade de executar essas tarefas. Contudo, para obtermaior segurança, essa política usa o princípio de conceder o privilégio mínimo. Em outras palavras, eleconcede apenas as permissões necessárias para concluir essa solução e não mais. Você só pode usaressa política para exibir, criar ou atualizar endpoints associados a um projeto específico do AmazonPinpoint.

Para criar a política

1. Faça login no Console de gerenciamento da AWS e abra o console da IAM em https://console.aws.amazon.com/iam/.

2. No painel de navegação, escolha Policies (Políticas) e Create policy (Criar política).3. Na guia JSON, cole o seguinte código.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow",

62

Page 70: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: criar políticas e funções do IAM

"Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup" ], "Resource": "arn:aws:logs:*:*:*" }, { "Effect": "Allow", "Action": [ "mobiletargeting:UpdateEndpoint", "mobiletargeting:GetEndpoint" ], "Resource": "arn:aws:mobiletargeting:region:accountId:apps/projectId/endpoints/*" } ]}

No exemplo anterior, faça o seguinte:

• Substitua region (região) pela região da AWS em que você usa o Amazon Pinpoint, como us-east-1 ou eu-central-1.

Tip

Para obter uma lista completa das regiões da AWS nas quais o Amazon Pinpoint estádisponível, consulte Regiões da AWS e endpoints na AWS General Reference.

• Substitua accountId pelo ID exclusivo da sua conta da AWS.• Substitua projectId pelo ID exclusivo do projeto que você criou na Etapa 1.1 (p. 54) deste

tutorial.

Note

As ações logs permitem que o Lambda registre sua saída no CloudWatch Logs.4. Escolha Review policy (Revisar política).5. Em Name (Nome), insira um nome para a política, como EmailPreferencesPolicy. Escolha

Create policy (Criar política).

Etapa 3.2: criar uma função IAMDepois de criar a política, você pode criar uma função e anexar a política a ela. A função Lambda criada naEtapa 3 (p. 62) usa essa função para obter acesso aos recursos necessários da AWS.

Para criar a função

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.2. No painel de navegação do console do IAM, selecione Roles (Funções) e Create role (Criar função).3. Em Choose the service that will use this role (Selecionar o serviço que usará esta função), selecione

Lambda e Next: Permissions (Próximo: Permissões).

Note

O serviço que você escolhe nesta etapa não é importante — independentemente do serviçoescolhido, você aplicará sua própria política na próxima etapa.

4. Em Attach permissions policy (Anexar política de permissões), escolha a política que você criou naseção anterior e depois Next: Tags (Próximo: Tags).

63

Page 71: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 4: criar a função do Lambda

5. Selecione Next: Review (Próximo: análise).6. Em Review (Revisar), em Name (Nome), insira um nome para a função, como

EmailPreferencesForm. Selecione Create role (Criar função).

Etapa 4: criar a função do LambdaEssa solução usa uma função Lambda para atualizar os registros de endpoint dos clientes com base naspreferências que eles fornecem no formulário da Web. Esta seção mostra como criar, configurar e testaressa função. Depois, você configura API Gateway e Amazon Pinpoint para executar essa função.

Etapa 4.1: criar a função que atualiza endpointsA primeira função recebe dados do formulário da Web de gerenciamento de preferências, que ele recebedo Amazon API Gateway. Ela usa essas informações para atualizar o registro de endpoint do cliente deacordo com as preferências fornecidas no formulário.

Para criar a função do Lambda

1. Abra o console do AWS Lambda em https://console.aws.amazon.com/lambda/.2. Selecione Create function (Criar função).3. Em Create a function (Criar uma função), escolha Blueprints (Esquemas).4. No campo de pesquisa, digite hello e pressione Enter. Na lista de resultados, escolha a função do

Node.js hello-world, como mostra a imagem a seguir. Selecione Configure (Configurar).

64

Page 72: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 4: criar a função do Lambda

65

Page 73: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 4: criar a função do Lambda

5. Em Basic information (Informações básicas), faça o seguinte:

• Em Name (Nome), insira um nome para a função, como EmailPreferences.• Em Role (Função), selecione Choose an existing role (Escolher uma função existente).• Em Existing role (Função existente), escolha a função EmailPreferencesForm criada por você na

Etapa 3.2 (p. 63).

Ao concluir, selecione Create function (Criar função).6. Exclua o código de exemplo no editor de código e cole o código a seguir:

var AWS = require('aws-sdk');var pinpoint = new AWS.Pinpoint({region: process.env.region}); var projectId = process.env.projectId;

exports.handler = (event, context, callback) => { console.log('Received event:', event); var optOutAll = event.optOutAll; if (optOutAll === false) { updateOpt(event); } else if (optOutAll === true) { unsubAll(event); }};

function unsubAll(event) { var params = { ApplicationId: projectId, EndpointId: event.endpointId, EndpointRequest: { ChannelType: 'EMAIL', OptOut: 'ALL', Attributes: { SpecialOffersOptStatus: [ "OptOut" ], NewProductsOptStatus: [ "OptOut" ], ComingSoonOptStatus: [ "OptOut" ], DealOfTheDayOptStatus: [ "OptOut" ], OptStatusLastChanged: [ event.optTimestamp ], OptSource: [ event.source ] } } }; pinpoint.updateEndpoint(params, function(err,data) { if (err) { console.log(err, err.stack); } else { console.log(data); }

66

Page 74: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 4: criar a função do Lambda

}); }

function updateOpt(event) { var endpointId = event.endpointId, firstName = event.firstName, lastName = event.lastName, source = event.source, specialOffersOptStatus = event.topic1, newProductsOptStatus = event.topic2, comingSoonOptStatus = event.topic3, dealOfTheDayOptStatus = event.topic4, optTimestamp = event.optTimestamp; var params = { ApplicationId: projectId, EndpointId: endpointId, EndpointRequest: { ChannelType: 'EMAIL', OptOut: 'NONE', Attributes: { SpecialOffersOptStatus: [ specialOffersOptStatus ], NewProductsOptStatus: [ newProductsOptStatus ], ComingSoonOptStatus: [ comingSoonOptStatus ], DealOfTheDayOptStatus: [ dealOfTheDayOptStatus ], OptStatusLastChanged: [ optTimestamp ], OptSource: [ source ] }, User: { UserAttributes: { FirstName: [ firstName ], LastName: [ lastName ] } } } }; pinpoint.updateEndpoint(params, function(err,data) { if (err) { console.log(err, err.stack); } else { console.log(data); } });}

7. Em Environment variables (Variáveis de ambiente), faça o seguinte:

67

Page 75: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 4: criar a função do Lambda

• Na primeira linha, crie uma variável com uma chave de projectId. Em seguida, defina o valorpara o ID exclusivo do projeto que você criou na Etapa 1.1 (p. 54).

• Na segunda linha, crie uma variável com uma chave de region. Em seguida, defina o valor para aregião em que você usa Amazon Pinpoint, como us-east-1 ou us-west-2.

Quando você terminar, a seção Environment Variables (Variáveis de ambiente) deve ser semelhanteao exemplo mostrado na imagem a seguir.

8. Na parte superior da página, escolha Save (Salvar).

Etapa 4.1.1: testar a função

Depois de criar a função, você deve testá-la para verificar se está configurada corretamente. Além disso,verifique se a função do IAM que você criou tem as permissões apropriadas.

Para testar a função

1. Escolha Test (Testar).2. Na janela Configure test event (Configurar evento de teste), faça o seguinte:

• Selecione Create new test event (Criar evento de teste).• Em Event name (Nome do evento), insira um nome para o evento de teste, como MyTestEvent.• Apague o código de exemplo no editor de código. Cole o seguinte código:

{ "endpointId": "12345", "firstName": "Carlos",

68

Page 76: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 4: criar a função do Lambda

"lastName": "Salazar", "topic1": "OptOut", "topic2": "OptIn", "topic3": "OptOut", "topic4": "OptIn", "source": "Lambda test", "optTimestamp": "Tue Mar 05 2019 14:35:07 GMT-0800 (PST)", "optOutAll": false}

• No exemplo de código anterior, substitua os valores dos atributos endpointId, firstName elastName pelos valores do endpoint que você importou na Etapa 2 (p. 60).

• Escolha Create (Criar).3. Escolha Test (Testar) novamente.4. Em Execution result: succeeded (Resultado de execução: bem-sucedido), selecione Details

(Detalhes). Na seção Log output (Resultado de saída do log), analise a saída da função. Certifique-sede que a função foi executada sem erros.

5. Abra o console do Amazon Pinpoint em https://console.aws.amazon.com/pinpoint/.6. Na página All projects (Todos os projetos), selecione o projeto que você criou na Etapa 1.1 (p. 54).7. No painel de navegação, selecione Segments (Segmentos). Na página Segments (Segmentos),

selecione Create a segment (Criar um segmento).8. No Segment group 1 (Grupo de segmentos 1), em Add filters to refine your segment (Adicionar filtros

para refinar seu segmento), escolha Filter by endpoint (Filtrar por endpoint).9. For Choose an endpoint attribute (Escolher um atributo de endpoint), escolha NewProductsOptStatus.

Depois, para Choose values (Escolher valores), escolha OptIn.

A seção Segment estimate (Estimativa de segmento) deve mostrar que há um endpoint elegível e umendpoint total, conforme mostrado na imagem a seguir.

69

Page 77: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: configurar o Amazon API Gateway

Etapa 5: configurar o Amazon API GatewayNesta seção, você cria uma API usando o Amazon API Gateway. O formulário de registro que vocêimplanta nesta solução chama essa API. O API Gateway então transmite as informações capturadas napágina de preferências de e-mail para a função Lambda criada na Etapa 4 (p. 64).

Etapa 5.1: Criar a APIPrimeiro, é preciso criar uma API no API Gateway. Os procedimentos a seguir mostram como criar umaAPI REST.

Para criar uma API

1. Abra o console do API Gateway em https://console.aws.amazon.com/apigateway/.2. Escolha Create API (Criar API). Faça as seguintes seleções:

70

Page 78: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: configurar o Amazon API Gateway

• Em Choose the protocol (Escolher o protocolo), selecione REST.• Em Create new API (Criar nova API), selecione New API (Nova API).• Em Settings (Configurações), para Name (Nome), insira um nome, como EmailPreferences.

Para Description (Descrição), insira, como opção, algum texto que descreva o objetivo da API. EmEndpoint Type (Tipo de endpoint), escolha Regional. Em seguida, selecione Create API (Criar API).

Um exemplo dessas configurações é mostrado na imagem a seguir.

71

Page 79: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: configurar o Amazon API Gateway

Etapa 5.2: criar um recursoAgora que você criou uma API, é possível começar a adicionar recursos a ela. Depois disso, você adicionaum método POST ao recurso e informa ao API Gateway para transmitir os dados recebidos desse métodopara a função Lambda.

72

Page 80: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: configurar o Amazon API Gateway

1. No menu Actions (Ações), escolha Create Resource (Criar recurso). No painel New Child Resource(Novo recurso filho), para Resource Name (Nome do recurso), insira prefs, conforme mostrado naimagem a seguir. Escolha Create Resource (Criar recurso).

2. No menu Actions (Ações), selecione Create Method (Criar método). No menu exibido, escolha POST,

conforme mostrado na imagem a seguir. Em seguida, escolha o botão de marca de seleção ( ).

73

Page 81: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: configurar o Amazon API Gateway

3. No painel /prefs - POST - Setup, faça as seguintes seleções:

• Em Integration type (Tipo de integração), escolha Lambda Function (Função Lambda).• Escolha Use Lambda Proxy Integration (Usar a integração de proxy do Lambda).• Em Lambda Region (Região Lambda), escolha a região na qual você criou a função Lambda.• Em Lambda Function (Função Lambda), escolha a função EmailPreferences que você criou na

Etapa 4 (p. 64).

Um exemplo dessas configurações é mostrado na imagem a seguir.

74

Page 82: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: configurar o Amazon API Gateway

Escolha Save (Salvar). Na janela exibida, escolha OK para conceder permissão ao API Gateway paraexecutar sua função Lambda.

Etapa 5.3: implantar a APIAgora a API está pronta para uso. Nesse ponto, é preciso implantá-la para criar um endpoint publicamenteacessível.

75

Page 83: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: configurar o Amazon API Gateway

1. No painel de navegação, escolha Resources (Recursos). Na lista de recursos, escolha o recurso/prefs. Por fim, no menu Actions (Ações), escolha Enable CORS (Habilitar o CORS), conformemostrado na imagem a seguir.

2. Na painel Enable CORS (Habilitar o CORS), escolha Enable CORS and replace existing CORSheaders (Habilitar o CORS e substituir os cabeçalhos do CORS existentes).

3. No menu Actions (Ações), escolha Deploy API (Implantar API). Na janela Deploy API (Implantar API),faça as seguintes seleções:

• Em Deployment stage (Estágio de implantação), escolha [New Stage] ([Novo estágio]).• Em Stage name (Nome do estágio), insira v1.• Selecione Deploy (Implantar).

Um exemplo dessas seleções é mostrado na imagem a seguir.

76

Page 84: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: configurar o Amazon API Gateway

4. No painel v1 Stage Editor (Editor do estágio v1), escolha o recurso /prefs e depois o método POST.Copie o endereço exibido ao lado de Invoke URL Invocar URL), conforme mostrado na imagem aseguir.

77

Page 85: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 6: criar e implantar o formulário da Web

Etapa 6: criar e implantar o formulário da WebTodos os componentes dessa solução que usam os serviços da AWS agora estão funcionando. A últimaetapa é criar e implantar o formulário da Web que captura os dados do cliente.

Etapa 6.1: criar o manipulador de formulários JavaScriptNesta seção, você cria uma função JavaScript que analisa o conteúdo do formulário da Web criado napróxima seção. Depois de analisar o conteúdo, essa função envia os dados para a API que você criou naParte 4 (p. 64).

Para criar o manipulador de formulários

1. Em um editor de texto, crie um arquivo.2. No editor, cole o código a seguir.

$(document).ready(function() {

// Function that parses URL parameters. function getParameterByName(name) { name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), results = regex.exec(location.search); return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); }

78

Page 86: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 6: criar e implantar o formulário da Web

// Pre-fill form data. $("#firstName").val(getParameterByName("firstName")); $("#lastName").val(getParameterByName("lastName")); $("#email").val(getParameterByName("email")); $("#endpointId").val(getParameterByName("endpointId")); if (getParameterByName("t1") == "OptIn") { $("#topic1In").prop('checked', true); } if (getParameterByName("t2") == "OptIn") { $("#topic2In").prop('checked', true); } if (getParameterByName("t3") == "OptIn") { $("#topic3In").prop('checked', true); } if (getParameterByName("t4") == "OptIn") { $("#topic4In").prop('checked', true); }

// Handle form submission. $("#submit").click(function(e) {

// Get endpoint ID from URL parameter. var endpointId = getParameterByName("endpointId");

var firstName = $("#firstName").val(), lastName = $("#lastName").val(), email = $("#email").val(), source = window.location.pathname, optTimestamp = undefined, utcSeconds = Date.now() / 1000, timestamp = new Date(0);

var topicOptIn = [ $('#topic1In').is(':checked'), $('#topic2In').is(':checked'), $('#topic3In').is(':checked'), $('#topic4In').is(':checked') ];

e.preventDefault();

$('#submit').prop('disabled', true); $('#submit').html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>  Saving your preferences</button>');

// If customer unchecks a box, or leaves a box unchecked, set the opt // status to "OptOut". for (i = 0; i < topicOptIn.length; i++) { if (topicOptIn[i] == true) { topicOptIn[i] = "OptIn"; } else { topicOptIn[i] = "OptOut"; } }

timestamp.setUTCSeconds(utcSeconds);

var data = JSON.stringify({ 'endpointId': endpointId, 'firstName': firstName, 'lastName': lastName, 'topic1': topicOptIn[0], 'topic2': topicOptIn[1], 'topic3': topicOptIn[2], 'topic4': topicOptIn[3],

79

Page 87: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 6: criar e implantar o formulário da Web

'source': source, 'optTimestamp': timestamp.toString(), 'optOutAll': false });

$.ajax({ type: 'POST', url: 'https://example.execute-api.us-east-1.amazonaws.com/v1/prefs', contentType: 'application/json', data: data, success: function(res) { $('#form-response').html('<div class="mt-3 alert alert-success" role="alert">Your preferences have been saved!</div>'); $('#submit').prop('hidden', true); $('#unsubAll').prop('hidden', true); $('#submit').text('Preferences saved!'); }, error: function(jqxhr, status, exception) { $('#form-response').html('<div class="mt-3 alert alert-danger" role="alert">An error occurred. Please try again later.</div>'); $('#submit').text('Save preferences'); $('#submit').prop('disabled', false); } }); });

// Handle the case when the customer clicks the "Unsubscribe from all" // button. $("#unsubAll").click(function(e) { var firstName = $("#firstName").val(), lastName = $("#lastName").val(), source = window.location.pathname, optTimestamp = undefined, utcSeconds = Date.now() / 1000, timestamp = new Date(0);

// Get endpoint ID from URL parameter. var endpointId = getParameterByName("endpointId");

e.preventDefault();

$('#unsubAll').prop('disabled', true); $('#unsubAll').html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>  Saving your preferences</button>');

// Uncheck all boxes to give user a visual representation of the opt-out action. $("#topic1In").prop('checked', false); $("#topic2In").prop('checked', false); $("#topic3In").prop('checked', false); $("#topic4In").prop('checked', false);

timestamp.setUTCSeconds(utcSeconds);

var data = JSON.stringify({ 'endpointId': endpointId, 'source': source, 'optTimestamp': timestamp.toString(), 'optOutAll': true });

$.ajax({ type: 'POST', url: 'https://example.execute-api.us-east-1.amazonaws.com/v1/prefs', contentType: 'application/json', data: data, success: function(res) {

80

Page 88: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 6: criar e implantar o formulário da Web

$('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Successfully opted you out of all future email communications.</div>'); $('#submit').prop('hidden', true); $('#unsubAll').prop('hidden', true); }, error: function(jqxhr, status, exception) { $('#form-response').html('<div class="mt-3 alert alert-danger" role="alert">An error occurred. Please try again later.</div>'); } }); });});

3. No exemplo anterior, substitua https://example.execute-api.us-east-1.amazonaws.com/v1/prefs por Invoke URL (Invocar URL) que você obteve na Etapa 5.3 (p. 75).

4. Salve o arquivo.

Etapa 6.2: criar o arquivo de formulárioNesta seção, você cria um arquivo HTML que contém o formulário que os clientes usam para gerenciarsuas preferências de e-mail. Esse arquivo usa o manipulador de formulários JavaScript que você criou naseção anterior para transmitir os dados do formulário à sua função Lambda.

Important

Quando um usuário envia esse formulário, ele aciona uma função Lambda que atualiza endpointsem seu projeto do Amazon Pinpoint. Usuários mal-intencionados podem lançar um ataque ao seuformulário que possa afetar seus dados ou fazer com que um grande número de solicitações sejafeito. Caso você planeje usar essa solução para produção, deverá protegê-la usando um sistemacomo o reCAPTCHA do Google.

Para criar o formulário

1. Em um editor de texto, crie um arquivo.2. No editor, cole o código a seguir.

<!doctype html><html lang="en">

<head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <!-- Bootstrap and AJAX scripts --> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

81

Page 89: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 6: criar e implantar o formulário da Web

<!-- Reference to JavaScript form handler. --> <script type="text/javascript" src="formHandler.js"></script>

<title>Manage your email preferences</title></head>

<body> <div class="container"> <h1>Manage your email subscriptions</h1> <h2 class="mt-3">Contact information</h2> <form>

<div class="form-row mt-3"> <div class="form-group col-md-6"> <label for="email" class="font-weight-bold">Email address</label> <input type="email" class="form-control-plaintext" id="email" readonly> </div> <div class="form-group col-md-6"> <label for="email" class="font-weight-bold">ID</label> <input type="email" class="form-control-plaintext" id="endpointId" readonly> </div> </div> <div class="form-row"> <div class="form-group col-md-6"> <label for="firstName" class="font-weight-bold">First name</label> <input type="text" class="form-control" id="firstName"> </div> <div class="form-group col-md-6"> <label for="lastName" class="font-weight-bold">Last name</label> <input type="text" class="form-control" id="lastName"> </div> </div>

<div class="form-row"> <div class="col-md-12"> <p class="font-weight-bold mt-3">Subscriptions</p> </div> </div>

<!-- Change topic names here, if necessary --> <div class="form-row"> <div class="col-md-6"> <div class="custom-control custom-switch"> <input type="checkbox" class="custom-control-input" id="topic1In"> <label class="custom-control-label font-weight-bold" for="topic1In">Special offers</label> <p>Get exclusive offers available only to subscribers.</p> </div> </div> <div class="col-md-6"> <div class="custom-control custom-switch"> <input type="checkbox" class="custom-control-input" id="topic2In"> <label class="custom-control-label font-weight-bold" for="topic2In">Coming soon</label> <p>Learn about our newest products before anyone else!</p> </div> </div> </div>

<div class="form-row mt-3"> <div class="col-md-6"> <div class="custom-control custom-switch"> <input type="checkbox" class="custom-control-input" id="topic3In"> <label class="custom-control-label font-weight-bold" for="topic3In">New products</label>

82

Page 90: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 6: criar e implantar o formulário da Web

<p>Get the inside scoop on products that haven't been released yet.</p> </div> </div> <div class="col-md-6"> <div class="custom-control custom-switch"> <input type="checkbox" class="custom-control-input" id="topic4In"> <label class="custom-control-label font-weight-bold" for="topic4In">Deal of the Day</label> <p>Get special deals in your inbox every day!</p> </div> </div> </div>

<div id="form-response"></div>

<div class="row mt-3"> <div class="col-md-12 text-center"> <button type="submit" id="submit" class="btn btn-primary">Update preferences</button> </div> </div>

<div class="row mt-3"> <div class="col-md-12 text-center"> <button type="button" class="btn btn-link" id="unsubAll">Unsubscribe from all email communications</button> </div> </div> </form>

<div class="row mt-3"> <div class="col-md-12 text-center"> <small class="text-muted">Copyright © 2019, ExampleCorp or its affiliates.</small> </div> </div>

</div></body>

</html>

3. No exemplo anterior, substitua formHandler.js pelo caminho completo para o arquivo JavaScriptdo manipulador de formulários que você criou na seção anterior.

4. Salve o arquivo.

Etapa 6.3: carregar os arquivos do formulárioAgora que você criou o formulário HTML e o manipulador de formulários JavaScript, a última etapa épublicar esses arquivos na Internet. Esta seção pressupõe que você tenha um provedor de hospedagemda Web existente. Se você não tiver um provedor de hospedagem existente, poderá iniciar um site usandoAmazon Route 53, Amazon Simple Storage Service (Amazon S3) e Amazon CloudFront. Para obter maisinformações, consulte Hospede um site estático.

Se você usar outro provedor de hospedagem da Web, consulte a documentação do provedor para obtermais informações sobre a publicação de páginas da Web.

Etapa 6.4: testar o formulárioDepois de publicar o formulário, você deve testá-lo para confirmar se ele funciona corretamente.

83

Page 91: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 6: criar e implantar o formulário da Web

Etapa 6.4.1: usar o formulário para enviar dados de teste

A primeira etapa para testar o formulário de preferências consiste em usá-lo para enviar alguns dados deteste. Nesse caso, você opta por todos os tópicos de assinatura listados no formulário.

Para enviar dados de teste

1. Em um navegador da Web, acesse o local onde você carregou a página de preferências. Se você tiverusado o exemplo de código da Etapa 6.2 (p. 81), verá um formulário que se parece com o exemplona imagem a seguir.

84

Page 92: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 6: criar e implantar o formulário da Web

85

Page 93: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 6: criar e implantar o formulário da Web

2. Adicione a string a seguir ao final do URL. Substitua os valores de firstName, lastName eendpointId pelos valores que você especificou na Etapa 2.

?firstName=Carlos&lastName=Salazar&email=recipient%40example.com&endpointId=12345

Quando você adiciona esses atributos ao final do URL e pressiona Enter, a página é atualizada paraincluir as informações na string do atributo. O formulário deve lembrar o exemplo da imagem a seguir.

86

Page 94: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 6: criar e implantar o formulário da Web

87

Page 95: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 6: criar e implantar o formulário da Web

3. No formulário, use as opções de alternância para optar pelo endpoint em todos os tópicos e escolhaUpdate preferences (Atualizar preferências).

4. Aguarde aproximadamente um minuto e vá para a próxima seção.

Etapa 6.4.2: verificar o status de opção do endpoint de teste

Agora que você enviou alguns dados de teste, é possível usar a ferramenta de segmentação no consoledo Amazon Pinpoint para garantir que os dados de teste foram manipulados corretamente.

Para verificar o status da opção do endpoint

1. Abra o console do Amazon Pinpoint em https://console.aws.amazon.com/pinpoint/.2. Na página All projects (Todos os projetos), selecione o projeto que você criou na Etapa 1.1 (p. 54).3. No painel de navegação, selecione Segments (Segmentos).4. Selecione Create a segment (Criar um segmento).5. Em Segment group 1 (Grupo de segmento 1), escolha Add a filter (Adicionar um filtro) escolha Filter by

endpoint (Filtrar por endpoint).6. Selecione Choose an endpoint attribute (Escolher um atributo de terminal) e depois

ComingSoonOptStatus. Defina o valor do filtro como OptIn.7. Escolha Add an attribute or metric (Adicionar um atributo ou métrica). Adicione o atributo

DealOfTheDay ao filtro e defina o valor como OptIn.8. Repita a etapa anterior para os outros dois tópicos de inclusão: NewProductsOptStatus e

SpecialOffersOptStatus.

Quando você terminar, a seção Segment estimate (Estimativa de segmento) deve indicar se o númerode Eligible endpoints (Endpoints elegíveis) e Total endpoints (Total de endpoints) são ambos 1. Apágina deve se assemelhar ao exemplo mostrado na imagem a seguir.

88

Page 96: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 6: criar e implantar o formulário da Web

89

Page 97: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 6: criar e implantar o formulário da Web

Etapa 6.4.3: testar a funcionalidade "Unsubscribe From All" (Cancelar inscrição detudo)

Além disso, certifique-se de que o botão Unsubscribe from all email communications (Cancelar inscriçãode todas as comunicações por e-mail) no formulário de preferências funcione corretamente. Quandoum cliente escolhe esse botão, seu status de opção para todos os tópicos é definido como "OptOut".Além disso, o atributo OptOut para o registro de endpoint do cliente é definido como "ALL" (TUDO). Essaalteração impede que o endpoint seja incluído nos segmentos que você cria neste projeto no futuro.

Para testar o botão de cancelamento de inscrição

1. Em um navegador da Web, acesse o local onde você carregou a página de preferências.2. Adicione a string a seguir ao final do URL. Substitua os valores de firstName, lastName e

endpointId pelos valores que você especificou na Etapa 2.

?firstName=Carlos&lastName=Salazar&email=recipient%40example.com&endpointId=12345&t1=OptIn&t2=OptIn&t3=OptIn&t4=OptIn

Quando você adiciona esses atributos ao final do URL e pressiona Enter, a página é atualizada paraincluir as informações na string do atributo.

3. No formulário, escolha Unsubscribe from all email communications (Cancelar assinatura de todas ascomunicações por e-mail).

4. Aguarde aproximadamente um minuto e vá para a próxima seção.

Etapa 6.3.4: verificar o status de opção do endpoint de teste

A etapa final no teste do formulário de preferência consiste em confirmar se as solicitações decancelamento de inscrição são tratadas corretamente. Nesta seção, você usa a ferramenta desegmentação no console do Amazon Pinpoint para garantir que seu endpoint de teste seja excluído dascomunicações por e-mail que são enviadas do projeto atual do Amazon Pinpoint.

Para verificar o status da opção do endpoint

1. Abra o console do Amazon Pinpoint em https://console.aws.amazon.com/pinpoint/.2. Na página All projects (Todos os projetos), selecione o projeto que você criou na Etapa 1.1 (p. 54).3. No painel de navegação, selecione Segments (Segmentos).4. Selecione Create a segment (Criar um segmento).5. Observe os valores na seção Segment estimate (Estimativa de segmento). Esta seção deve indicar

que o número de pEligible endpoints (Endpoints elegíveis) é 0 e o número de Total endpoints (Total deendpoints) é 1. A página deve se assemelhar ao exemplo mostrado na imagem a seguir.

90

Page 98: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 6: criar e implantar o formulário da Web

Solução de problemas do formulário

Se você executar essas etapas de teste, mas os dados em seu projeto do Amazon Pinpoint não foremalterados, há algumas etapas que você pode seguir para solucionar o problema:

• No console do Amazon Pinpoint, certifique-se de que você está usando a região da AWS correta.Segmentos e endpoints não são compartilhados entre regiões.

• No console do Lambda, abra a função que você criou na Etapa 4 (p. 64). Na guia Monitoring(Monitoramento), escolha View logs in CloudWatch (Exibir registos no CloudWatch).

91

Page 99: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 7: criar e enviar campanhas do Amazon Pinpoint

Em Log Streams (Fluxos de Log), escolha o evento registrado mais recentemente. Verifique a saídado evento para obter mais informações sobre o problema. Por exemplo, se você receber um erro"AccessDeniedException" nos logs, certifique-se de que o ID do projeto do Amazon Pinpoint e a regiãoda AWS que você informou na Etapa 4 (p. 64) são iguais aos valores de ID do projeto e a regiãoque você especificou na política do IAM na Etapa 3.1 (p. 62). Se você alterou recentemente essesvalores, aguarde alguns minutos e tente novamente.

• Se o CloudWatch não contiver nenhuma informação registrada para a função, verifique se o CORS estáhabilitado no API Gateway e se a API está implantada. Se você não tiver certeza, repita as etapas naEtapa 5.3 (p. 75).

Etapa 7: criar e enviar campanhas do AmazonPinpointA solução de gerenciamento de preferências de e-mail está agora configurada e pronta para uso. Agoravocê pode começar a enviar e-mails de campanha. Esta seção mostra como enviar e-mails de campanhaque contêm um link especial que os destinatários podem usar para gerenciar suas preferências deinscrição.

Etapa 7.1: criar um segmentoPara enviar um e-mail de campanha, você primeiro precisa criar o segmento para o qual deseja enviara campanha. Para os fins deste tutorial, você deve usar segmentos que contêm apenas seus própriosendpoints ou aqueles de destinatários internos em sua organização. Depois de confirmar que a soluçãofunciona conforme esperado, você pode começar a enviar mensagens para destinatários externos.

Para criar um segmento, repita os procedimentos na Etapa 2 (p. 59) para importar um segmento dedestinatários internos.

Etapa 7.2: criar a campanhaDepois de criar um segmento de destinatários, você pode criar uma campanha que direcione o segmento.

Para criar a campanha

1. Abra o console do Amazon Pinpoint em https://console.aws.amazon.com/pinpoint/.2. Na página All projects (Todos os projetos), selecione o projeto que você criou na Etapa 1.1 (p. 54).3. No painel de navegação, selecione Campaigns (Campanhas).4. Selecione Create a campaign (Criar uma campanha).5. Na página Create a campaign (Criar uma campanha), faça o seguinte:

• Para Campaign name (Nome da campanha), digite um nome para a campanha.• Em Campaign type (Tipo de campanha), escolha Standard campaign (Campanha padrão).• Escolha Next (Próximo).

6. Na página Choose a segment (Criar um segmento), faça o seguinte:

• Escolha Use an existing segment (Usar um segmento existente).• Em Segment details (Detalhes do segmento), em Segment (Segmento), selecione o segmento que

você criou na Etapa 7.1 (p. 92).• Escolha Next (Próximo).

7. Na página Create a message (Criar uma mensagem), faça o seguinte:

92

Page 100: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 7: criar e enviar campanhas do Amazon Pinpoint

• Em Specifications (Especificações), de Choose a channel for this campaign (Escolher um canal paraesta campanha), selecione Email (E-mail).

• Em Email details (Detalhes do e-mail), de Sender email address (Endereço de e-mail do remetente),insira o endereço de e-mail do qual você deseja enviar o e-mail. O endereço de e-mail que vocêespecificar deve ser verificado.

• Em Message content (Conteúdo da mensagem), selecione Create a new email (Criar um e-mail).• Para Subject (Assunto), insira a linha de assunto do e-mail.• Em Message (Mensagem), insira a mensagem que você deseja enviar. No corpo do e-mail, inclua

um link "Unsubscribe" (Cancelar inscrição) ou "Change your email preferences" (Alterar suaspreferências de e-mail). Use o seguinte URL como o destino do link:

https://www.example.com/prefs.html ?firstName={{User.UserAttributes.FirstName}} &lastName={{User.UserAttributes.LastName}} &email={{Attributes.Email}} &endpointId={{Attributes.EndpointId}} &t1={{Attributes.SpecialOffersOptStatus}} &t2={{Attributes.NewProductsOptStatus}} &t3={{Attributes.ComingSoonOptStatus}} &t4={{Attributes.DealOfTheDayOptStatus}}

No exemplo anterior, substitua https://www.example.com/prefs.html pelo local onde vocêcarregou o formulário na Etapa 6.3 (p. 83).

Important

O URL no exemplo anterior inclui quebras de linha e espaços para facilitar a leitura.Remova todas as quebras de linha e espaços desse exemplo antes de colá-lo no editor dee-mail.

• Escolha Next (Próximo).8. Na página Choose when to send the campaign (Escolher quando enviar a campanha), faça o

seguinte:

• Em Choose when the campaign should be sent (Escolher quando a campanha deve ser enviada),selecione At a specific time (Em um horário específico).

• Se você quiser enviar a mensagem assim que terminar de criar a campanha, escolha Immediately(Imediatamente). Se você quiser enviar a mensagem em um horário específico, escolha Once (Umavez) e especifique a data e a hora em que a mensagem deverá ser enviada.

• Escolha Next (Próximo).9. Na página Review and launch (Revisar e iniciar), analise as configurações da campanha. Se todas as

configurações estiverem corretas, selecione Launch campaign (Iniciar campanha).10. Quando você receber o e-mail da campanha, escolha o link "Unsubscribe" (Cancelar inscrição) ou

"Manage your email preferences" (Gerenciar suas preferências de e-mail) que você especificouna mensagem. Confirme se o formulário é carregado corretamente e se está preenchido com osvalores apropriados para Email address (Endereço de e-mail), ID, First name (Nome) e Last name(Sobrenome). Além disso, certifique-se de que as seleções na seção Subscriptions (Assinaturas)correspondam aos valores de inclusão que você especificou ao criar o endpoint.

Etapa 7.3: criar segmentos de produçãoApós concluir os procedimentos nas seções anteriores e confirmar que a página de preferências estáfuncionando como esperado, você está pronto para começar a criar segmentos de clientes que optarampor seus vários tópicos.

93

Page 101: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorPróximas etapas

Para criar segmentos de produção para seus tópicos

1. Abra o console do Amazon Pinpoint em https://console.aws.amazon.com/pinpoint/.2. Na página All projects (Todos os projetos), selecione o projeto que você criou na Etapa 1.1 (p. 54).3. No painel de navegação, selecione Segments (Segmentos).4. Na página Create a segment (Criar um segmento), selecione Build a segment (Construir um

segmento).5. Em Specifications (Especificações), de Name (Nome), insira um nome para o segmento.6. Em Segment group 1 (Grupo de segmentos 1), adicione Filter by endpoint (Filtrar por endpoint).7. Em Choose an endpoint attribute (Escolher um atributo de endpoint), selecione

ComingSoonOptStatus. Depois, para Choose values (Escolher valores), escolha OptIn.8. Selecione Create segment (Criar segmento).9. Repita as etapas 4–8 para cada um dos tópicos de otimização restantes (DealOfTheDayOptStatus,

NewProductsOptStatus e SpecialOffersOptStatus). Quando você conclui essa etapa, você tem umsegmento separado para cada um dos seus tópicos de otimização. Para enviar uma campanha pore-mail para clientes que se inscreverem em um tópico específico, escolha o segmento apropriado aocriar a campanha.

10. (Opcional) Crie segmentos adicionais que refinem ainda mais seu público. Ao criar segmentosadicionais, use o menu Include endpoints that are in any of the following segments (Incluir endpointsque estão em qualquer um dos seguintes segmentos) para escolher o segmento base apropriado dosendpoints aceitos.

Para saber mais sobre como criar segmentos, consulte Personalizando segmentos com o AWSLambda (p. 183).

Próximas etapasAo concluir este tutorial, você fez o seguinte:

• Criou um projeto do Amazon Pinpoint, habilitou o canal de e-mail e verificou uma identidade para enviare-mail.

• Criou uma política do IAM que usa o princípio do privilégio mínimo para conceder direitos de acesso eassociou essa política a uma função.

• Criou uma função Lambda que usa a operação UpdateEndpoint na API do Amazon Pinpoint.• Criou uma API REST usando o API Gateway.• Criou e implantou um formulário baseado na Web que coleta as preferências de assinatura dos

destinatários de e-mail.• Criou uma campanha de e-mail que contém um link para o formulário da Web personalizado para cada

destinatário.• Criou segmentos que contêm endpoints que estão incluídos nos seus tópicos.• Executou testes na solução para garantir que ela funcione conforme o esperado.

Esta seção discute algumas maneiras pelas quais você pode usar as informações coletadas usando essasolução. Ela também inclui algumas sugestões de formas de personalizar essa solução para se adequarao seu caso de uso exclusivo.

Usar o formulário para coletar informações adicionaisVocê pode modificar essa solução para coletar informações adicionais no formulário de registro. Porexemplo, você poderia pedir ao cliente para fornecer seu endereço e usar os dados de endereço

94

Page 102: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConfiguração de um sistema de registro de SMS

para preencher os campos Location.City, Location.Country, Location.Region eLocation.PostalCode no recurso de Endpoint. Se você coletar esses dados, poderá usá-los paracriar segmentos segmentados.

Por exemplo, se você oferecer produtos diferentes para clientes com base em seu país, poderá criarum segmento de usuários que tenham optado por um tópico e que estejam localizados em um paísespecífico. Depois disso, você poderia enviar uma campanha para esse segmento que contém produtospersonalizados para esse país ou região. Para fazer essa alteração, você precisa adicionar os camposapropriados ao formulário da Web. Também é preciso modificar o código JavaScript no manipulador deformulários para transmitir os novos valores. Por fim, você precisa modificar a função Lambda que atualizao endpoint para manipular as novas informações de entrada.

Você também pode modificar o formulário para que ele colete informações de contato em outros canais.Por exemplo, você pode usar o formulário para coletar os números de telefone dos clientes para poderenviar alertas por SMS. Para fazer essa alteração, você precisa modificar o HTML do formulário da Webe o código JavaScript no manipulador de formulários. Também é preciso modificar a função Lambda paraque ela crie ou atualize dois endpoints separados (um para o endpoint de e-mail e outro para o endpoint doSMS). Por fim, você deve modificar a função Lambda para que ela gere um valor exclusivo para o atributoUser.UserId e associe esse valor a ambos os endpoints.

Registrar atributos adicionais para fins de auditoriaEssa solução registra dois atributos valiosos quando cria e atualiza endpoints. Primeiro, quandoa primeira função Lambda atualiza o endpoint, ela registra o local do formulário no atributoAttributes.OptSource. Quando um cliente envia o formulário, a função Lambda cria ou atualiza oatributo Attributes.OptStatusLastChanged. Esse atributo contém a data e a hora exatas em que ocliente atualizou pela última vez o status de otimização de todos os seus tópicos.

Esses dois campos podem ser úteis caso seja solicitado um provedor de e-mail ou uma agênciareguladora para fornecer evidências do consentimento de um cliente. Você pode recuperar essasinformações a qualquer momento usando a operação da API GetEndpoint.

Você também pode modificar as funções Lambda para registrar dados adicionais que podem ser úteis parafins de auditoria, como o endereço IP do qual a solicitação de registro foi enviada.

Coletar novas informações do clienteA solução neste tutorial usa a operação da API UpdateEndpoint, que cria endpoints e também atualiza osexistentes. Você pode usar o formulário da Web para capturar informações sobre novos clientes. Se vocêfizer isso, precisará gerar um ID de endpoint exclusiva para cada cliente. Quando um novo endpoint entraem seu sistema dessa maneira, você deve definir o valor OptOut como "ALL". Em seguida, você deveenviar uma mensagem para o endpoint que solicita ao cliente que clique em um link para confirmar suaassinatura. Quando o cliente confirma a assinatura, você pode alterar o valor OptOut para "NONE".

Essa prática é chamada de "inclusão dupla". Ao usar um sistema de inclusão dupla, você pode impedirque usuários mal-intencionados registrem endpoints que não são deles. A implementação desse tipo desistema ajuda a proteger sua reputação como remetente. Além disso, a captura desse tipo de informaçãode opção explícita é necessária em vários países e regiões em todo o mundo.

Tutorial: configuração de um sistema de registro deSMS

Mensagens SMS (mensagens de texto) são uma ótima forma de enviar mensagens urgentes para seusclientes. Atualmente, muitas pessoas mantêm seus celulares por perto o tempo todo. Além disso, as

95

Page 103: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorSobre a inclusão dupla

mensagens SMS tendem a atrair mais a atenção das pessoas do que as notificações por push, e-mails outelefonemas.

Uma maneira comum de capturar os números de celular de um cliente é usar um formulário na Web.Depois de verificar o número de telefone do cliente e confirmar sua assinatura, você pode começar aenviar mensagens SMS promocionais, transacionais e informativas para esse cliente.

Este tutorial mostra como configurar um formulário da Web para capturar informações de contrato de umcliente. O formulário da Web envia essas informações para o Amazon Pinpoint. Em seguida, o AmazonPinpoint verifica se o número de telefone é válido e captura outros metadados relacionados ao númerode telefone. Depois disso, o Amazon Pinpoint envia ao cliente uma mensagem solicitando a confirmaçãoda assinatura. Depois que o cliente confirma sua assinatura, o Amazon Pinpoint opta por receber suasmensagens.

O diagrama de arquitetura a seguir mostra o fluxo de dados nessa solução.

Sobre a inclusão duplaEste tutorial mostra como configurar um sistema de inclusão dupla no Amazon Pinpoint que usamensagens SMS bidirecionais.

Em um sistema de inclusão dupla por SMS, um cliente fornece seu número de telefone enviando-o em umformulário da Web ou em seu aplicativo. Quando você recebe a solicitação do cliente, cria um endpoint

96

Page 104: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorSobre esta solução

no Amazon Pinpoint. O novo endpoint deve ser excluído de suas comunicações. Em seguida, você enviauma mensagem para esse número de telefone. Em sua mensagem, você solicita ao destinatário queconfirme sua assinatura respondendo com uma palavra ou frase específica (como "Sim" ou "Confirmar").Se o cliente responder à mensagem com a palavra ou frase que você especificou, você alterará o status doendpoint para incluído. Caso contrário, se o cliente não responder ou responder com uma palavra ou frasediferente, você poderá deixar o endpoint com o status de não incluído.

Sobre esta soluçãoEsta seção contém informações sobre a solução que você está criando neste tutorial.

Público-alvo

Este tutorial é destinado a públicos-alvo de desenvolvedores e implementadores de sistemas. Você nãoprecisa estar familiarizado com o Amazon Pinpoint para concluir as etapas deste tutorial. No entanto, vocêdeve se sentir à vontade para gerenciar políticas do IAM, criar funções Lambda no Node.js e implantarconteúdo da Web.

Recursos usados

Este tutorial inclui exemplos de uso dos seguintes recursos do Amazon Pinpoint:

• Envio de mensagens SMS transacionais• Obtenção de informações sobre números de telefone usando a validação do número de telefone• Mensagens SMS recebidas usando mensagens SMS bidirecionais• Criação de segmentos dinâmicos• Criação de campanhas• Interação com a API do Amazon Pinpoint usando o AWS Lambda

Tempo necessário

Deve levar cerca de uma hora para concluir este tutorial. Depois de implementar essa solução, há etapasadicionais que você pode seguir para refinar a solução para se adequar ao seu caso de uso exclusivo.

Restrições regionais

Este tutorial exige que você arrende um código longo usando o console do Amazon Pinpoint. Você podeusar o console do Amazon Pinpoint para arrendar códigos longos dedicados com base em vários países.No entanto, somente os códigos longos baseados nos Estados Unidos ou no Canadá podem ser usadospara enviar mensagens SMS. (Você pode usar códigos longos baseados em outros países e regiões paraenviar mensagens de voz.)

Desenvolvemos os exemplos de código neste tutorial com essa restrição em mente. Por exemplo, osexemplos de código supõem que o número de telefone do destinatário sempre tem 10 dígitos e um códigode país de 1. Se você implementar essa solução nos países ou regiões dos Estados Unidos ou Canadá,será necessário modificar os exemplos de código adequadamente.

Custos pelo uso de recursos

Não há cobrança pela criação de uma conta da AWS. No entanto, ao implementar essa solução, podehaver os seguintes custos:

• Custos de arrendamento de código longo – Para concluir este tutorial, você precisa arrendar um códigolongo. Códigos longos baseados nos Estados Unidos (excluindo os territórios dos EUA) e no Canadácustam 1,00 USD por mês.

• Uso de validação do número de telefone – A solução neste tutorial usa o recurso de validação donúmero de telefone do Amazon Pinpoint para verificar se cada número recebido é válido e formatado

97

Page 105: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorPré-requisitos

corretamente e para obter informações adicionais sobre o número de telefone. Você paga 0,006 USDpara cada solicitação de validação de número de telefone.

• Custos de envio de mensagens – A solução neste tutorial envia mensagens SMS de saída. Vocêpaga por cada mensagem enviada por meio do Amazon Pinpoint. O preço que você paga por cadamensagem depende do país ou região do destinatário. Se você enviar mensagens para destinatáriosnos Estados Unidos (excluindo os territórios dos EUA), pagará 0,00645 USD por mensagem. Se vocêenviar mensagens para destinatários no Canadá, pagará entre 0,00109–0,02 USD, dependendo daoperadora e do local do destinatário.

• Custos de recebimento de mensagens – Esta solução também recebe e processa mensagens SMSrecebidas. Você paga por cada mensagem recebida enviada para números de telefone associadosà sua conta do Amazon Pinpoint. O preço que você paga depende do local em que o número detelefone de recebimento é baseado. Se o seu número de recebimento for baseado nos Estados Unidos(excluindo os territórios dos EUA), você pagará 0,0075 USD por mensagem recebida. Se o seu númeroé baseado no Canadá, você pagará 0,00155 USD por mensagem recebida.

• Uso de Lambda – Esta solução usa duas funções Lambda que interagem com a API do AmazonPinpoint. Quando você chama uma função Lambda, você é cobrado com base no número desolicitações para as funções, pelo tempo necessário para executar o código e pela quantidade dememória usada pelas funções. As funções neste tutorial usam pouca memória e geralmente sãoexecutadas por 1–3 segundos. Alguns ou todos os seus usos desta solução podem se enquadrar nonível de uso gratuito do Lambda. Para obter mais informações, consulte Definição de preço do Lambda.

• Uso do API Gateway – O formulário da Web nesta solução chama uma API gerenciada pelo APIGateway. Para cada milhão de chamadas para o API Gateway, você paga 3,50–3,70 USD, dependendoda região da AWS na qual você usa o Amazon Pinpoint. Para obter mais informações, consulteDefinição de preço do API Gateway.

• Custos de hospedagem na web – Esta solução inclui um formulário baseado na Web que você precisahospedar em seu site. O preço que você paga pela hospedagem desse conteúdo depende do provedorde hospedagem na web.

Note

Todos os preços apresentados nesta lista são em dólares americanos (USD).

Próximo: Pré-requisitos (p. 98)

Pré-requisitosAntes de começar este tutorial, você precisa concluir os seguintes pré-requisitos:

• Você precisa ter uma conta da AWS. Para criar uma conta da AWS, acesse https://console.aws.amazon.com/ e escolha Create a new AWS account (Criar uma conta da AWS).

• A conta que você usa para entrar no Console de gerenciamento da AWS deve ser capaz de executar asseguintes tarefas:• Criar políticas e funções do IAM• Criar projetos do Amazon Pinpoint• Criar funções do Lambda• Criar APIs no API Gateway

• Você precisa ter um método de hospedagem de páginas da Web e deve saber como publicar páginasda Web. Embora você possa usar os serviços da AWS para hospedar as páginas da Web, não énecessário.

Tip

Para saber mais sobre como hospedar páginas da Web usando os serviços da AWS, consulteHospede um site estático.

98

Page 106: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 1: configurar o Amazon Pinpoint

Próximo: Configurar o Amazon Pinpoint (p. 99)

Etapa 1: configurar o Amazon PinpointA primeira etapa na implementação dessa solução é configurar o Amazon Pinpoint. Nesta seção, faça oseguinte:

• Criar um projeto do Amazon Pinpoint• Habilitar o canal do SMS e arrendar um código longo• Configurar mensagens SMS bidirecionais

Antes de começar este tutorial, você deve revisar os pré-requisitos (p. 98).

Etapa 1.1: criar um projeto do Amazon PinpointPara começar, é preciso criar um projeto do Amazon Pinpoint. No Amazon Pinpoint, um projeto consisteem segmentos, campanhas, configurações e dados unidos por um propósito comum. Por exemplo, vocêpode usar um projeto para conter todo o conteúdo relacionado a um determinado aplicativo ou a umamarca ou iniciativa de marketing específica. Quando você adiciona informações do cliente ao AmazonPinpoint, essas informações são associadas a um projeto.

As etapas envolvidas na criação de um projeto diferem dependendo se você criou um projeto no AmazonPinpoint anteriormente.

Criação de um projeto (novos usuários do Amazon Pinpoint)

Essas etapas descrevem o processo de criação de um projeto do Amazon Pinpoint, caso você nuncatenha criado um projeto na região atual da AWS.

Para criar um projeto

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon Pinpoint em https://console.aws.amazon.com/pinpoint/.

2. Use o seletor de região para escolher a região da AWS que você deseja usar, conforme mostrado naimagem a seguir. Em caso de dúvida, escolha a região mais próxima de você.

3. Em Get started (Conceitos básicos), em Name (Nome), insira um nome para a campanha (comoSMSRegistration) e escolha Create project (Criar projeto).

99

Page 107: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 1: configurar o Amazon Pinpoint

4. Na página Configure features (Configurar recursos), escolha Skip this step (Ignorar esta etapa).5. No painel de navegação, selecione All projects (Todos os projetos).6. Na página All projects (Todos os projetos), ao lado do projeto recém-criado, copie o valor mostrado na

coluna Project ID (ID do projeto).

Tip

Você precisa usar esse ID em alguns lugares diferentes neste tutorial. Mantenha o ID doprojeto em um local conveniente para que você possa copiá-lo mais tarde.

Criação de um projeto (usuários existentes do Amazon Pinpoint)

Essas etapas descrevem o processo de criação de um projeto do Amazon Pinpoint, caso você já tenhacriado projetos na região atual da AWS.

Para criar um projeto

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon Pinpoint em https://console.aws.amazon.com/pinpoint/.

2. Use o seletor de região para escolher a região da AWS que você deseja usar, conforme mostrado naimagem a seguir. Em caso de dúvida, escolha a região mais próxima de você.

3. Na página All projects (Todos os projetos), escolha Create a project (Criar um projeto).4. Na janela Create a project (Criar um projeto), em Project name (Nome do projeto), insira um nome

para o projeto (como SMSRegistration). Escolha Create (Criar).5. Na página Configure features (Configurar recursos), escolha Skip this step (Ignorar esta etapa).6. No painel de navegação, selecione All projects (Todos os projetos).7. Na página All projects (Todos os projetos), ao lado do projeto recém-criado, copie o valor mostrado na

coluna Project ID (ID do projeto).

Tip

Você precisa usar esse ID em alguns lugares diferentes neste tutorial. Mantenha o ID doprojeto em um local conveniente para que você possa copiá-lo mais tarde.

Etapa 1.2: obter um código longo dedicadoDepois de criar um projeto, você pode começar a configurar recursos nesse projeto. Nesta seção, vocêhabilita o canal de SMS e obtém um código longo dedicado para usar ao enviar mensagens SMS.

100

Page 108: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 1: configurar o Amazon Pinpoint

Note

Esta seção pressupõe que você esteja alugando um código longo baseado nos Estados Unidosou no Canadá. Se você seguir os procedimentos desta seção, mas escolher um país diferente dosEstados Unidos ou do Canadá, não poderá usar esse número para enviar mensagens SMS. Parasaber mais sobre o arrendamento de códigos longos compatíveis com SMS em outros países quenão sejam os Estados Unidos ou o Canadá, consulte Solicitação de códigos longos dedicadospara mensagens SMS com o Amazon Pinpoint no Guia do usuário do Amazon Pinpoint.

1. No painel de navegação, em Settings (Configurações), selecione SMS and voice (SMS e voz).2. Ao lado de SMS settings (Configurações de SMS), escolha Edit (Editar).3. Em General settings (Configurações gerais), selecione Enable the SMS channel for this project

(Habilitar o canal de SMS para este projeto) e depois Save changes (Salvar alterações).4. Ao lado de Number settings (Configurações de número), selecione Request long codes (Solicitar

códigos longos).5. Em Long code specifications (Especificações de código longo), faça o seguinte:

• Em Target country or region (País ou região de destino), selecione United States (Estados Unidos)ou Canada (Canadá).

• Em Default call type (Tipo de chamada padrão), selecione Transactional (Transacional).• Em Quantity (Quantidade), selecione 1.

6. Selecione Request long code (Solicitar código longo).

Etapa 1.3: habilitar SMS bidirecionalAgora que você tem um número de telefone dedicado, poderá configurar o SMS bidirecional. A habilitaçãodo SMS bidirecional possibilita que seus clientes respondam às mensagens SMS que você envia a eles.Nesta solução, você usa SMS bidirecional para dar aos seus clientes uma maneira de confirmar que elesdesejam se inscrever em seu programa de SMS.

1. Na página de configurações SMS and voice (SMS e voz), em Number settings (Configurações denúmero), escolha o código longo que você recebeu na seção anterior.

2. Em Required keywords (Palavras-chave obrigatórias), faça o seguinte:

• Ao lado da palavra-chave HELP (AJUDA), em Response message (Mensagem de resposta), insiraa mensagem que você deseja que o Amazon Pinpoint envie automaticamente aos destinatáriosquando eles enviarem a palavra-chave "HELP" (ou suas variações) para esse código longo.

• Ao lado da palavra-chave STOP (PARAR), em Response message (Mensagem de resposta), insiraa mensagem que você deseja que o Amazon Pinpoint envie automaticamente aos destinatáriosquando eles enviarem a palavra-chave "STOP" (ou suas variações) para esse código longo.

Note

Quando um destinatário envia a palavra-chave "STOP" (PARAR) para um de seus códigoslongos, o Amazon Pinpoint faz com esse destinatário não receba as futuras mensagensSMS enviadas desse projeto.

3. Em Registered keyword (Palavra-chave registrada), para Keyword (Palavra-chave), insira a palavraque os clientes podem enviar para você se registrar para receber suas mensagens. Em seguida,em Response message (Mensagem de resposta), insira a mensagem que o Amazon Pinpoint enviaautomaticamente quando um cliente envia a palavra-chave para esse código longo.

Note

Para os fins deste tutorial, o valor inserido nesta seção não é importante. Nesse cenário, osclientes se inscrevem em seu programa de mensagens SMS preenchendo um formulário deregistro, em vez de enviarem uma mensagem diretamente para você.

101

Page 109: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 2: criar políticas e funções do IAM

4. Em Two-Way SMS (SMS bidirecional), selecione Enable two-way SMS (Habilitar SMS bidirecional).5. Em Incoming message destination (Destino da mensagem de entrada), selecione Create a

new SNS topic (Criar um tópico do SNS). Insira um nome de tópico do Amazon SNS, comoSMSRegistrationFormTopic.

6. Em Two-way SMS keywords (Palavras-chave por SMS bidirecionais), em Keyword (Palavra-chave),insira a palavra que os clientes enviam a você para confirmar suas assinaturas (como Yes ouConfirm).

Note

Esse valor não diferencia maiúsculas de minúsculas.7. Em Response message (Mensagem de resposta), insira a mensagem que o Amazon Pinpoint envia

automaticamente aos clientes quando eles enviam a palavra-chave que você especificou na etapaanterior.

8. Escolha Save (Salvar).

Próximo: Criar políticas e funções do IAM (p. 102)

Etapa 2: criar políticas e funções do IAMA próxima etapa na implementação da solução de registro de SMS consiste em configurar uma política euma função no AWS Identity and Access Management (IAM). No caso dessa solução, será preciso criaruma política que forneça acesso a determinados recursos relacionados ao Amazon Pinpoint. Crie umafunção e anexe a política a ela. Posteriormente neste tutorial, você criará uma função do AWS Lambda queusa essa função para chamar determinadas operações na API do Amazon Pinpoint.

Etapa 2.1: criar uma política do IAMEsta seção mostra como criar uma política do IAM. Usuários e funções que usam essa política podemfazer o seguinte:

• Usar o recurso de validação de número de telefone• Exibir, criar e atualizar os endpoints do Amazon Pinpoint• Enviar mensagens para endpoints do Amazon Pinpoint

Neste tutorial, você deseja dar ao Lambda a capacidade de executar essas tarefas. Contudo, para obtermaior segurança, essa política usa o princípio de conceder o privilégio mínimo. Em outras palavras, eleconcede apenas as permissões necessárias para concluir essa solução e não mais. Essa política é restritadas seguintes formas:

• Você só pode usá-lo para chamar a API de validação de número de telefone em uma região específica.• Você só pode usá-la para exibir, criar ou atualizar endpoints associados a um projeto específico do

Amazon Pinpoint.• Você só pode usá-la para enviar mensagens para endpoints associados a um projeto específico do

Amazon Pinpoint.

Para criar a política

1. Faça login no Console de gerenciamento da AWS e abra o console da IAM em https://console.aws.amazon.com/iam/.

2. No painel de navegação, escolha Policies (Políticas) e Create policy (Criar política).3. Na guia JSON, cole o seguinte código.

102

Page 110: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 2: criar políticas e funções do IAM

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:CreateLogGroup" ], "Resource": "arn:aws:logs:*:*:*" }, { "Effect": "Allow", "Action": "mobiletargeting:SendMessages", "Resource": "arn:aws:mobiletargeting:region:accountId:apps/projectId/*" }, { "Effect": "Allow", "Action": [ "mobiletargeting:GetEndpoint", "mobiletargeting:UpdateEndpoint", "mobiletargeting:PutEvents" ], "Resource": "arn:aws:mobiletargeting:region:accountId:apps/projectId/endpoints/*" }, { "Effect": "Allow", "Action": "mobiletargeting:PhoneNumberValidate", "Resource": "arn:aws:mobiletargeting:region:accountId:phone/number/validate" } ]}

No exemplo anterior, faça o seguinte:

• Substitua region (região) pela região da AWS em que você usa o Amazon Pinpoint, como us-east-1 ou eu-central-1.

Tip

Para obter uma lista completa das regiões da AWS nas quais o Amazon Pinpoint estádisponível, consulte Regiões da AWS e endpoints na AWS General Reference.

• Substitua accountId pelo ID exclusivo da sua conta da AWS.• Substitua projectId pelo ID exclusivo do projeto que você criou na Etapa 1.1 (p. 99) deste

tutorial.

Note

As ações logs permitem que o Lambda registre sua saída no CloudWatch Logs.4. Escolha Review policy (Revisar política).5. Em Name (Nome), insira um nome para a política, como RegistrationFormPolicy. Escolha

Create policy (Criar política).

103

Page 111: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: criar funções do Lambda

Etapa 2.2: criar uma função IAMPara criar a função

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.2. No painel de navegação do console do IAM, selecione Roles (Funções) e Create role (Criar função).3. Em Choose the service that will use this role (Selecionar o serviço que usará esta função), selecione

Lambda e Next: Permissions (Próximo: Permissões).

Note

O serviço que você escolhe nesta etapa não é importante — independentemente do serviçoescolhido, você aplicará sua própria política na próxima etapa.

4. Em Attach permissions policy (Anexar política de permissões), escolha a política que você criou naseção anterior e depois Next: Tags (Próximo: Tags).

5. Selecione Next: Review (Próximo: análise).6. Em Review (Revisar), em Name (Nome), insira um nome para a função, como

SMSRegistrationForm. Selecione Create role (Criar função).

Próximo: Criar a função Lambda (p. 104)

Etapa 3: criar funções do LambdaEsta solução usa duas funções Lambda. Esta seção mostra como criar e configurar essas funções.Depois, você configurará o API Gateway e Amazon Pinpoint para executar essas funções quandodeterminados eventos ocorrerem. Ambas as funções criam e atualizam endpoints no projeto do AmazonPinpoint que você especifica. A primeira função também usa o recurso de validação do número detelefone.

Etapa 3.1: criar a função que valida as informações do cliente ecria endpointsA primeira função recebe informações de seu formulário de registro, que, por sua vez, recebe do AmazonAPI Gateway. Ela usa essas informações para obter informações sobre o número de telefone do clienteusando o recurso de validação do número de telefone (p. 192) do Amazon Pinpoint. Depois, a funçãousa os dados validados para criar um endpoint no projeto do Amazon Pinpoint que você especificar. Porpadrão, o endpoint que a função cria é cancelado em suas futuras comunicações, mas esse status podeser alterado pela segunda função. Por fim, essa função envia ao cliente uma mensagem solicitando queele verifique se deseja receber suas comunicações por SMS.

Para criar a função do Lambda

1. Abra o console do AWS Lambda em https://console.aws.amazon.com/lambda/.2. Selecione Create function (Criar função).3. Em Create a function (Criar uma função), escolha Blueprints (Esquemas).4. No campo de pesquisa, digite hello e pressione Enter. Na lista de resultados, escolha a função do

Node.js hello-world, como mostra a imagem a seguir. Selecione Configure (Configurar).

104

Page 112: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: criar funções do Lambda

105

Page 113: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: criar funções do Lambda

5. Em Basic information (Informações básicas), faça o seguinte:

• Em Name (Nome), insira um nome para a função, como RegistrationForm.• Em Role (Função), selecione Choose an existing role (Escolher uma função existente).• Em Existing role (Função existente), escolha a função SMSRegistrationForm criada por você na

Etapa 2.2 (p. 104).

Ao concluir, selecione Create function (Criar função).6. Exclua a função de exemplo no editor de código e cole o código a seguir:

var AWS = require('aws-sdk');var pinpoint = new AWS.Pinpoint({region: process.env.region});

// Make sure the SMS channel is enabled for the projectId that you specify.// See: https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-setup.htmlvar projectId = process.env.projectId;

// You need a dedicated long code in order to use two-way SMS. // See: https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-voice-manage.html#channels-voice-manage-request-phone-numbersvar originationNumber = process.env.originationNumber;

// This message is spread across multiple lines for improved readability.var message = "ExampleCorp: Reply YES to confirm your subscription. 2 msgs per " + "month. No purchase req'd. Msg&data rates may apply. Terms: " + "example.com/terms-sms"; var messageType = "TRANSACTIONAL";

exports.handler = (event, context, callback) => { console.log('Received event:', event); validateNumber(event);};

function validateNumber (event) { var destinationNumber = event.destinationNumber; if (destinationNumber.length == 10) { destinationNumber = "+1" + destinationNumber; } var params = { NumberValidateRequest: { IsoCountryCode: 'US', PhoneNumber: destinationNumber } }; pinpoint.phoneNumberValidate(params, function(err, data) { if (err) { console.log(err, err.stack); } else { console.log(data); //return data; if (data['NumberValidateResponse']['PhoneTypeCode'] == 0) { createEndpoint(data, event.firstName, event.lastName, event.source); } else { console.log("Received a phone number that isn't capable of receiving " +"SMS messages. No endpoint created."); } } });}

106

Page 114: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: criar funções do Lambda

function createEndpoint(data, firstName, lastName, source) { var destinationNumber = data['NumberValidateResponse']['CleansedPhoneNumberE164']; var endpointId = data['NumberValidateResponse']['CleansedPhoneNumberE164'].substring(1); var params = { ApplicationId: projectId, // The Endpoint ID is equal to the cleansed phone number minus the leading // plus sign. This makes it easier to easily update the endpoint later. EndpointId: endpointId, EndpointRequest: { ChannelType: 'SMS', Address: destinationNumber, // OptOut is set to ALL (that is, endpoint is opted out of all messages) // because the recipient hasn't confirmed their subscription at this // point. When they confirm, a different Lambda function changes this // value to NONE (not opted out). OptOut: 'ALL', Location: { PostalCode:data['NumberValidateResponse']['ZipCode'], City:data['NumberValidateResponse']['City'], Country:data['NumberValidateResponse']['CountryCodeIso2'], }, Demographic: { Timezone:data['NumberValidateResponse']['Timezone'] }, Attributes: { Source: [ source ] }, User: { UserAttributes: { FirstName: [ firstName ], LastName: [ lastName ] } } } }; pinpoint.updateEndpoint(params, function(err,data) { if (err) { console.log(err, err.stack); } else { console.log(data); //return data; sendConfirmation(destinationNumber); } });}

function sendConfirmation(destinationNumber) { var params = { ApplicationId: projectId, MessageRequest: { Addresses: { [destinationNumber]: { ChannelType: 'SMS' } }, MessageConfiguration: { SMSMessage: {

107

Page 115: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: criar funções do Lambda

Body: message, MessageType: messageType, OriginationNumber: originationNumber } } } };

pinpoint.sendMessages(params, function(err, data) { // If something goes wrong, print an error message. if(err) { console.log(err.message); // Otherwise, show the unique ID for the message. } else { console.log("Message sent! " + data['MessageResponse']['Result'][destinationNumber]['StatusMessage']); } });}

7. Em Environment variables (Variáveis de ambiente), faça o seguinte:

• Na primeira linha, crie uma variável com uma chave de originationNumber. Em seguida,defina o valor para o número de telefone do código longo dedicado que você recebeu na Etapa1.2 (p. 100).

Note

Não deixe de incluir o sinal de mais (+) e o código do país para o número de telefone. Nãoinclua outros caracteres especiais, como traços (-), pontos (.) ou parênteses.

• Na segunda linha, crie uma variável com uma chave de projectId. Em seguida, defina o valorpara o ID exclusivo do projeto que você criou na Etapa 1.1 (p. 99).

• Na terceira linha, crie uma variável com uma chave de region. Em seguida, defina o valor para aregião em que você usa Amazon Pinpoint, como us-east-1 ou us-west-2.

Quando você terminar, a seção Environment Variables (Variáveis de ambiente) deve ser semelhanteao exemplo mostrado na imagem a seguir.

108

Page 116: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: criar funções do Lambda

8. Na parte superior da página, escolha Save (Salvar).

Etapa 3.1.1: Testar a função

Depois de criar a função, você deve testá-la para verificar se está configurada corretamente. Além disso,verifique se a função do IAM que você criou tem as permissões apropriadas.

Para testar a função

1. Escolha Test (Testar).2. Na janela Configure test event (Configurar evento de teste), faça o seguinte:

• Selecione Create new test event (Criar evento de teste).• Em Event name (Nome do evento), insira um nome para o evento de teste, como MyPhoneNumber.• Apague o código de exemplo no editor de código. Cole o seguinte código:

{ "destinationNumber": "2065550142", "firstName": "Carlos", "lastName": "Salazar", "source": "Registration form test"}

• No exemplo de código anterior, substitua os valores dos atributos destinationNumber,firstName e lastName pelos valores que você deseja usar para teste, como seus detalhes de

109

Page 117: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: criar funções do Lambda

contato pessoais. Ao testar essa função, ele envia uma mensagem SMS para o número de telefoneespecificado por você no atributo destinationNumber. Certifique-se de que o número de telefoneespecificado possa receber mensagens SMS.

• Escolha Create (Criar).3. Escolha Test (Testar) novamente.4. Em Execution result: succeeded (Resultado de execução: bem-sucedido), selecione Details

(Detalhes). Na seção Log output (Resultado de saída do log), analise a saída da função. Certifique-sede que a função foi executada sem erros.

Verifique o dispositivo associado ao destinationNumber que você especificou para garantir querecebeu a mensagem de teste.

5. Abra o console do Amazon Pinpoint em https://console.aws.amazon.com/pinpoint/.6. Na página All projects (Todos os projetos), selecione o projeto que você criou na Etapa 1.1 (p. 99).7. No painel de navegação, selecione Segments (Segmentos). Na página Segments (Segmentos),

selecione Create a segment (Criar um segmento).8. Em Segment group 1 (Grupo de segmentos 1), em Add filters to refine your segment (Adicionar filtros

para refinar seu segmento), escolha Filter by user (Filtrar por usuário).9. Para Choose a user attribute (Escolher um atributo do usuário), escolha FirstName. Depois, para

Choose values (Escolha valores), escolha o nome que você especificou no evento de teste.

A seção Segment estimate (Estimativa de segmento) deve mostrar que há zero endpoints elegíveise um endpoint total, conforme mostrado na imagem a seguir. Tal resultado é esperado. Quandoa função cria um endpoint, o endpoint é cancelado. Os segmentos no Amazon Pinpoint excluemautomaticamente os endpoints excluídos.

110

Page 118: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: criar funções do Lambda

111

Page 119: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: criar funções do Lambda

Etapa 3.2: criar a função que habilita os clientes às suascomunicaçõesA segunda função é executada somente quando um cliente responde à mensagem enviada pela primeirafunção. Se a resposta do cliente inclui a palavra-chave especificado na Etapa 1.3 (p. 100), a funçãoatualiza seus registros de endpoint para habilitá-lo a futuras comunicações. O Amazon Pinpoint tambémresponde automaticamente com a mensagem que você especificou na Etapa 1.3.

Se o cliente não responder ou responder com algo diferente da palavra-chave designada, nadaacontecerá. O endpoint do cliente permanece no Amazon Pinpoint, mas não pode ser direcionado porsegmentos.

Para criar a função do Lambda

1. Abra o console do AWS Lambda em https://console.aws.amazon.com/lambda/.2. Selecione Create function (Criar função).3. Em Create function (Criar função), escolha Blueprints (Esquemas).4. No campo de pesquisa, digite hello e pressione Enter. Na lista de resultados, escolha a função do

Node.js hello-world, como mostra a imagem a seguir. Selecione Configure (Configurar).5. Em Basic information (Informações básicas), faça o seguinte:

• Em Name (Nome), insira um nome para a função, como RegistrationForm_OptIn.• Em Role (Função), selecione Choose an existing role (Escolher uma função existente).• Em Existing role (Função existente), escolha a função SMSRegistrationForm criada por você na

Etapa 2.2 (p. 104).

Ao concluir, selecione Create function (Criar função).6. Exclua a função de exemplo no editor de código e cole o código a seguir:

var AWS = require('aws-sdk');var projectId = process.env.projectId;var confirmKeyword = process.env.confirmKeyword.toLowerCase();var pinpoint = new AWS.Pinpoint({region: process.env.region});

exports.handler = (event, context) => { console.log('Received event:', event); var timestamp = event.Records[0].Sns.Timestamp; var message = JSON.parse(event.Records[0].Sns.Message); var originationNumber = message.originationNumber; var response = message.messageBody.toLowerCase(); if (response.includes(confirmKeyword)) { updateEndpointOptIn(originationNumber, timestamp); }};

function updateEndpointOptIn (originationNumber, timestamp) { var endpointId = originationNumber.substring(1); var params = { ApplicationId: projectId, EndpointId: endpointId, EndpointRequest: { Address: originationNumber, ChannelType: 'SMS', OptOut: 'NONE', Attributes: {

112

Page 120: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: criar funções do Lambda

OptInTimestamp: [ timestamp ] }, } }; pinpoint.updateEndpoint(params, function(err, data) { if (err) { console.log("An error occurred.\n"); console.log(err, err.stack); } else { console.log("Successfully changed the opt status of endpoint ID " + endpointId); } });}

7. Em Environment variables (Variáveis de ambiente), faça o seguinte:

• Na primeira linha, crie uma variável com uma chave de projectId. Em seguida, defina o valorpara o ID exclusivo do projeto que você criou na Etapa 1.1 (p. 99).

• Na segunda linha, crie uma variável com uma chave de region. Em seguida, defina o valor para aregião em que você usa Amazon Pinpoint, como us-east-1 ou us-west-2.

• Na terceira linha, crie uma variável com uma chave de confirmKeyword. Em seguida, defina ovalor para a palavra-chave de confirmação que você criou na Etapa 1.3 (p. 100).

Note

A palavra-chave não diferencia maiúsculas e minúsculas. Essa função converte amensagem recebida em letras minúsculas.

Quando você terminar, a seção Environment Variables (Variáveis de ambiente) deve ser semelhanteao exemplo mostrado na imagem a seguir.

113

Page 121: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 3: criar funções do Lambda

8. Na parte superior da página, escolha Save (Salvar).

Etapa 3.2.1: Testar a função

Depois de criar a função, você deve testá-la para verificar se está configurada corretamente. Além disso,verifique se a função do IAM que você criou tem as permissões apropriadas.

Para testar a função

1. Escolha Test (Testar).2. Na janela Configure test event (Configurar evento de teste), faça o seguinte:

a. Selecione Create new test event (Criar evento de teste).b. Em Event name (Nome do evento), insira um nome para o evento de teste, como MyResponse.c. Apague o código de exemplo no editor de código. Cole o seguinte código:

{ "Records":[ { "Sns":{ "Message":"{\"originationNumber\":\"+12065550142\",\"messageBody\":\"Yes\"}", "Timestamp":"2019-02-20T17:47:44.147Z" } }

114

Page 122: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 4: configurar o Amazon API Gateway

]}

No exemplo de código anterior, substitua os valores do atributo originationNumber com onúmero de telefone que você usou quando você testou a função Lambda anterior. Substitua ovalor de messageBody pela palavra-chave SMS bidirecional especificada na Etapa 1.3 (p. 101).Como opção, você pode substituir o valor de Timestamp pela data e hora atuais.

d. Escolha Create (Criar).3. Escolha Test (Testar) novamente.4. Em Execution result: succeeded (Resultado de execução: bem-sucedido), selecione Details

(Detalhes). Na seção Log output (Resultado de saída do log), analise a saída da função. Certifique-sede que a função foi executada sem erros.

5. Abra o console do Amazon Pinpoint em https://console.aws.amazon.com/pinpoint/.6. Na página All projects (Todos os projetos), selecione o projeto que você criou na Etapa 1.1 (p. 99).7. No painel de navegação, selecione Segments (Segmentos). Na página Segments (Segmentos),

selecione Create a segment (Criar um segmento).8. Em Segment group 1 (Grupo de segmentos 1), em Add filters to refine your segment (Adicionar filtros

para refinar seu segmento), escolha Filter by user (Filtrar por usuário).9. Para Choose a user attribute (Escolher um atributo do usuário), escolha FirstName. Depois, para

Choose values (Escolha valores), escolha o nome que você especificou no evento de teste.

A seção Segment estimate (Estimativa de segmento) deve mostrar que há um endpoint elegível e umendpoint total.

Próximo: Configurar o Amazon API Gateway (p. 115)

Etapa 4: configurar o Amazon API GatewayNesta seção, você cria uma API usando o Amazon API Gateway. O formulário de registro que vocêimplanta nesta solução chama essa API. O API Gateway então transmite as informações capturadas noformulário de registro para a função Lambda criada na Etapa 3 (p. 104).

Etapa 4.1: criar a APIPrimeiro, é preciso criar uma API no API Gateway. Os procedimentos a seguir mostram como criar umaAPI REST.

Para criar uma API

1. Abra o console do API Gateway em https://console.aws.amazon.com/apigateway/.2. Escolha Create API (Criar API). Faça as seguintes seleções:

• Em Choose the protocol (Escolher o protocolo), selecione REST.• Em Create new API (Criar nova API), selecione New API (Nova API).• Em Settings (Configurações), para Name (Nome), insira um nome, como RegistrationForm.

Para Description (Descrição), insira, como opção, algum texto que descreva o objetivo da API. EmEndpoint Type (Tipo de endpoint), escolha Regional. Em seguida, selecione Create API (Criar API).

Um exemplo dessas configurações é mostrado na imagem a seguir.

115

Page 123: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 4: configurar o Amazon API Gateway

116

Page 124: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 4: configurar o Amazon API Gateway

Etapa 4.2: criar um recursoAgora que você criou uma API, é possível começar a adicionar recursos a ela. Depois disso, você adicionaum método POST ao recurso e informa ao API Gateway para transmitir os dados recebidos desse métodopara a função Lambda.

1. No menu Actions (Ações), escolha Create Resource (Criar recurso). No painel New Child Resource(Novo recurso filho), para Resource Name (Nome do recurso), insira register, conforme mostradona imagem a seguir. Escolha Create Resource (Criar recurso).

2. No menu Actions (Ações), selecione Create Method (Criar método). No menu exibido, escolha POST,

conforme mostrado na imagem a seguir. Em seguida, escolha o botão de marca de seleção ( ).

117

Page 125: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 4: configurar o Amazon API Gateway

3. No painel /register - POST - Setup, faça as seguintes seleções:

• Em Integration type (Tipo de integração), escolha Lambda Function (Função Lambda).• Escolha Use Lambda Proxy Integration (Usar a integração de proxy do Lambda).• Em Lambda Region (Região Lambda), escolha a região na qual você criou a função Lambda.• Em Lambda Function (Função Lambda), escolha a função RegisterEndpoint que você criou na

Etapa 3 (p. 104).

Um exemplo dessas configurações é mostrado na imagem a seguir.

118

Page 126: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 4: configurar o Amazon API Gateway

Escolha Save (Salvar). Na janela exibida, escolha OK para conceder permissão ao API Gateway paraexecutar sua função Lambda.

Etapa 4.3: implantar a APIAgora a API está pronta para uso. Nesse ponto, é preciso implantá-la para criar um endpoint publicamenteacessível.

119

Page 127: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 4: configurar o Amazon API Gateway

1. No menu Actions (Ações), escolha Deploy API (Implantar API). Na janela Deploy API (Implantar API),faça as seguintes seleções:

• Em Deployment stage (Estágio de implantação), escolha [New Stage] ([Novo estágio]).• Em Stage name (Nome do estágio), insira v1.• Selecione Deploy (Implantar).

Um exemplo dessas seleções é mostrado na imagem a seguir.

2. No painel v1 Stage Editor (Editor do estágio v1), escolha o recurso /register e depois o método POST.Copie o endereço exibido ao lado de Invoke URL Invocar URL), conforme mostrado na imagem aseguir.

120

Page 128: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 4: configurar o Amazon API Gateway

3. No painel de navegação, escolha Resources (Recursos). Na lista de recursos, escolha o recurso /register. Por fim, no menu Actions (Ações), escolha Enable CORS (Habilitar o CORS), conformemostrado na imagem a seguir.

121

Page 129: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: criar e implantar o formulário da Web

4. Na painel Enable CORS (Habilitar o CORS), escolha Enable CORS and replace existing CORSheaders (Habilitar o CORS e substituir os cabeçalhos do CORS existentes).

Próximo: Criar e implantar o formulário da Web (p. 122)

Etapa 5: criar e implantar o formulário da WebTodos os componentes dessa solução que usam os serviços da AWS agora estão funcionando. A últimaetapa é criar e implantar o formulário da Web que captura os dados do cliente.

Etapa 5.1: criar o manipulador de formulários JavaScriptNesta seção, você cria uma função JavaScript que analisa o conteúdo do formulário da Web criado napróxima seção. Depois de analisar o conteúdo, essa função envia os dados para a API que você criou naParte 4 (p. 115).

Para criar o manipulador de formulários

1. Em um editor de texto, crie um arquivo.2. No editor, cole o código a seguir.

$(document).ready(function() {

122

Page 130: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: criar e implantar o formulário da Web

// Handle form submission. $("#submit").click(function(e) {

var firstName = $("#firstName").val(), lastName = $("#lastName").val(), source = window.location.pathname, optTimestamp = undefined, utcSeconds = Date.now() / 1000, timestamp = new Date(0), phone = $("#areaCode").val() + $("#phone1").val() + $("#phone2").val();

e.preventDefault();

if (firstName == "") { $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Please enter your first name.</div>'); } else if (lastName == "") { $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Please enter your last name.</div>'); } else if (phone.match(/[^0-9]/gi)) { $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Your phone number contains invalid characters. Please check the phone number that you supplied.</div>'); } else if (phone.length < 10) { $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Please enter your phone number.</div>'); } else if (phone.length > 10) { $('#form-response').html('<div class="mt-3 alert alert-info" role="alert">Your phone number contains too many digits. Please check the phone number that you supplied.</div>'); } else { $('#submit').prop('disabled', true); $('#submit').html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>  Saving your preferences</button>');

timestamp.setUTCSeconds(utcSeconds);

var data = JSON.stringify({ 'destinationNumber': phone, 'firstName': firstName, 'lastName': lastName, 'source': source, 'optTimestamp': timestamp.toString() });

$.ajax({ type: 'POST', url: 'https://example.execute-api.us-east-1.amazonaws.com/v1/register', contentType: 'application/json', data: data, success: function(res) { $('#form-response').html('<div class="mt-3 alert alert-success" role="alert"><p>Congratulations! You&apos;ve successfully registered for SMS Alerts from ExampleCorp.</p><p>We just sent you a message. Follow the instructions in the message to confirm your subscription. We won&apos;t send any additional messages until we receive your confirmation.</p><p>If you decide you don&apos;t want to receive any additional messages from us, just reply to one of our messages with the keyword STOP.</p></div>'); $('#submit').prop('hidden', true); $('#unsubAll').prop('hidden', true); $('#submit').text('Preferences saved!'); }, error: function(jqxhr, status, exception) {

123

Page 131: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: criar e implantar o formulário da Web

$('#form-response').html('<div class="mt-3 alert alert-danger" role="alert">An error occurred. Please try again later.</div>'); $('#submit').text('Save preferences'); $('#submit').prop('disabled', false); } }); } });});

3. No exemplo anterior, substitua https://example.execute-api.us-east-1.amazonaws.com/v1/register por Invoke URL (Invocar URL) que você obteve na Etapa 4.3 (p. 119).

4. Salve o arquivo.

Etapa 5.2: criar o arquivo de formulárioNesta seção, você cria um arquivo HTML que contém o formulário que os clientes usam para se inscreverno seu programa de SMS. Esse arquivo usa o manipulador de formulários JavaScript que você criou naseção anterior para transmitir os dados do formulário à sua função Lambda.

Important

Quando um usuário envia esse formulário, ele aciona uma função Lambda que chama váriasoperações da API do Amazon Pinpoint. Usuários mal-intencionados podem lançar um ataqueao seu formulário que poderia provocar um grande número de solicitações. Caso você planejeusar essa solução para produção, deverá protegê-la usando um sistema como o reCAPTCHA doGoogle.

Para criar o formulário

1. Em um editor de texto, crie um arquivo.2. No editor, cole o código a seguir.

<!doctype html><html lang="en">

<head> <!-- Meta tags required by Bootstrap --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<script type="text/javascript" src="SMSFormHandler.js"></script> <title>SMS Registration Form</title></head>

124

Page 132: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: criar e implantar o formulário da Web

<body> <div class="container"> <div class="row justify-content-center mt-3"> <div class="col-md-6"> <h1>Register for SMS Alerts</h1> <p>Enter your phone number below to sign up for PromotionName messages from ExampleCorp.</p> <p>We don't share your contact information with anyone else. For more information, see our <a href="http://example.com/privacy">Privacy Policy</a>.</p> <p>ExampleCorp alerts are only available to recipients in the United States.</p> </div> </div> <div class="row justify-content-center"> <div class="col-md-6"> <form> <div class="form-group"> <label for="firstName" class="font-weight-bold">First name</label> <input type="text" class="form-control" id="firstName" placeholder="Your first name" required> </div> <div class="form-group"> <label for="lastName" class="font-weight-bold">Last name</label> <input type="text" class="form-control" id="lastName" placeholder="Your last name" required> </div> <label for="areaCode" class="font-weight-bold">Phone number</label> <div class="input-group"> <span class="h3">(&nbsp;</span> <input type="tel" class="form-control" id="areaCode" placeholder="Area code" required> <span class="h3">&nbsp;)&nbsp;</span> <input type="tel" class="form-control" id="phone1" placeholder="555" required> <span class="h3">&nbsp;-&nbsp;</span> <input type="tel" class="form-control" id="phone2" placeholder="0199" required> </div> <div id="form-response"></div> <button id="submit" type="submit" class="btn btn-primary btn-block mt-3">Submit</button> </form> </div> </div> <div class="row mt-3"> <div class="col-md-12 text-center"> <small class="text-muted">Copyright © 2019, ExampleCorp or its affiliates.</small> </div> </div> </div></body>

</html>

3. No exemplo anterior, substitua SMSFormHandler.js pelo caminho completo para o arquivoJavaScript do manipulador de formulários que você criou na seção anterior.

4. Salve o arquivo.

Etapa 5.2: carregar os arquivos do formulárioAgora que você criou o formulário HTML e o manipulador de formulários JavaScript, a última etapa épublicar esses arquivos na Internet. Esta seção pressupõe que você tenha um provedor de hospedagem

125

Page 133: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: criar e implantar o formulário da Web

da Web existente. Se você não tiver um provedor de hospedagem existente, poderá iniciar um site usandoAmazon Route 53, Amazon Simple Storage Service (Amazon S3) e Amazon CloudFront. Para obter maisinformações, consulte Hospede um site estático.

Se você usar outro provedor de hospedagem da Web, consulte a documentação do provedor para obtermais informações sobre a publicação de páginas da Web.

Etapa 5.3: testar o formulárioDepois de publicar o formulário, você deve enviar alguns eventos de teste para garantir que ele funcioneconforme o esperado.

Para testar o formulário de registro

1. Em um navegador da Web, acesse o local em que carregou o formulário de registro. Se você tiverusado o exemplo de código da Etapa 5.1 (p. 124), verá um formulário que se parece com o exemplona imagem a seguir.

126

Page 134: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: criar e implantar o formulário da Web

2. Insira suas informações de contato nos campos First name (Nome), Last name (Sobrenome) e Phonenumber (Número de telefone).

127

Page 135: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: criar e implantar o formulário da Web

Note

Quando você envia o formulário, o Amazon Pinpoint tenta enviar uma mensagem para onúmero de telefone que você especificou. Por causa dessa funcionalidade, você deve usarum número de telefone real para testar a solução do início ao fim.Se você testou a função Lambda na Etapa 3 (p. 104), seu projeto do Amazon Pinpoint jácontém pelo menos um endpoint. Ao testar esse formulário, você deve enviar um número detelefone diferente no formulário ou excluir o endpoint existente usando a operação da APIDeleteEndpoint.

3. Verifique o dispositivo associado ao número de telefone que você especificou para garantir querecebeu a mensagem.

4. Abra o console do Amazon Pinpoint em https://console.aws.amazon.com/pinpoint/.5. Na página All projects (Todos os projetos), selecione o projeto que você criou na Etapa 1.1 (p. 99).6. No painel de navegação, selecione Segments (Segmentos). Na página Segments (Segmentos),

selecione Create a segment (Criar um segmento).7. Em Segment group 1 (Grupo de segmentos 1), em Add filters to refine your segment (Adicionar filtros

para refinar seu segmento), escolha Filter by user (Filtrar por usuário).8. Para Choose a user attribute (Escolher um atributo do usuário), escolha FirstName. Em seguida, em

Choose values (Escolher valores), escolha o primeiro nome que você especificou quando enviou oformulário.

A seção Segment estimate (Estimativa de segmento) deve mostrar que há zero endpoints elegíveise um endpoint (em Total de endpoints), conforme mostrado no exemplo a seguir. Tal resultado éesperado. Quando a função Lambda cria um endpoint, o endpoint é cancelado por padrão.

128

Page 136: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEtapa 5: criar e implantar o formulário da Web

129

Page 137: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorPróximas etapas

9. No dispositivo que recebeu a mensagem, responda à mensagem com a palavra-chave por SMSbidirecional que você especificou na Etapa 1.3 (p. 101). O Amazon Pinpoint envia uma mensagemde resposta imediatamente.

10. No console Amazon Pinpoint, repita as etapas 4 a 8. Desta vez, ao criar o segmento, você verá umendpoint elegível e um endpoint total. Esse resultado é esperado, porque o endpoint agora estáativado.

Próximas etapasAo concluir este tutorial, você fez o seguinte:

• Criou um projeto do Amazon Pinpoint, configurou o canal do SMS e obteve um código longo dedicado.• Criou uma política do IAM que usa o princípio do privilégio mínimo para conceder direitos de acesso e

associou essa política a uma função.• Criou duas funções Lambda que usam as operações PhoneNumberValidate, UpdateEndpoint e

SendMessages na API do Amazon Pinpoint.• Criou uma API REST usando o API Gateway.• Criou e implantou um formulário baseado na Web que coleta informações de contato dos clientes.• Realizou testes na solução para ter certeza de que funciona.

Esta seção discute algumas maneiras pelas quais você pode usar as informações do cliente coletadas pormeio dessa solução. Ela também inclui algumas sugestões de formas de personalizar essa solução parase adequar ao seu caso de uso exclusivo.

Criar segmentos de clientesTodos os detalhes do cliente coletados por meio desse formulário são armazenados como endpoints. Essasolução cria endpoints que contêm vários atributos que você pode usar para fins de segmentação.

Por exemplo, essa solução captura um atributo de endpoint chamado Source. Esse atributo contém ocaminho completo para o local onde o formulário foi hospedado. Ao criar um segmento, você pode filtrar osegmento por endpoint e refinar ainda mais o filtro, escolhendo um atributo Source.

Criar segmentos com base no atributo Source pode ser útil de várias maneiras. Primeiro, isso permite quevocê crie rapidamente um segmento de clientes que se cadastraram para receber mensagens SMS da suaparte. Além disso, a ferramenta de segmentação no Amazon Pinpoint exclui automaticamente os endpointsque não optaram por receber mensagens.

O atributo Source também é útil se você decidir hospedar o formulário de registro em vários locaisdiferentes. Por exemplo, seu material de marketing pode se referir a um formulário hospedado em umúnico local, embora os clientes que encontrarem o formulário ao navegar em seu site possam ver umaversão hospedada em outro lugar. Ao fazer isso, os atributos de origem dos clientes que preenchem oformulário depois de ver seus materiais de marketing são diferentes daqueles que preenchem o formuláriodepois de encontrá-lo em seu site. Você pode usar essa diferença para criar segmentos distintos e enviarcomunicações personalizadas para cada um desses públicos.

Enviar mensagens de campanha personalizadasDepois de criar segmentos, você pode começar a enviar campanhas para esses segmentos. Ao criarmensagens de campanha, você pode personalizá-las especificando quais atributos de endpoint desejaincluir na mensagem. Por exemplo, o formulário da Web usado nesta solução exige que o cliente insira seunome e sobrenome. Esses valores são armazenados no registro do usuário associado ao endpoint.

Por exemplo, se você usar a operação da API GetEndpoint para recuperar informações sobre umendpoint que foi criado usando essa solução, verá uma seção semelhante ao seguinte exemplo:

130

Page 138: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorPróximas etapas

... "User": { "UserAttributes": { "FirstName": [ "Carlos" ], "LastName": [ "Salazar" ] } } ...

Se você quiser incluir os valores desses atributos em sua mensagem de campanha, use a notação deponto para se referir ao atributo. Depois, coloque a referência inteira entre chaves duplas. Por exemplo,para incluir o primeiro nome de cada destinatário em uma mensagem de campanha, inclua a seguintestring na mensagem: {{User.UserAttributes.FirstName}}. Quando o Amazon Pinpoint envia amensagem, ela substitui a string pelo valor do atributo FirstName.

Usar o formulário para coletar informações adicionaisVocê pode modificar essa solução para coletar informações adicionais no formulário de registro. Porexemplo, você poderia pedir ao cliente para fornecer seu endereço e usar os dados de endereçopara preencher os campos Location.City, Location.Country, Location.Region eLocation.PostalCode no recurso de Endpoint. A coleta de informações de endereço no formuláriode registro pode resultar no endpoint contendo informações mais precisas. Para fazer essa alteração, vocêprecisa adicionar os campos apropriados ao formulário da Web. Você também precisa modificar o códigoJavaScript do formulário para passar os novos valores. Por fim, você precisa modificar a função Lambdaque cria o endpoint para manipular as novas informações de entrada.

Você também pode modificar o formulário para que ele colete informações de contato em outros canais.Por exemplo, você pode usar o formulário para coletar o endereço de e-mail do cliente, além do númerode telefone dele. Para fazer essa alteração, você precisa modificar o HTML e o JavaScript do formulárioda Web. Também é necessário modificar a função Lambda que cria o endpoint para que ele crie doisendpoints separados (um para o endpoint de e-mail e outro para o endpoint do SMS). Você também devemodificar a função Lambda para que ela gere um valor exclusivo para o atributo User.UserId e associeesse valor a ambos os endpoints.

Registrar atributos adicionais para fins de auditoriaEssa solução registra dois atributos valiosos quando cria e atualiza endpoints. Primeiro, quandoa primeira função Lambda cria o endpoint, ela registra o URL do próprio formulário no atributoAttributes.Source. Se o cliente responder à mensagem, a segunda função Lambda criará um atributoAttributes.OptInTimestamp. Esse atributo contém a data e a hora exatas em que o cliente forneceuseu consentimento para receber mensagens da sua parte.

Esses dois campos podem ser úteis se você for solicitado por uma operadora de celular ou uma agênciareguladora para fornecer evidências do consentimento de um cliente. Você pode recuperar essasinformações a qualquer momento usando a operação da API GetEndpoint.

Você também pode modificar as funções Lambda para registrar dados adicionais que podem ser úteis parafins de auditoria, como o endereço IP do qual a solicitação de registro foi enviada.

131

Page 139: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorSDK Support

Integração do Amazon Pinpoint aoaplicativo

Integre o Amazon Pinpoint ao seu código de cliente para compreender e envolver os usuários.

Após a integração, quando os usuários executam seu aplicativo, ele se conecta ao serviço do AmazonPinpoint para adicionar ou atualizar os endpoints. Os endpoints representam os destinos para os quaisvocê pode enviar mensagens, como dispositivos do usuário, endereços de e-mail ou números de telefone.

Além disso, seu aplicativo fornece dados de uso ou eventos. Visualize os dados de eventos no consoledo Amazon Pinpoint para saber quantos usuários você tem, a frequência com que eles usam o aplicativo,quando eles o utilizam e muito mais.

Depois que seu aplicativo fornece endpoints e eventos, você pode usar essas informações parapersonalizar campanhas de mensagens para audiências ou segmentos específicos. (Você também podeenviar mensagens usando listas simples de destinatários, sem criar campanhas.)

Use os tópicos desta seção para integrar o Amazon Pinpoint ao cliente móvel ou web. Esses tópicosincluem exemplos de código e procedimentos para a integração com um aplicativo Android, iOS ouJavaScript.

Fora do seu cliente, você pode usar os SDKs do AWS (p. 132) compatíveis ou a API do Amazon Pinpointpara importar endpoints, exportar dados de eventos, definir segmentos de clientes, criar e executarcampanhas e muito mais.

Para iniciar a integração dos aplicativos, consulte the section called “Como integrar os Mobile SDKs oubibliotecas JS” (p. 133).

Tópicos• AWSSuporte a SDKAmazon Pinpoint (p. 132)• Como integrar os AWS Mobile SDKs ou a biblioteca JavaScript ao seu aplicativo (p. 133)• Registro de endpoints no aplicativo (p. 134)• Relato de eventos no aplicativo (p. 135)• Gerenciar notificações por push (p. 136)

AWSSuporte a SDKAmazon PinpointUma das maneiras mais simples de interagir com a API do Amazon Pinpoint é usar um SDK da AWS. Osseguintes SDKs da AWS oferecem suporte a operações da API do Amazon Pinpoint:

• AWS Mobile SDK para Android versão 2.3.5 ou posterior• AWS Mobile SDK for iOS versão 2.4.14 ou posterior• Biblioteca JavaScript do AWS Amplify para JavaScript• Biblioteca JavaScript do AWS Amplify para React Native• AWS SDK for JavaScript versão 2.7.10 ou posterior• AWS SDK for Java versão 1.11.63 ou posterior

132

Page 140: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorComo integrar os Mobile SDKs ou bibliotecas JS

• AWS SDK para .NET versão 3.3.27.0 ou posterior• AWS SDK para PHP versão 3.20.1• AWS SDK para Python (boto3) versão 1.4.2 ou posterior• AWS SDK para Ruby versão 1.0.0.rc2 ou posterior• AWS SDK para Go versão 1.5.13 ou posterior• AWSSDK da para C++ versão 1.0.20151208.143 ou posterior

Você também pode interagir com a API do Amazon Pinpoint usando a versão 1.11.24 ou posterior daAWS Command Line Interface (AWS CLI). A AWS CLI exige Python 2.6.5 ou posterior ou Python 3.3ou posterior. Para obter mais informações sobre a instalação e a configuração da AWS CLI, consulte oInstalação do AWS Command Line Interface no Guia do usuário do AWS Command Line Interface.

Note

Os números de versão mostrados nesta seção são as primeiras versões de cada SDK ou CLI queofereceram suporte à API do Amazon Pinpoint. Novos recursos ou operações são adicionados àAPI do Amazon Pinpoint ocasionalmente. Para usar todos os recursos do Amazon Pinpoint pormeio da API, verifique se você está usando a versão mais recente do SDK ou da CLI.

Como integrar os AWS Mobile SDKs ou a bibliotecaJavaScript ao seu aplicativo

Para se conectar ao serviço do Amazon Pinpoint de seu aplicativo móvel ou web, integre os AWS MobileSDKs ou a biblioteca JavaScript com seu código. Com esses recursos, você pode usar a linguagem deprogramação nativa da plataforma para emitir solicitações para a API do Amazon Pinpoint. Por exemplo,você pode adicionar endpoints, aplicar atributos de endpoint personalizados, relatar dados de uso e muitomais.

Para aplicativos Android ou iOS, use os AWS Mobile SDKs. Para aplicativos JavaScript móveis ou web,use a biblioteca JavaScript do AWS Amplify para web e React Native.

Integração de AWS Mobile SDKs para Android ou iOSUse o AWS Amplify para integrar seu aplicativo ao AWS. Para aplicativos iOS, consulte a documentaçãosobre Conceitos básicos do SDK do iOS. Para aplicativos Android, consulte a documentação sobreConceitos básicos do SDK do Android. Esses tópicos ajudam você a:

• Crie um projeto com o AWS Amplify.• Conecte seu aplicativo aos recursos do AWS e aos recursos aos quais o AWS Amplify oferece suporte.

Integração da biblioteca JavaScript do AWS AmplifyPara integrar o AWS Amplify ao aplicativo JavaScript, consulte Conceitos básicos (JavaScript) ouConceitos básicos (React Native) na documentação do AWS Amplify JavaScript. Esses tópicos ajudamvocê a:

• Use ferramentas de linha de comando e o AWS Amplify para criar um projeto.• Criar recursos de back-end da AWS para o aplicativo.• Conectar o aplicativo aos recursos de back-end.

133

Page 141: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorPróxima etapa

• Integrar a biblioteca do AWS Amplify ao aplicativo.

Depois de integrar o AWS Amplify, volte para esse tópico no Guia do desenvolvedor do Amazon Pinpointpara a próxima etapa.

Próxima etapaVocê integrou o AWS Amplify ao aplicativo. Em seguida, atualize o código para registrar os dispositivosdos usuários como endpoints. Consulte Registro de endpoints no aplicativo (p. 134).

Registro de endpoints no aplicativoQuando um usuário inicia uma sessão (por exemplo, ao executar um aplicativo móvel), o aplicativo móvelou web pode registrar automaticamente (ou atualizar) um endpoint com o Amazon Pinpoint. O endpointrepresenta o dispositivo com o qual o usuário inicia a sessão. Ele inclui os atributos que descrevem odispositivo e também pode incluir atributos personalizados que você define. Os endpoints também podemrepresentar outros métodos de comunicação com os clientes, como endereços de e-mail ou números decelular.

Depois que o aplicativo registra os endpoints, você pode segmentar seu público com base nos atributos doendpoint. Em seguida, você pode atrair esses segmentos com campanhas de mensagens personalizadas.Você pode também usar a página Análises no console do Amazon Pinpoint para exibir gráficos sobre oregistro de endpoints e de atividade, como Novos endpoints e Endpoints ativos diariamente.

Você pode atribuir um único ID de usuário a vários endpoints. Um ID de usuário representa um únicousuário, ao passo que cada endpoint que recebe o ID de usuário representa um dos dispositivos dousuário. Assim que atribuir IDs de usuário aos endpoints, poderá exibir gráficos sobre a atividade dosusuários no console, como Usuários ativos diariamente e Usuários ativos mensalmente.

Antes de começarSe você ainda não tiver feito isso, integre o AWS Mobile SDK para Android ou iOS ou a bibliotecaJavaScript do AWS Amplify ao seu aplicativo. Consulte Como integrar os AWS Mobile SDKs ou abiblioteca JavaScript ao seu aplicativo (p. 133).

Registro de endpoints com os AWS Mobile SDKs paraAndroid ou iOSVocê pode usar os AWS Mobile SDKs para Android ou iOS para registrar e personalizar endpoints. Paraobter mais informações e ver exemplos de código, consulte estes documentos:

• Registro de endpoints no seu aplicativo na documentação do SDK do Android.• Registro de endpoints no aplicativo na documentação do SDK do iOS.

Registro de endpoints com a biblioteca JavaScript doAWS AmplifyVocê pode usar a biblioteca AWS Amplify JavaScript para registrar e atualizar endpoints em seusaplicativos. Para obter mais informações e ver exemplos de código, consulte Atualizar endpoint nadocumentação do AWS Amplify JavaScript.

134

Page 142: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorPróximas etapas

Próximas etapasVocê atualizou seu aplicativo para registrar os endpoints. Agora, quando os usuários executam seuaplicativo, as informações do dispositivo e os atributos personalizados são fornecidos ao Amazon Pinpoint.Você pode usar essas informações para definir segmentos de público. No console, você pode ver métricassobre endpoints e, se aplicável, os usuários que receberam IDs de usuário.

Em seguida, execute as etapas em Relato de eventos no aplicativo (p. 135) para atualizar o aplicativopara relatar dados de uso.

Relato de eventos no aplicativoEm seu aplicativo móvel ou web, você pode usar os SDKs do AWS Mobile ou a API de eventos doAmazon Pinpoint para relatar dados de uso ou eventos ao Amazon Pinpoint. Você pode relatar eventospara capturar informações, como os tempos das sessões, o comportamento de compra dos usuários, astentativas de login ou qualquer tipo de evento personalizado que você precisar.

Depois que o aplicativo relata os eventos, você pode visualizar uma análise no console do AmazonPinpoint. Os gráficos na página Análises fornecem métricas para muitos aspectos do comportamento dosusuários. Para obter mais informações, consulte Referência do gráfico para Dados de análise de AmazonPinpoint no Guia do usuário do Amazon Pinpoint.

Para analisar e armazenar os dados do evento fora do Amazon Pinpoint, configure o Amazon Pinpoint paratransmitir os dados ao Amazon Kinesis. Para obter mais informações, consulte Streaming de eventos doAmazon Pinpoint para Kinesis (p. 236).

Usando os AWS Mobile SDKs e as bibliotecas JavaScript do AWS Amplify, você pode chamar a API doAmazon Pinpoint para relatar os seguintes tipos de eventos:

Eventos de sessões

Indicam quando e com que frequência os usuários abrem e fecham o aplicativo.

Após o aplicativo relatar eventos de sessão, use a página Análises no console do Amazon Pinpointpara visualizar os gráficos de Sessões, Endpoints ativos diariamente, Taxa de retenção de 7 dias,entre outros.

Eventos personalizados

São eventos fora do padrão que você define ao atribuir um tipo de evento personalizado. Você podeadicionar atributos e métricas personalizados a um evento personalizado.

Na página Análises do console, a guia Eventos exibe as métricas de todos os eventos personalizadosrelatados pelo aplicativo.

Eventos de monetização

Relate a receita que é gerada pelo seu aplicativo e o número de itens comprados pelos usuários.

Na página Análises, a guia Receita exibe os gráficos de Receita, Usuários pagantes, Unidadesvendidas, entre outros.

Eventos de autenticação

Indica a frequência com que os usuários são autenticados no seu aplicativo.

Na página Análises, a guia Usuários exibe os gráficos de Logins, Cadastros e Falhas de autenticação.

135

Page 143: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAntes de começar

Antes de começarSe você ainda não tiver feito isso, faça o seguinte:

• Integre seu aplicativo ao AWS Amplify. Consulte Como integrar os AWS Mobile SDKs ou a bibliotecaJavaScript ao seu aplicativo (p. 133).

• Atualize o aplicativo para registrar os endpoints. Consulte Registro de endpoints no aplicativo (p. 134).

Relatar eventos com os AWS Mobile SDKs paraAndroid ou iOSVocê pode habilitar um aplicativo móvel para relatar eventos ao Amazon Pinpoint usando os AWS MobileSDKs para iOS e Android.

Para obter mais informações sobre como atualizar o aplicativo para gravar e enviar eventos ao AmazonPinpoint, consulte estas páginas na documentação do AWS Amplify:

• Análises na documentação do SDK do iOS• Análises na documentação do SDK do Android

Relato de eventos com a biblioteca JavaScript doAWS AmplifyVocê pode habilitar os aplicativos JavaScript e React Native para relatar eventos de uso do aplicativo parao Amazon Pinpoint usando a biblioteca AWS Amplify JavaScript. Para obter mais informações sobre comoatualizar o aplicativo para enviar eventos ao Amazon Pinpoint, consulte Análises na documentação doAWS Amplify JavaScript.

Relatório de eventos usando a API do AmazonPinpointVocê pode usar a API do Amazon Pinpoint ou um SDK da AWS para enviar eventos em massa ao AmazonPinpoint. Para obter mais informações, consulte Eventos no Referência de API do Amazon Pinpoint.

Próxima etapaVocê atualizou seu aplicativo para relatar os eventos. Agora, quando os usuários interagem com oaplicativo, ele envia dados de uso para o Amazon Pinpoint. Você pode visualizar esses dados no console etransmiti-los para o Amazon Kinesis.

Em seguida, atualize o aplicativo para tratar das notificações por push que você envia pelo AmazonPinpoint. Consulte Gerenciar notificações por push (p. 136).

Gerenciar notificações por pushOs tópicos a seguir descrevem como modificar o aplicativo iOS ou Android para receber notificações porpush que você envia usando o Amazon Pinpoint.

136

Page 144: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConfiguração de notificações por push

Tópicos• Configuração de notificações por push para Amazon Pinpoint (p. 137)• Gerenciar notificações por push (p. 138)

Configuração de notificações por push para AmazonPinpointPara configurar o Amazon Pinpoint para que ele possa enviar notificações por push para seus aplicativos,você primeiro precisa fornecer as credenciais que autorizam o Amazon Pinpoint a enviar mensagens paraseu aplicativo. As credenciais que você fornece dependem do sistema de notificação por push usado:

• Para aplicativos iOS, você fornece um certificado SSL, que obtém do portal do desenvolvedor da Apple.O certificado autoriza o Amazon Pinpoint a enviar mensagens para seu aplicativo por meio do Serviço denotificação por push da Apple.

• Para aplicativos Android, forneça uma chave de API da Web, obtida do console do Firebase. Essascredenciais autorizam o Amazon Pinpoint a enviar mensagens para seu aplicativo por meio de FirebaseCloud Messaging.

Depois de obter as credenciais para um canal de notificação por push, você precisa criar um projeto noAmazon Pinpoint e fornecer as credenciais para o serviço de notificações por push.

Tópicos• Configuração de notificações por push em iOS (p. 137)• Configuração das notificações por push em Android (p. 137)• Criar um projeto no Amazon Pinpoint (p. 138)

Configuração de notificações por push em iOSAs notificações por push para aplicativos iOS são enviadas usando o Serviço de notificação por push daApple (APNs). Para enviar notificações por push para dispositivos iOS, crie um ID de aplicativo no portal dodesenvolvedor da Apple e os certificados necessários. Você pode encontrar mais informações sobre comoconcluir essas etapas em Configurar APNs para notificações por push na documentação do iOS SDK.

Trabalhar com tokens APNsComo melhor prática, você deve desenvolver seu aplicativo para que os tokens de dispositivo dos clientessejam gerados novamente quando o aplicativo for reinstalado.

Se um destinatário atualizar o dispositivo para uma nova versão principal do iOS (por exemplo, do iOS 12para o iOS 13) e, posteriormente, reinstalar o aplicativo, o aplicativo gerará um novo token. Se o aplicativonão atualizar o token, o token mais antigo será usado para enviar a notificação. Como resultado, o ApplePush Notification Service (APNs) rejeitará a notificação, pois o token agora é inválido. Ao tentar enviar anotificação, você receberá uma notificação de falha de mensagem do APNs.

Configuração das notificações por push em AndroidAs notificações por push para apps Android são enviadas usando Firebase Cloud Messaging (FCM),que substitui o Google Cloud Messaging (GCM) (GCM). Para poder enviar notificações por push paradispositivos Android, você deve obter credenciais do FCM. Você pode usar essas credenciais para criarum projeto Android e iniciar um aplicativo de exemplo que possa receber notificações por push. Você podeencontrar mais informações sobre como concluir essas etapas nas seções Configuração de FCM/GCMpara notificações por push e Notificações por push na documentação do SDK do Android.

137

Page 145: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorGerenciar notificações por push

Criar um projeto no Amazon PinpointNo Amazon Pinpoint, um projeto é um conjunto de configurações, dados, campanhas e segmentos quepossuem uma finalidade comum. Na API do Amazon Pinpoint, os projetos também são chamados deaplicativos. Esta seção usa a palavra "projeto" exclusivamente ao fazer referência a esse conceito.

Para iniciar o envio de notificações por push no Amazon Pinpoint, você precisa criar um projeto. Emseguida, você precisa habilitar os canais de notificação por push que você deseja usar, fornecendo ascredenciais apropriadas.

Você pode criar novos projetos e configurar canais de notificação por push usando o console do AmazonPinpoint. Para obter mais informações, consulte Configurar canais de notificação por push do AmazonPinpoint no Guia do usuário do Amazon Pinpoint.

Você também pode criar e configurar projetos usando a API do Amazon Pinpoint, um AWS SDK ou o AWSCommand Line Interface (AWS CLI). Para criar um projeto, use o recurso Apps. Para configurar canais denotificação por push, use os seguintes recursos:

• Canal APNs para enviar mensagens para usuários de dispositivos iOS usando o Serviço de notificaçãopor push da Apple.

• Canal ADM para enviar mensagens para usuários de dispositivos Amazon Kindle Fire.• Canal Baidu para enviar mensagens para usuários do Baidu.• Canal GCM para enviar mensagens para dispositivos Android usando o Firebase Cloud Messaging

(FCM), que substitui o Google Cloud Messaging (GCM) (GCM).

Gerenciar notificações por pushDepois de obter as credenciais necessárias para enviar notificações por push, você pode atualizar seusaplicativos para que eles possam receber notificações por push. Para obter mais informações, consulte asseguintes seções na documentação do AWS Amplify:

• Firebase Cloud Messaging: Gerenciar notificações por push FCM/GCM• Serviço de notificação por push da Apple: Adicionar mensagens por push de campanhas e Amazon

Pinpoint direcionados• Amazon Device Messaging: Gerenciar notificações por push do Amazon Device Messaging• Baidu Push: Gerenciar notificações por push no Baidu Push

138

Page 146: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAdicionando endpoints

Definição do público-alvo do AmazonPinpoint

No Amazon Pinpoint, cada membro de seu público-alvo é representado por um ou mais endpoints. Quandousa o Amazon Pinpoint para enviar uma mensagem, você direciona a mensagem para os endpointsque representam os membros de seu público-alvo. Cada definição de endpoint inclui um destino demensagens, como um token de dispositivo, um endereço de e-mail ou um número de telefone. Tambéminclui dados sobre seus usuários e seus dispositivos. Antes de analisar, segmentar ou envolver seupúblico-alvo, a primeira etapa é adicionar endpoints a seu projeto do Amazon Pinpoint.

Para adicionar endpoints, você pode:

• Integrar o Amazon Pinpoint com o cliente Android, iOS ou JavaScript para que os endpoints sejamadicionados automaticamente quando os usuários visitarem seu aplicativo.

• Use a API do Amazon Pinpoint para adicionar endpoints individualmente ou em lotes.• Importar definições de endpoint que são armazenadas fora do Amazon Pinpoint.

Depois de adicionar endpoints, você pode:

• Visualizar análises sobre seu público-alvo no console do Amazon Pinpoint.• Saber mais sobre seu público-alvo examinando ou exportando dados do endpoint.• Definir segmentos do público-alvo com base em atributos do endpoint, como dados demográficos ou

interesses dos usuários.• Envolver seu público-alvo com campanhas de mensagens personalizadas.• Enviar mensagens diretamente para listas de endpoints.

Usar os tópicos desta seção para adicionar, atualizar e excluir endpoints usando a API do AmazonPinpoint. Para adicionar endpoints automaticamente de seu cliente Android, iOS ou JavaScript, consulteRegistro de endpoints no aplicativo (p. 134).

Tópicos• Adição de endpoints ao Amazon Pinpoint (p. 139)• Associação de usuários com endpoints do Amazon Pinpoint (p. 144)• Adição de um lote de endpoints ao Amazon Pinpoint (p. 148)• Importação de endpoints no Amazon Pinpoint (p. 153)• Exclusão de endpoints do Amazon Pinpoint (p. 162)

Adição de endpoints ao Amazon PinpointUm endpoint representa um destino para o qual é possível enviar mensagens — como um dispositivomóvel, um número de telefone ou um endereço de e-mail. Para poder enviar mensagens a um membro deseu público-alvo, você deve definir um ou mais endpoints para esse indivíduo.

Ao definir um endpoint, você especifica o canal e o endereço. O canal é o tipo de plataforma que você usapara enviar mensagens para o endpoint. Os exemplos de canais incluem um serviço de notificação por

139

Page 147: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

push, SMS ou e-mail. O endereço especifica para onde enviar mensagem ao endpoint, como um token dedispositivo, um número de telefone ou um endereço de e-mail.

Para adicionar mais detalhes sobre o seu público-alvo, você pode enriquecer seus endpoints com atributospadrão e personalizados. Esses atributos podem incluir dados sobre seus usuários, suas preferências,seus dispositivos, as versões do cliente que usam ou seus locais. Quando adiciona esse tipo de dados aseus endpoints, você pode:

• Visualizar gráficos sobre seu público-alvo no console do Amazon Pinpoint.• Segmentar seu público-alvo com base em atributos de endpoint para que possa enviar suas mensagens

ao público-alvo correto.• Personalizar suas mensagens incorporando variáveis na mensagem que são substituídas pelos valores

dos atributos do endpoint.

Um aplicativo cliente móvel ou JavaScript registra endpoints automaticamente se você integrar o AmazonPinpoint usando os SDKs do AWS Mobile ou a biblioteca Amplify JavaScript da AWS. O cliente registra umendpoint para cada novo usuário e atualiza endpoints para usuários que retornam. Para registrar endpointsde um cliente móvel ou JavaScript, consulte Registro de endpoints no aplicativo (p. 134).

ExemplosOs exemplos a seguir mostram como adicionar um endpoint a um projeto do Amazon Pinpoint. O endpointrepresenta um membro do público-alvo que vive em Seattle e usa um iPhone. Essa pessoa pode recebermensagens por meio do Apple Push Notification service (APNs). O endereço do endpoint é o token dodispositivo que é fornecido pelo APNs.

AWS CLI

Você pode usar o Amazon Pinpoint executando comandos com a AWS CLI.

Example Comando Update endpoint

Para adicionar ou atualizar um endpoint, use o comando update-endpoint:

$ aws pinpoint update-endpoint \> --application-id application-id \> --endpoint-id endpoint-id \> --endpoint-request file://endpoint-request-file.json

Onde:

• application-id é o ID do projeto do Amazon Pinpoint no qual você está adicionando ou atualizandoum endpoint.

• example-endpoint é o ID que você está atribuindo a um novo endpoint ou o ID de um endpointexistente que você está atualizando.

• endpoint-request-file.json é o caminho para um arquivo JSON local que contém a entrada para oparâmetro --endpoint-request.

Example Arquivo de solicitação de endpoint

O comando update-endpoint de exemplo usa um arquivo JSON como o argumento para oparâmetro --endpoint-request. Esse arquivo contém uma definição de endpoint, como aseguinte:

{

140

Page 148: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

"ChannelType": "APNS", "Address": "1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f", "Attributes": { "interests": [ "technology", "music", "travel" ] }, "Metrics": { "technology_interest_level": 9.0, "music_interest_level": 6.0, "travel_interest_level": 4.0 }, "Demographic": { "AppVersion": "1.0", "Make": "apple", "Model": "iPhone", "ModelVersion": "8", "Platform": "ios", "PlatformVersion": "11.3.1", "Timezone": "America/Los_Angeles" }, "Location": { "Country": "US", "City": "Seattle", "PostalCode": "98121", "Latitude": 47.61, "Longitude": -122.33 }}

Para obter os atributos que você pode usar para definir um endpoint, consulte o esquemaEndpointRequest no Referência de API do Amazon Pinpoint.

AWS SDK for Java

É possível usar a API do Amazon Pinpoint em seus aplicativos Java usando o cliente fornecido peloAWS SDK for Java.

Example Código

Para adicionar um endpoint, inicialize um objeto EndpointRequest e passe-o para o métodoupdateEndpoint do cliente do AmazonPinpoint:

import com.amazonaws.regions.Regions;import com.amazonaws.services.pinpoint.AmazonPinpoint;import com.amazonaws.services.pinpoint.AmazonPinpointClientBuilder;import com.amazonaws.services.pinpoint.model.*;import java.util.Arrays;

public class AddExampleEndpoint {

public static void main(String[] args) { final String USAGE = "\n" + "AddExampleEndpoint - Adds an example endpoint to an Amazon Pinpoint application." + "Usage: AddExampleEndpoint <applicationId>" + "Where:\n" + " applicationId - The ID of the Amazon Pinpoint application to add the example " + "endpoint to."; if (args.length < 1) {

141

Page 149: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

System.out.println(USAGE); System.exit(1); } String applicationId = args[0]; // The device token assigned to the user's device by Apple Push Notification service (APNs). String deviceToken = "1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f"; // Initializes an endpoint definition with channel type and address. EndpointRequest wangXiulansIphoneEndpoint = new EndpointRequest() .withChannelType(ChannelType.APNS) .withAddress(deviceToken); // Adds custom attributes to the endpoint. wangXiulansIphoneEndpoint.addAttributesEntry("interests", Arrays.asList( "technology", "music", "travel")); // Adds custom metrics to the endpoint. wangXiulansIphoneEndpoint.addMetricsEntry("technology_interest_level", 9.0); wangXiulansIphoneEndpoint.addMetricsEntry("music_interest_level", 6.0); wangXiulansIphoneEndpoint.addMetricsEntry("travel_interest_level", 4.0); // Adds standard demographic attributes. wangXiulansIphoneEndpoint.setDemographic(new EndpointDemographic() .withAppVersion("1.0") .withMake("apple") .withModel("iPhone") .withModelVersion("8") .withPlatform("ios") .withPlatformVersion("11.3.1") .withTimezone("America/Los_Angeles")); // Adds standard location attributes. wangXiulansIphoneEndpoint.setLocation(new EndpointLocation() .withCountry("US") .withCity("Seattle") .withPostalCode("98121") .withLatitude(47.61) .withLongitude(-122.33)); // Initializes the Amazon Pinpoint client. AmazonPinpoint pinpointClient = AmazonPinpointClientBuilder.standard() .withRegion(Regions.US_EAST_1).build(); // Updates or creates the endpoint with Amazon Pinpoint. UpdateEndpointResult result = pinpointClient.updateEndpoint(new UpdateEndpointRequest() .withApplicationId(applicationId) .withEndpointId("example_endpoint") .withEndpointRequest(wangXiulansIphoneEndpoint)); System.out.format("Update endpoint result: %s\n", result.getMessageBody().getMessage()); }}

HTTP

Você pode usar o Amazon Pinpoint, fazendo solicitações HTTP diretamente para a API REST.

142

Page 150: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

Example Solicitação PUT endpoint

Para adicionar um endpoint, envie uma solicitação PUT para o recurso Endpoint no seguinte URI:

/v1/apps/application-id/endpoints/endpoint-id

Onde:

• application-id é o ID do projeto do Amazon Pinpoint no qual você está adicionando ou atualizandoum endpoint.

• endpoint-id é o ID que você está atribuindo a um novo endpoint ou o ID de um endpoint existenteque você está atualizando.

Em sua solicitação, inclua os cabeçalhos necessários e forneça o JSON EndpointRequest como ocorpo:

PUT /v1/apps/application_id/endpoints/example_endpoint HTTP/1.1Host: pinpoint.us-east-1.amazonaws.comX-Amz-Date: 20180415T182538ZContent-Type: application/jsonAccept: application/jsonX-Amz-Date: 20180428T004705ZAuthorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20180428/us-east-1/mobiletargeting/aws4_request, SignedHeaders=accept;content-length;content-type;host;x-amz-date, Signature=c25cbd6bf61bd3b3667c571ae764b9bf2d8af61b875cacced95d1e68d91b4170Cache-Control: no-cache

{ "ChannelType": "APNS", "Address": "1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f", "Attributes": { "interests": [ "technology", "music", "travel" ] }, "Metrics": { "technology_interest_level": 9.0, "music_interest_level": 6.0, "travel_interest_level": 4.0 }, "Demographic": { "AppVersion": "1.0", "Make": "apple", "Model": "iPhone", "ModelVersion": "8", "Platform": "ios", "PlatformVersion": "11.3.1", "Timezone": "America/Los_Angeles" }, "Location": { "Country": "US", "City": "Seattle", "PostalCode": "98121", "Latitude": 47.61, "Longitude": -122.33 }}

Se sua solicitação for bem-sucedida, você receberá uma resposta como a seguinte:

143

Page 151: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorInformações relacionadas

{ "RequestID": "67e572ed-41d5-11e8-9dc5-db288f3cbb72", "Message": "Accepted"}

Informações relacionadasPara obter mais informações sobre o recurso Endpoint na API do Amazon Pinpoint incluindo os métodosHTTP e os parâmetros de solicitação compatíveis, consulte Endpoint no Referência de API do AmazonPinpoint.

Para obter mais informações sobre como personalizar mensagens com variáveis, consulte Variáveis demensagens no Guia do usuário do Amazon Pinpoint.

Para obter informações sobre as cotas que se aplicam a endpoints, como o número de atributos que vocêpode atribuir, consulte the section called “Cotas de endpoint” (p. 410).

Associação de usuários com endpoints do AmazonPinpoint

Um endpoint pode incluir atributos que definem um usuário, que representa uma pessoa em seu público-alvo. Por exemplo, um usuário pode representar alguém que instalou seu aplicativo móvel, ou alguém quetem uma conta em seu site.

Você define um usuário especificando um ID de usuário exclusivo e, opcionalmente, atributos de usuáriopersonalizados. Se alguém usar seu aplicativo em vários dispositivos ou se essa pessoa puder recebermensagens em vários endereços, você poderá atribuir o mesmo ID de usuário a vários endpoints. Nessecaso, Amazon Pinpoint sincroniza os atributos do usuário em todos os endpoints. Portanto, se vocêadicionar um atributo de usuário a um endpoint, o Amazon Pinpoint adicionará esse atributo a cadaendpoint que inclui o mesmo ID de usuário.

Você pode adicionar atributos de usuário para rastrear dados que se aplicam a um indivíduo e não variamcom base no dispositivo que a pessoa está usando. Por exemplo, você pode adicionar atributos ao nome,idade ou status da conta de uma pessoa.

Tip

Se seu aplicativo usar grupos de usuários do Amazon Cognito para lidar com a autenticaçãode usuários, o Amazon Cognito poderá adicionar IDs e atributos de usuários a seus endpointsautomaticamente. Para o valor do ID do usuário do endpoint, o Amazon Cognito atribui o valorsub que é atribuído ao usuário no grupo de usuários. Para saber mais sobre como adicionarusuários ao Amazon Cognito, consulte Usar análise do Amazon Pinpoint com grupos de usuáriosdo Amazon Cognito no Guia do desenvolvedor do Guia do desenvolvedor do Amazon Cognito.

Depois de adicionar definições de usuários a seus endpoints, você tem mais opções de como segmentarseu público-alvo. Você pode definir um segmento com base nos atributos dos usuários ou definir umsegmento importando uma lista de IDs de usuários. Quando você envia uma mensagem a um segmentobaseado em usuários, os destinos potenciais incluem cada endpoint que está associado a cada usuário nosegmento.

Você também tem mais opções de como enviar mensagens a seu público-alvo. Você pode usar umacampanha para enviar mensagens para um segmento de usuários ou enviar uma mensagem diretamente

144

Page 152: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

para uma lista de IDs de usuários. Para personalizar sua mensagem, você pode incluir variáveis namensagem que são substituídas pelos valores dos atributos dos usuários.

ExemplosOs exemplos a seguir mostram como adicionar uma definição de usuário a um endpoint.

AWS CLI

Você pode usar o Amazon Pinpoint executando comandos com a AWS CLI.

Example Comando Update endpoint

Para adicionar um usuário a um endpoint, use o comando update-endpoint. Para o parâmetro --endpoint-request, você pode definir um novo endpoint, que pode incluir um usuário. Ou, paraatualizar um endpoint existente, você pode fornecer apenas os atributos que deseja alterar. O exemploa seguir adiciona um usuário a um endpoint existente fornecendo apenas os atributos do usuário:

$ aws pinpoint update-endpoint \> --application-id application-id \> --endpoint-id endpoint-id \> --endpoint-request file://endpoint-request-file.json

Onde:

• application-id é o ID do projeto do Amazon Pinpoint no qual você está adicionando ouatualizando um endpoint.

• endpoint-id é o ID que você está atribuindo a um novo endpoint ou o ID de um endpointexistente que você está atualizando.

• endpoint-request-file.json é o caminho para um arquivo JSON local que contém a entradapara o parâmetro --endpoint-request.

Example Arquivo de solicitação de endpoint

O comando update-endpoint de exemplo usa um arquivo JSON como o argumento para oparâmetro --endpoint-request. Esse arquivo contém uma definição de usuário, como a seguinte:

{ "User": { "UserId": "example_user", "UserAttributes": { "name": [ "Wang", "Xiulan" ], "gender": [ "female" ], "age": [ "39" ] } }}

Para obter os atributos que podem ser usados para definir um usuário, consulte o objeto User noesquema EndpointRequest no Referência de API do Amazon Pinpoint.

145

Page 153: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

AWS SDK for Java

É possível usar a API do Amazon Pinpoint em seus aplicativos Java usando o cliente fornecido peloAWS SDK for Java.

Example Código

Para adicionar um usuário a um endpoint, inicialize um objeto EndpointRequest e passe-o para ométodo updateEndpoint do cliente do AmazonPinpoint. Você pode usar esse objeto para definirum novo endpoint, que pode incluir um usuário. Ou, para atualizar um endpoint existente, você podeatualizar apenas as propriedade que deseja alterar. O exemplo a seguir adiciona um usuário a umendpoint existente adicionando um objeto EndpointUser ao objeto EndpointRequest:

import com.amazonaws.regions.Regions;import com.amazonaws.services.pinpoint.AmazonPinpoint;import com.amazonaws.services.pinpoint.AmazonPinpointClientBuilder;import com.amazonaws.services.pinpoint.model.EndpointRequest;import com.amazonaws.services.pinpoint.model.EndpointUser;import com.amazonaws.services.pinpoint.model.UpdateEndpointRequest;import com.amazonaws.services.pinpoint.model.UpdateEndpointResult;

import java.util.Arrays;import java.util.Collections;

public class AddExampleUser {

public static void main(String[] args) {

final String USAGE = "\n" + "AddExampleUser - Adds a user definition to the specified Amazon Pinpoint endpoint." + "Usage: AddExampleUser <endpointId> <applicationId>" + "Where:\n" + " endpointId - The ID of the endpoint to add the user to." + " applicationId - The ID of the Amazon Pinpoint application that contains the endpoint.";

if (args.length < 1) { System.out.println(USAGE); System.exit(1); }

String endpointId = args[0]; String applicationId = args[1];

// Creates a new user definition. EndpointUser wangXiulan = new EndpointUser().withUserId("example_user");

// Assigns custom user attributes. wangXiulan.addUserAttributesEntry("name", Arrays.asList("Wang", "Xiulan")); wangXiulan.addUserAttributesEntry("gender", Collections.singletonList("female")); wangXiulan.addUserAttributesEntry("age", Collections.singletonList("39"));

// Adds the user definition to the EndpointRequest that is passed to the Amazon Pinpoint client. EndpointRequest wangXiulansIphone = new EndpointRequest() .withUser(wangXiulan);

// Initializes the Amazon Pinpoint client. AmazonPinpoint pinpointClient = AmazonPinpointClientBuilder.standard() .withRegion(Regions.US_EAST_1).build();

146

Page 154: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

// Updates the specified endpoint with Amazon Pinpoint. UpdateEndpointResult result = pinpointClient.updateEndpoint(new UpdateEndpointRequest() .withEndpointRequest(wangXiulansIphone) .withApplicationId(applicationId) .withEndpointId(endpointId));

System.out.format("Update endpoint result: %s\n", result.getMessageBody().getMessage());

}}

HTTP

Você pode usar o Amazon Pinpoint, fazendo solicitações HTTP diretamente para a API REST.

Example Solicitação Put endpoint com definição de usuário

Para adicionar um usuário a um endpoint, envie uma solicitação PUT para o recurso Endpoint noseguinte URI:

/v1/apps/application-id/endpoints/endpoint-id

Onde:

• application-id é o ID do projeto do Amazon Pinpoint no qual você está adicionando ouatualizando um endpoint.

• endpoint-id é o ID que você está atribuindo a um novo endpoint ou o ID de um endpointexistente que você está atualizando.

Em sua solicitação, inclua os cabeçalhos necessários e forneça o JSON EndpointRequest como ocorpo. O corpo da solicitação pode definir um novo endpoint, que pode incluir um usuário. Ou, paraatualizar um endpoint existente, você pode fornecer apenas os atributos que deseja alterar. O exemploa seguir adiciona um usuário a um endpoint existente fornecendo apenas os atributos do usuário:

PUT /v1/apps/application_id/endpoints/example_endpoint HTTP/1.1Host: pinpoint.us-east-1.amazonaws.comX-Amz-Date: 20180415T182538ZContent-Type: application/jsonAccept: application/jsonAuthorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20180501/us-east-1/mobiletargeting/aws4_request, SignedHeaders=accept;content-length;content-type;host;x-amz-date, Signature=c25cbd6bf61bd3b3667c571ae764b9bf2d8af61b875cacced95d1e68d91b4170Cache-Control: no-cache

{ "User": { "UserId": "example_user", "UserAttributes": { "name": [ "Wang", "Xiulan" ], "gender": [ "female" ], "age": [ "39" ] }

147

Page 155: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorInformações relacionadas

}}

Se a solicitação for bem-sucedida, você receberá uma resposta como a seguinte:

{ "RequestID": "67e572ed-41d5-11e8-9dc5-db288f3cbb72", "Message": "Accepted"}

Informações relacionadasPara obter mais informações sobre o recurso Endpoint na API do Amazon Pinpoint incluindo os métodosHTTP e os parâmetros de solicitação compatíveis, consulte Endpoint no Referência de API do AmazonPinpoint.

Para obter mais informações sobre como personalizar mensagens com variáveis, consulte Variáveis demensagens no Guia do usuário do Amazon Pinpoint.

Para saber como definir um segmento importando uma lista de IDs de usuários, consulte Importação desegmentos no Guia do usuário do Amazon Pinpoint.

Para obter informações sobre como enviar uma mensagem direta para até 100 IDs de usuários, consulteMensagens de usuários no Referência de API do Amazon Pinpoint.

Para obter informações sobre as cotas que se aplicam aos endpoints, incluindo o número de atributos deusuário que você pode atribuir, consulte the section called “Cotas de endpoint” (p. 410).

Adição de um lote de endpoints ao AmazonPinpoint

Você pode adicionar ou atualizar vários endpoints em uma única operação fornecendo os endpoints emlotes. Cada solicitação em lotes pode incluir até 100 definições de endpoints.

Para adicionar ou atualizar mais de 100 endpoints em uma única operação, consulte Importação deendpoints no Amazon Pinpoint (p. 153).

ExemplosOs exemplos a seguir mostram como adicionar dois endpoints de uma vez, incluindo os endpoints em umasolicitação em lotes.

AWS CLI

Você pode usar o Amazon Pinpoint executando comandos com a AWS CLI.

Example Comando Update lotes de endpoints

Para enviar uma solicitação de endpoints em lotes, use o comando update-endpoints-batch:

$ aws pinpoint update-endpoints-batch \> --application-id application-id \> --endpoint-batch-request file://endpoint_batch_request_file.json

148

Page 156: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

Onde:

• application-id é o ID do projeto do Amazon Pinpoint no qual você está adicionando ouatualizando os endpoints.

• endpoint_batch_request_file.json é o caminho para um arquivo JSON local que contém aentrada para o parâmetro --endpoint-batch-request.

Example Arquivo de solicitação de endpoints em lotes

O comando update-endpoints-batch de exemplo usa um arquivo JSON como o argumento parao parâmetro --endpoint-request. Esse arquivo contém um lote de definições de endpoints, comoo seguinte:

{ "Item": [ { "ChannelType": "EMAIL", "Address": "[email protected]", "Attributes": { "interests": [ "music", "books" ] }, "Metrics": { "music_interest_level": 3.0, "books_interest_level": 7.0 }, "Id": "example_endpoint_1", "User": { "UserId": "example_user_1", "UserAttributes": { "name": [ "Richard", "Roe" ] } } }, { "ChannelType": "SMS", "Address": "+16145550100", "Attributes": { "interests": [ "cooking", "politics", "finance" ] }, "Metrics": { "cooking_interest_level": 5.0, "politics_interest_level": 8.0, "finance_interest_level": 4.0 }, "Id": "example_endpoint_2", "User": { "UserId": "example_user_2", "UserAttributes": { "name": [ "Mary", "Major" ] }

149

Page 157: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

} } ]}

Para obter os atributos que você pode usar para definir um lote de endpoints, consulte o esquemaEndpointBatchRequest no Referência de API do Amazon Pinpoint.

AWS SDK for Java

É possível usar a API do Amazon Pinpoint em seus aplicativos Java usando o cliente fornecido peloAWS SDK for Java.

Example Código

Para enviar uma solicitação de endpoints em lotes, inicialize um objeto EndpointBatchRequeste passe-o para o método updateEndpointsBatch do cliente do AmazonPinpoint. O exemplo aseguir preenche um objeto EndpointBatchRequest com dois objetos EndpointBatchItem:

import com.amazonaws.regions.Regions;import com.amazonaws.services.pinpoint.AmazonPinpoint;import com.amazonaws.services.pinpoint.AmazonPinpointClientBuilder;import com.amazonaws.services.pinpoint.model.ChannelType;import com.amazonaws.services.pinpoint.model.EndpointBatchItem;import com.amazonaws.services.pinpoint.model.EndpointBatchRequest;import com.amazonaws.services.pinpoint.model.EndpointUser;import com.amazonaws.services.pinpoint.model.UpdateEndpointsBatchRequest;import com.amazonaws.services.pinpoint.model.UpdateEndpointsBatchResult;

import java.util.Arrays;

public class AddExampleEndpoints {

public static void main(String[] args) {

final String USAGE = "\n" + "AddExampleEndpoints - Adds example endpoints to an Amazon Pinpoint application." + "Usage: AddExampleEndpoints <applicationId>" + "Where:\n" + " applicationId - The ID of the Amazon Pinpoint application to add the example endpoints to.";

if (args.length < 1) { System.out.println(USAGE); System.exit(1); }

String applicationId = args[0];

// Initializes an endpoint definition with channel type, address, and ID. EndpointBatchItem richardRoesEmailEndpoint = new EndpointBatchItem() .withChannelType(ChannelType.EMAIL) .withAddress("[email protected]") .withId("example_endpoint_1");

// Adds custom attributes to the endpoint. richardRoesEmailEndpoint.addAttributesEntry("interests", Arrays.asList( "music", "books"));

150

Page 158: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

// Adds custom metrics to the endpoint. richardRoesEmailEndpoint.addMetricsEntry("music_interest_level", 3.0); richardRoesEmailEndpoint.addMetricsEntry("books_interest_level", 7.0);

// Initializes a user definition with a user ID. EndpointUser richardRoe = new EndpointUser().withUserId("example_user_1");

// Adds custom user attributes. richardRoe.addUserAttributesEntry("name", Arrays.asList("Richard", "Roe"));

// Adds the user definition to the endpoint. richardRoesEmailEndpoint.setUser(richardRoe);

// Initializes an endpoint definition with channel type, address, and ID. EndpointBatchItem maryMajorsSmsEndpoint = new EndpointBatchItem() .withChannelType(ChannelType.SMS) .withAddress("+16145550100") .withId("example_endpoint_2");

// Adds custom attributes to the endpoint. maryMajorsSmsEndpoint.addAttributesEntry("interests", Arrays.asList( "cooking", "politics", "finance"));

// Adds custom metrics to the endpoint. maryMajorsSmsEndpoint.addMetricsEntry("cooking_interest_level", 5.0); maryMajorsSmsEndpoint.addMetricsEntry("politics_interest_level", 8.0); maryMajorsSmsEndpoint.addMetricsEntry("finance_interest_level", 4.0);

// Initializes a user definition with a user ID. EndpointUser maryMajor = new EndpointUser().withUserId("example_user_2");

// Adds custom user attributes. maryMajor.addUserAttributesEntry("name", Arrays.asList("Mary", "Major"));

// Adds the user definition to the endpoint. maryMajorsSmsEndpoint.setUser(maryMajor);

// Adds multiple endpoint definitions to a single request object. EndpointBatchRequest endpointList = new EndpointBatchRequest() .withItem(richardRoesEmailEndpoint) .withItem(maryMajorsSmsEndpoint);

// Initializes the Amazon Pinpoint client. AmazonPinpoint pinpointClient = AmazonPinpointClientBuilder.standard() .withRegion(Regions.US_EAST_1).build();

// Updates or creates the endpoints with Amazon Pinpoint. UpdateEndpointsBatchResult result = pinpointClient.updateEndpointsBatch( new UpdateEndpointsBatchRequest() .withApplicationId(applicationId) .withEndpointBatchRequest(endpointList));

System.out.format("Update endpoints batch result: %s\n", result.getMessageBody().getMessage());

}

}

HTTP

Você pode usar o Amazon Pinpoint, fazendo solicitações HTTP diretamente para a API REST.

151

Page 159: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

Example Solicitação Put endpoints

Para enviar uma solicitação de endpoints em lotes, envie uma solicitação PUT para o recursoEndpoints no seguinte URI:

/v1/apps/application-id/endpoints

Em que application-id é o ID do projeto do Amazon Pinpoint no qual você está adicionando ouatualizando os endpoints.

Em sua solicitação, inclua os cabeçalhos necessários e forneça o JSON EndpointBatchRequest comoo corpo:

PUT /v1/apps/application_id/endpoints HTTP/1.1Host: pinpoint.us-east-1.amazonaws.comContent-Type: application/jsonAccept: application/jsonX-Amz-Date: 20180501T184948ZAuthorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20180501/us-east-1/mobiletargeting/aws4_request, SignedHeaders=accept;content-length;content-type;host;x-amz-date, Signature=c25cbd6bf61bd3b3667c571ae764b9bf2d8af61b875cacced95d1e68d91b4170Cache-Control: no-cache

{ "Item": [ { "ChannelType": "EMAIL", "Address": "[email protected]", "Attributes": { "interests": [ "music", "books" ] }, "Metrics": { "music_interest_level": 3.0, "books_interest_level": 7.0 }, "Id": "example_endpoint_1", "User": { "UserId": "example_user_1", "UserAttributes": { "name": [ "Richard", "Roe" ] } } }, { "ChannelType": "SMS", "Address": "+16145550100", "Attributes": { "interests": [ "cooking", "politics", "finance" ] }, "Metrics": { "cooking_interest_level": 5.0, "politics_interest_level": 8.0, "finance_interest_level": 4.0 },

152

Page 160: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorInformações relacionadas

"Id": "example_endpoint_2", "User": { "UserId": "example_user_2", "UserAttributes": { "name": [ "Mary", "Major" ] } } } ]}

Se sua solicitação for bem-sucedida, você receberá uma resposta como a seguinte:

{ "RequestID": "67e572ed-41d5-11e8-9dc5-db288f3cbb72", "Message": "Accepted"}

Informações relacionadasPara obter mais informações sobre o recurso Endpoint na API do Amazon Pinpoint incluindo os métodosHTTP e os parâmetros de solicitação compatíveis, consulte Endpoint no Referência de API do AmazonPinpoint.

Importação de endpoints no Amazon PinpointVocê pode adicionar ou atualizar um grande número de endpoints importando-os de um bucket do AmazonS3. A importação de endpoints é útil se você tiver registros sobre seu público fora do Amazon Pinpoint edesejar adicionar essas informações para um projeto do Amazon Pinpoint. Nesse caso, você deve:

1. Criar definições de endpoints com base nos dados de seu próprio público-alvo.2. Salvar essas definições de endpoints em um ou mais arquivos e fazer upload dos arquivos em um

bucket do Amazon S3.3. Adicionar os endpoints a seu projeto do Amazon Pinpoint importando-os do bucket.

Cada tarefa de importação pode transferir até 1 GB de dados. Em uma tarefa típica, onde cada endpointtem 4 KB ou menos, você pode importar cerca de 250.000 endpoints. Você pode executar até duastarefas de importação simultâneas por conta da AWS. Se mais largura de banda for necessária para seustrabalhos de importação, você poderá enviar uma solicitação de aumento de cota de serviço ao AWSSupport. Para obter mais informações, consulte Solicitar um aumento de cota (p. 417).

Antes de começarPara poder importar endpoints, você precisa dos seguintes recursos em sua conta da AWS:

• Um bucket do Amazon S3. Para criar um bucket, consulte Criar um bucket no Guia de conceitos básicosdo Amazon Simple Storage Service.

• Uma função do AWS Identity and Access Management (IAM) que conceda permissões de leitura aoAmazon Pinpoint em seu bucket do Amazon S3. Para criar a função, consulte Função do IAM paraimportação de endpoints ou de segmentos (p. 387).

153

Page 161: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

ExemplosOs exemplos a seguir demonstram como adicionar definições de endpoints a seu bucket do Amazon S3 e,em seguida, importar esses endpoints em um projeto do Amazon Pinpoint.

Arquivos com definições de endpointsOs arquivos que você adiciona ao bucket do Amazon S3 podem conter definições de endpoints em formatoCSV ou JSON delimitado por novas linhas. Para obter os atributos que você pode usar para definir seusendpoints, consulte o esquema JSON EndpointRequest no Referência de API do Amazon Pinpoint.

CSV

Você pode importar endpoints definidos em um arquivo CSV, como no exemplo a seguir:

ChannelType,Address,Location.Country,Demographic.Platform,Demographic.Make,User.UserIdSMS,2065550182,CAN,Android,LG,example-user-id-1APNS,1a2b3c4d5e6f7g8h9i0j1a2b3c4d5e6f,USA,iOS,Apple,example-user-id-2EMAIL,[email protected],USA,iOS,Apple,example-user-id-2

A primeira linha é o cabeçalho, que contém os atributos de endpoint. Especifique atributos aninhadosusando a notação de ponto, como em Location.Country.

As linhas seguintes definem os endpoints fornecendo valores para cada um dos atributos nocabeçalho.

Para incluir uma vírgula, quebra de linha ou aspas em um valor, coloque o valor desejado entre aspas,como em "aaa,bbb". Para mais informações sobre o formato CSV, visite RFC 4180 Common Formatand MIME Type for Comma-Separated Values (CSV) Files.

JSON

Você pode importar endpoints definidos em um arquivo JSON delimitado por nova linha, como noexemplo a seguir:

{"ChannelType":"SMS","Address":"2065550182","Location":{"Country":"CAN"},"Demographic":{"Platform":"Android","Make":"LG"},"User":{"UserId":"example-user-id-1"}}{"ChannelType":"APNS","Address":"1a2b3c4d5e6f7g8h9i0j1a2b3c4d5e6f","Location":{"Country":"USA"},"Demographic":{"Platform":"iOS","Make":"Apple"},"User":{"UserId":"example-user-id-2"}}{"ChannelType":"EMAIL","Address":"[email protected]","Location":{"Country":"USA"},"Demographic":{"Platform":"iOS","Make":"Apple"},"User":{"UserId":"example-user-id-2"}}

Nesse formato, cada linha é um objeto JSON completo que contém uma definição de endpointindividual.

Solicitações de trabalhos de importaçãoOs exemplos a seguir mostram como adicionar definições de endpoints ao Amazon S3 fazendo uploadde um arquivo local em um bucket. Em seguida, os exemplos importam as definições de endpoint em umprojeto do Amazon Pinpoint.

AWS CLI

Você pode usar o Amazon Pinpoint executando comandos com a AWS CLI.

154

Page 162: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

Example Comando CP do S3

Para fazer upload de um arquivo local em um bucket do Amazon S3, use o comando cp do AmazonS3.

$ aws s3 cp ./endpoints-file s3://bucket-name/prefix/

Onde:

• ./endpoints-file é o caminho do arquivo para um arquivo local que contém as definições deendpoints.

• bucket-name/prefix/ é o nome de seu bucket do Amazon S3 e, opcionalmente, um prefixo que ajudaa organizar os objetos em seu bucket hierarquicamente. Por exemplo, um prefixo útil pode serpinpoint/imports/endpoints/.

Example Comando Create trabalho de importação

Para importar definições de endpoints de um bucket do Amazon S3, use o comando create-import-job:

$ aws pinpoint create-import-job \> --application-id application-id \> --import-job-request \> S3Url=s3://bucket-name/prefix/key,\> RoleArn=iam-import-role-arn,\> Format=format,\> RegisterEndpoints=true

Onde:

• application-id é o ID do projeto do Amazon Pinpoint para o qual você está importando endpoints.• bucket-name/prefix/key é o local no Amazon S3 que contém um ou mais objetos para importação.

A localização pode terminar com a chave de um objeto individual ou terminar com um prefixo quequalifica vários objetos.

• iam-import-role-arn é o Nome de recurso da Amazon (ARN) de uma função do IAM que concedeacesso de leitura do Amazon Pinpoint ao bucket.

• O formato poder ser JSON ou CSV, dependendo do formato que você usou para definir os endpoints.Se o local do Amazon S3 incluir vários objetos de formatos mistos, o Amazon Pinpoint importaráapenas os objetos que corresponderem ao formato especificado.

A resposta inclui detalhes sobre o trabalho de importação:

{ "ImportJobResponse": { "CreationDate": "2018-05-24T21:26:33.995Z", "Definition": { "DefineSegment": false, "ExternalId": "463709046829", "Format": "JSON", "RegisterEndpoints": true, "RoleArn": "iam-import-role-arn", "S3Url": "s3://bucket-name/prefix/key" }, "Id": "d5ecad8e417d498389e1d5b9454d4e0c", "JobStatus": "CREATED", "Type": "IMPORT"

155

Page 163: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

}}

A resposta fornece o ID do trabalho com o atributo Id. Você pode usar esse ID para verificar o statusatual do trabalho de importação.

Example Comando Get trabalho de importação

Para verificar o status atual do trabalho de importação, use o comando get-import-job:

$ aws pinpoint get-import-job \> --application-id application-id \> --job-id job-id

Onde:

• application-id é o ID do projeto do Amazon Pinpoint para o qual o trabalho de importação foiiniciado.

• job-id é o ID do trabalho de importação que você está verificando.

A resposta a esse comando fornece o estado atual do trabalho de importação:

{ "ImportJobResponse": { "ApplicationId": "application-id", "CompletedPieces": 1, "CompletionDate": "2018-05-24T21:26:45.308Z", "CreationDate": "2018-05-24T21:26:33.995Z", "Definition": { "DefineSegment": false, "ExternalId": "463709046829", "Format": "JSON", "RegisterEndpoints": true, "RoleArn": "iam-import-role-arn", "S3Url": "s3://s3-bucket-name/prefix/endpoint-definitions.json" }, "FailedPieces": 0, "Id": "job-id", "JobStatus": "COMPLETED", "TotalFailures": 0, "TotalPieces": 1, "TotalProcessed": 3, "Type": "IMPORT" }}

A resposta fornece o status do trabalho com o atributo JobStatus.

AWS SDK for Java

É possível usar a API do Amazon Pinpoint em seus aplicativos Java usando o cliente fornecido peloAWS SDK for Java.

Example Código

Para fazer upload de um arquivo com definições de endpoints para o Amazon S3, use o métodoputObject do cliente do AmazonS3.

156

Page 164: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

Para importar os endpoints em um projeto do Amazon Pinpoint, inicialize um objetoCreateImportJobRequest. Em seguida, passe esse objeto para o método createImportJob docliente do AmazonPinpoint.

package com.amazonaws.examples.pinpoint;

import com.amazonaws.AmazonServiceException;import com.amazonaws.regions.Regions;import com.amazonaws.services.pinpoint.AmazonPinpoint;import com.amazonaws.services.pinpoint.AmazonPinpointClientBuilder;import com.amazonaws.services.pinpoint.model.CreateImportJobRequest;import com.amazonaws.services.pinpoint.model.CreateImportJobResult;import com.amazonaws.services.pinpoint.model.Format;import com.amazonaws.services.pinpoint.model.GetImportJobRequest;import com.amazonaws.services.pinpoint.model.GetImportJobResult;import com.amazonaws.services.pinpoint.model.ImportJobRequest;import com.amazonaws.services.s3.AmazonS3;import com.amazonaws.services.s3.AmazonS3ClientBuilder;import com.amazonaws.services.s3.model.AmazonS3Exception;import java.io.File;import java.nio.file.Path;import java.nio.file.Paths;import java.util.List;import java.util.concurrent.TimeUnit;

public class ImportEndpoints {

public static void main(String[] args) {

final String USAGE = "\n" + "ImportEndpoints - Adds endpoints to an Amazon Pinpoint application by: \n" + "1.) Uploading the endpoint definitions to an Amazon S3 bucket. \n" + "2.) Importing the endpoint definitions from the bucket to an Amazon Pinpoint " + "application.\n\n" + "Usage: ImportEndpoints <endpointsFileLocation> <s3BucketName> <iamImportRoleArn> " + "<applicationId>\n\n" + "Where:\n" + " endpointsFileLocation - The relative location of the JSON file that contains the " + "endpoint definitions.\n" + " s3BucketName - The name of the Amazon S3 bucket to upload the JSON file to. If the " + "bucket doesn't exist, a new bucket is created.\n" + " iamImportRoleArn - The ARN of an IAM role that grants Amazon Pinpoint read " + "permissions to the S3 bucket.\n" + " applicationId - The ID of the Amazon Pinpoint application to add the endpoints to.";

if (args.length < 1) { System.out.println(USAGE); System.exit(1); }

String endpointsFileLocation = args[0]; String s3BucketName = args[1]; String iamImportRoleArn = args[2]; String applicationId = args[3];

Path endpointsFilePath = Paths.get(endpointsFileLocation); File endpointsFile = new File(endpointsFilePath.toAbsolutePath().toString()); uploadToS3(endpointsFile, s3BucketName);

157

Page 165: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

importToPinpoint(endpointsFile.getName(), s3BucketName, iamImportRoleArn, applicationId);

}

private static void uploadToS3(File endpointsFile, String s3BucketName) {

// Initializes Amazon S3 client. final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();

// Checks whether the specified bucket exists. If not, attempts to create one. if (!s3.doesBucketExistV2(s3BucketName)) { try { s3.createBucket(s3BucketName); System.out.format("Created S3 bucket %s.\n", s3BucketName); } catch (AmazonS3Exception e) { System.err.println(e.getErrorMessage()); System.exit(1); } }

// Uploads the endpoints file to the bucket. String endpointsFileName = endpointsFile.getName(); System.out.format("Uploading %s to S3 bucket %s . . .\n", endpointsFileName, s3BucketName); try { s3.putObject(s3BucketName, "imports/" + endpointsFileName, endpointsFile); System.out.println("Finished uploading to S3."); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); } }

private static void importToPinpoint(String endpointsFileName, String s3BucketName, String iamImportRoleArn, String applicationId) {

// The S3 URL that Amazon Pinpoint requires to find the endpoints file. String s3Url = "s3://" + s3BucketName + "/imports/" + endpointsFileName;

// Defines the import job that Amazon Pinpoint runs. ImportJobRequest importJobRequest = new ImportJobRequest() .withS3Url(s3Url) .withRegisterEndpoints(true) .withRoleArn(iamImportRoleArn) .withFormat(Format.JSON); CreateImportJobRequest createImportJobRequest = new CreateImportJobRequest() .withApplicationId(applicationId) .withImportJobRequest(importJobRequest);

// Initializes the Amazon Pinpoint client. AmazonPinpoint pinpointClient = AmazonPinpointClientBuilder.standard() .withRegion(Regions.US_EAST_1).build();

System.out.format("Importing endpoints in %s to Amazon Pinpoint application %s . . .\n", endpointsFileName, applicationId);

try {

// Runs the import job with Amazon Pinpoint. CreateImportJobResult importResult = pinpointClient.createImportJob(createImportJobRequest);

158

Page 166: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

String jobId = importResult.getImportJobResponse().getId(); GetImportJobResult getImportJobResult = null; String jobStatus = null;

// Checks the job status until the job completes or fails. do { getImportJobResult = pinpointClient.getImportJob(new GetImportJobRequest() .withJobId(jobId) .withApplicationId(applicationId)); jobStatus = getImportJobResult.getImportJobResponse().getJobStatus(); System.out.format("Import job %s . . .\n", jobStatus.toLowerCase()); TimeUnit.SECONDS.sleep(3); } while (!jobStatus.equals("COMPLETED") && !jobStatus.equals("FAILED"));

if (jobStatus.equals("COMPLETED")) { System.out.println("Finished importing endpoints."); } else { System.err.println("Failed to import endpoints."); System.exit(1); }

// Checks for entries that failed to import. // getFailures provides up to 100 of the first failed entries for the job, if any exist. List<String> failedEndpoints = getImportJobResult.getImportJobResponse().getFailures(); if (failedEndpoints != null) { System.out.println("Failed to import the following entries:"); for (String failedEndpoint : failedEndpoints) { System.out.println(failedEndpoint); } }

} catch (AmazonServiceException | InterruptedException e) { System.err.println(e.getMessage()); System.exit(1); }

}

}

HTTP

Você pode usar o Amazon Pinpoint, fazendo solicitações HTTP diretamente para a API REST.

Example Solicitação PUT objeto do S3

Para adicionar suas definições de endpoints a um bucket, use a operação PUT objeto do Amazon S3e forneça as definições de endpoints como o corpo:

PUT /prefix/key HTTP/1.1Content-Type: text/plainAccept: application/jsonHost: bucket-name.s3.amazonaws.comX-Amz-Content-Sha256: c430dc094b0cec2905bc88d96314914d058534b14e2bc6107faa9daa12fdff2dX-Amz-Date: 20180605T184132ZAuthorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20180605/us-east-1/s3/aws4_request, SignedHeaders=accept;cache-control;content-length;content-type;host;postman-token;x-amz-content-sha256;x-amz-date, Signature=c25cbd6bf61bd3b3667c571ae764b9bf2d8af61b875cacced95d1e68d91b4170Cache-Control: no-cache

159

Page 167: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

{"ChannelType":"SMS","Address":"2065550182","Location":{"Country":"CAN"},"Demographic":{"Platform":"Android","Make":"LG"},"User":{"UserId":"example-user-id-1"}}{"ChannelType":"APNS","Address":"1a2b3c4d5e6f7g8h9i0j1a2b3c4d5e6f","Location":{"Country":"USA"},"Demographic":{"Platform":"iOS","Make":"Apple"},"User":{"UserId":"example-user-id-2"}}{"ChannelType":"EMAIL","Address":"[email protected]","Location":{"Country":"USA"},"Demographic":{"Platform":"iOS","Make":"Apple"},"User":{"UserId":"example-user-id-2"}}

Onde:

• /prefix/key é o prefixo e o nome da chave do objeto que conterá as definições de endpoints após oupload. Você pode usar o prefixo para organizar seus objetos hierarquicamente. Por exemplo, umprefixo útil pode ser pinpoint/imports/endpoints/.

• bucket-name é o nome do bucket do Amazon S3 ao qual você está adicionando as definições deendpoints.

Example Solicitação POST trabalho de importação

Para importar definições de endpoints de um bucket do Amazon S3, envie uma solicitação POST parao recurso Import Jobs (Tarefas de importação). Em sua solicitação, inclua os cabeçalhos necessáriose forneça o JSON ImportJobRequest como o corpo:

POST /v1/apps/application_id/jobs/import HTTP/1.1Content-Type: application/jsonAccept: application/jsonHost: pinpoint.us-east-1.amazonaws.comX-Amz-Date: 20180605T214912ZAuthorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20180605/us-east-1/mobiletargeting/aws4_request, SignedHeaders=accept;cache-control;content-length;content-type;host;postman-token;x-amz-date, Signature=c25cbd6bf61bd3b3667c571ae764b9bf2d8af61b875cacced95d1e68d91b4170Cache-Control: no-cache

{ "S3Url": "s3://bucket-name/prefix/key", "RoleArn": "iam-import-role-arn", "Format": "format", "RegisterEndpoints": true}

Onde:

• application-id é o ID do projeto do Amazon Pinpoint para o qual você está importando endpoints.• bucket-name/prefix/key é o local no Amazon S3 que contém um ou mais objetos para importação.

A localização pode terminar com a chave de um objeto individual ou terminar com um prefixo quequalifica vários objetos.

• iam-import-role-arn é o Nome de recurso da Amazon (ARN) de uma função do IAM que concedeacesso de leitura do Amazon Pinpoint ao bucket.

• O formato poder ser JSON ou CSV, dependendo do formato que você usou para definir os endpoints.Se o local do Amazon S3 incluir vários arquivos de formatos mistos, o Amazon Pinpoint importaráapenas os arquivos que corresponderem ao formato especificado.

Se sua solicitação for bem-sucedida, você receberá uma resposta como a seguinte:

{ "Id": "a995ce5d70fa44adb563b7d0e3f6c6f5", "JobStatus": "CREATED",

160

Page 168: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

"CreationDate": "2018-06-05T21:49:15.288Z", "Type": "IMPORT", "Definition": { "S3Url": "s3://bucket-name/prefix/key", "RoleArn": "iam-import-role-arn", "ExternalId": "external-id", "Format": "JSON", "RegisterEndpoints": true, "DefineSegment": false }}

A resposta fornece o ID do trabalho com o atributo Id. Você pode usar esse ID para verificar o statusatual do trabalho de importação.

Example Solicitação GET trabalho de importação

Para verificar o status atual de uma tarefa de importação, envie uma solicitação GET para o recurso deImport Jobs (Tarefas de importação):

GET /v1/apps/application_id/jobs/import/job_id HTTP/1.1Content-Type: application/jsonAccept: application/jsonHost: pinpoint.us-east-1.amazonaws.comX-Amz-Date: 20180605T220744ZAuthorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20180605/us-east-1/mobiletargeting/aws4_request, SignedHeaders=accept;cache-control;content-type;host;postman-token;x-amz-date, Signature=c25cbd6bf61bd3b3667c571ae764b9bf2d8af61b875cacced95d1e68d91b4170Cache-Control: no-cache

Onde:

• application_id é o ID do projeto do Amazon Pinpoint para o qual o trabalho de importação foiiniciado.

• job_id é o ID do trabalho de importação que você está verificando.

Se sua solicitação for bem-sucedida, você receberá uma resposta como a seguinte:

{ "ApplicationId": "application_id", "Id": "70a51b2cf442447492d2c8e50336a9e8", "JobStatus": "COMPLETED", "CompletedPieces": 1, "FailedPieces": 0, "TotalPieces": 1, "CreationDate": "2018-06-05T22:04:49.213Z", "CompletionDate": "2018-06-05T22:04:58.034Z", "Type": "IMPORT", "TotalFailures": 0, "TotalProcessed": 3, "Definition": { "S3Url": "s3://bucket-name/prefix/key.json", "RoleArn": "iam-import-role-arn", "ExternalId": "external-id", "Format": "JSON", "RegisterEndpoints": true, "DefineSegment": false }}

161

Page 169: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorInformações relacionadas

A resposta fornece o status do trabalho com o atributo JobStatus.

Informações relacionadasPara obter mais informações sobre o recurso de tarefas de importação na API do Amazon Pinpointincluindo os métodos HTTP e os parâmetros de solicitação compatíveis, consulte Import Jobs (Tarefas deimportação) no Referência de API do Amazon Pinpoint.

Exclusão de endpoints do Amazon PinpointVocê pode excluir endpoints quando não desejar mais enviar mensagens a um determinado destino, comoquando o destino se tornar inacessível ou quando um cliente fechar uma conta.

ExemplosOs exemplos a seguir mostram como excluir um endpoint.

AWS CLI

Você pode usar o Amazon Pinpoint executando comandos com a AWS CLI.

Example Comando Delete endpoint

Para excluir um endpoint, use o comando delete-endpoint:

$ aws pinpoint delete-endpoint \> --application-id application-id \> --endpoint-id endpoint-id

Onde:

• application-id é o ID do projeto do Amazon Pinpoint que contém o endpoint.• endpoint-id é o ID do endpoint que você está excluindo.

A resposta a esse comando é a definição JSON do endpoint excluído.

AWS SDK for Java

É possível usar a API do Amazon Pinpoint em seus aplicativos Java usando o cliente fornecido peloAWS SDK for Java.

Example Código

Para excluir um endpoint, use o método deleteEndpoint do cliente do AmazonPinpoint. Forneçaum objeto DeleteEndpointRequest como o argumento do método:

import com.amazonaws.AmazonServiceException;import com.amazonaws.regions.Regions;import com.amazonaws.services.pinpoint.AmazonPinpoint;import com.amazonaws.services.pinpoint.AmazonPinpointClientBuilder;import com.amazonaws.services.pinpoint.model.DeleteEndpointRequest;import com.amazonaws.services.pinpoint.model.DeleteEndpointResult;

162

Page 170: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

import java.util.Arrays;

public class DeleteEndpoints {

public static void main(String[] args) {

final String USAGE = "\n" + "DeleteEndpoints - Removes one or more endpoints from an " + "Amazon Pinpoint application.\n\n" +

"Usage: DeleteEndpoints <applicationId> <endpointId1> [endpointId2 ...]\n";

if (args.length < 2) { System.out.println(USAGE); System.exit(1); }

String applicationId = args[0]; String[] endpointIds = Arrays.copyOfRange(args, 1, args.length);

// Initializes the Amazon Pinpoint client. AmazonPinpoint pinpointClient = AmazonPinpointClientBuilder.standard() .withRegion(Regions.US_EAST_1).build();

try { // Deletes each of the specified endpoints with the Amazon Pinpoint client. for (String endpointId: endpointIds) { DeleteEndpointResult result = pinpointClient.deleteEndpoint(new DeleteEndpointRequest() .withEndpointId(endpointId) .withApplicationId(applicationId)); System.out.format("Deleted endpoint %s.\n", result.getEndpointResponse().getId()); } } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); } }}

HTTP

Você pode usar o Amazon Pinpoint, fazendo solicitações HTTP diretamente para a API REST.

Example Solicitação DELETE endpoint

Para excluir um endpoint, envie uma solicitação DELETE para o recurso Endpoint:

DELETE /v1/apps/application-id/endpoints/endpoint-id HTTP/1.1Host: pinpoint.us-east-1.amazonaws.comContent-Type: application/jsonAccept: application/jsonCache-Control: no-cache

Onde:

• application-id é o ID do projeto do Amazon Pinpoint que contém o endpoint.• endpoint-id é o ID do endpoint que você está excluindo.

A resposta a essa solicitação é a definição JSON do endpoint excluído.

163

Page 171: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorPesquisa de endpoints

Acesso aos dados do público-alvo noAmazon Pinpoint

Conforme você adiciona endpoints ao Amazon Pinpoint, ele cresce como um repositório de dados dopúblico-alvo. Esses dados consistem em:

• Endpoints que você adiciona ou atualiza usando a API do Amazon Pinpoint.• Endpoints que seu código cliente adiciona ou atualiza conforme os usuários entram em seu aplicativo.

Conforme seu público-alvo aumenta e muda, os dados de seu endpoint também aumentam e mudam.Para visualizar as informações mais recentes contidas no Amazon Pinpoint sobre seu público-alvo, vocêpode pesquisar endpoints individualmente ou exportar todos os endpoints para um projeto do AmazonPinpoint. Visualizando os dados de seus endpoints, você pode aprender sobre as características dopúblico-alvo que você registra em seus endpoints, como:

• Os dispositivos e plataformas de seus usuários.• Os fusos horários dos usuários.• As versões de seu aplicativo que estão instaladas nos dispositivos dos usuários.• As localizações dos usuários, como suas cidades ou países.• Todos os atributos ou métricas personalizados que você registrar.

O console do Amazon Pinpoint também fornece análise dos dados demográficos e atributospersonalizados que são capturados em seus endpoints.

Para pesquisar endpoints, você deve adicioná-los a seu projeto do Amazon Pinpoint. Para adicionarendpoints, consulte Definição do público-alvo do Amazon Pinpoint (p. 139).

Use os tópicos desta seção para pesquisar ou exportar endpoints usando a API do Amazon Pinpoint.

Tópicos• Pesquisa de endpoints com o Amazon Pinpoint (p. 164)• Exportação de endpoints do Amazon Pinpoint (p. 168)• Listagem de IDs de endpoints com o Amazon Pinpoint (p. 176)

Pesquisa de endpoints com o Amazon PinpointVocê pode pesquisar os detalhes de qualquer endpoint individual adicionado um projeto do AmazonPinpoint. Esses detalhes podem incluir o endereço de destino para suas mensagens, o canal demensagens, os dados sobre o dispositivo do usuário, dados sobre a localização do usuário e todos osatributos personalizados que você registrar em seus endpoints.

Para pesquisar um endpoint, você precisa do ID do endpoint. Se você não souber o ID, você poderáobter os dados do endpoint por meio da exportação. Para exportar endpoints, consulte the section called“Exportação de endpoints” (p. 168).

164

Page 172: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

ExemplosOs exemplos a seguir mostram como pesquisar um endpoint individual especificando seu ID.

AWS CLI

Você pode usar o Amazon Pinpoint executando comandos com a AWS CLI.

Example Comando Get endpoint

Para pesquisar um endpoint, use o comando get-endpoint:

$ aws pinpoint get-endpoint \> --application-id application-id \> --endpoint-id endpoint-id

Onde:

• application-id é o ID do projeto do Amazon Pinpoint que contém o endpoint.• endpoint-id é o ID do endpoint que você está pesquisando.

A resposta a esse comando é a definição JSON do endpoint, como no exemplo a seguir:

{ "EndpointResponse": { "Address": "1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f", "ApplicationId": "application-id", "Attributes": { "interests": [ "technology", "music", "travel" ] }, "ChannelType": "APNS", "CohortId": "63", "CreationDate": "2018-05-01T17:31:01.046Z", "Demographic": { "AppVersion": "1.0", "Make": "apple", "Model": "iPhone", "ModelVersion": "8", "Platform": "ios", "PlatformVersion": "11.3.1", "Timezone": "America/Los_Angeles" }, "EffectiveDate": "2018-05-07T19:03:29.963Z", "EndpointStatus": "ACTIVE", "Id": "example_endpoint", "Location": { "City": "Seattle", "Country": "US", "Latitude": 47.6, "Longitude": -122.3, "PostalCode": "98121" }, "Metrics": { "music_interest_level": 6.0, "travel_interest_level": 4.0, "technology_interest_level": 9.0

165

Page 173: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

}, "OptOut": "ALL", "RequestId": "7f546cac-6858-11e8-adcd-2b5a07aab338", "User": { "UserAttributes": { "gender": [ "female" ], "name": [ "Wang", "Xiulan" ], "age": [ "39" ] }, "UserId": "example_user" } }}

AWS SDK for Java

É possível usar a API do Amazon Pinpoint em seus aplicativos Java usando o cliente fornecido peloAWS SDK for Java.

Example Código

Para pesquisar um endpoint, inicialize um objeto GetEndpointRequest. Em seguida, passe esseobjeto para o método getEndpoint do cliente do AmazonPinpoint:

import com.amazonaws.regions.Regions;import com.amazonaws.services.pinpoint.AmazonPinpoint;import com.amazonaws.services.pinpoint.AmazonPinpointClientBuilder;import com.amazonaws.services.pinpoint.model.EndpointResponse;import com.amazonaws.services.pinpoint.model.GetEndpointRequest;import com.amazonaws.services.pinpoint.model.GetEndpointResult;import com.google.gson.FieldNamingPolicy;import com.google.gson.Gson;import com.google.gson.GsonBuilder;

public class LookUpEndpoint {

public static void main(String[] args) {

final String USAGE = "\n" + "LookUpEndpoint - Prints the definition of the endpoint that has the specified ID." + "Usage: LookUpEndpoint <applicationId> <endpointId>\n\n" +

"Where:\n" + " applicationId - The ID of the Amazon Pinpoint application that has the " + "endpoint." + " endpointId - The ID of the endpoint ";

if (args.length < 1) { System.out.println(USAGE); System.exit(1); }

String applicationId = args[0]; String endpointId = args[1];

166

Page 174: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

// Specifies the endpoint that the Amazon Pinpoint client looks up. GetEndpointRequest request = new GetEndpointRequest() .withEndpointId(endpointId) .withApplicationId(applicationId);

// Initializes the Amazon Pinpoint client. AmazonPinpoint pinpointClient = AmazonPinpointClientBuilder.standard() .withRegion(Regions.US_EAST_1).build();

// Uses the Amazon Pinpoint client to get the endpoint definition. GetEndpointResult result = pinpointClient.getEndpoint(request); EndpointResponse endpoint = result.getEndpointResponse();

// Uses the Google Gson library to pretty print the endpoint JSON. Gson gson = new GsonBuilder() .setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE) .setPrettyPrinting() .create(); String endpointJson = gson.toJson(endpoint);

System.out.println(endpointJson); }}

Para imprimir os dados do endpoint em um formato legível, este exemplo usa a biblioteca GSON doGoogle para converter o objeto EndpointResponse em uma string JSON.

HTTP

Você pode usar o Amazon Pinpoint, fazendo solicitações HTTP diretamente para a API REST.

Example Solicitação GET endpoint

Para pesquisar um endpoint, envie uma solicitação GET para o recurso Endpoint:

GET /v1/apps/application_id/endpoints/endpoint_id HTTP/1.1Host: pinpoint.us-east-1.amazonaws.comContent-Type: application/jsonAccept: application/jsonCache-Control: no-cache

Onde:

• application-id é o ID do projeto do Amazon Pinpoint que contém o endpoint.• endpoint-id é o ID do endpoint que você está pesquisando.

A resposta a essa solicitação é a definição JSON do endpoint, como no exemplo a seguir:

{ "ChannelType": "APNS", "Address": "1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f", "EndpointStatus": "ACTIVE", "OptOut": "NONE", "RequestId": "b720cfa8-6924-11e8-aeda-0b22e0b0fa59", "Location": { "Latitude": 47.6, "Longitude": -122.3, "PostalCode": "98121",

167

Page 175: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorInformações relacionadas

"City": "Seattle", "Country": "US" }, "Demographic": { "Make": "apple", "Model": "iPhone", "ModelVersion": "8", "Timezone": "America/Los_Angeles", "AppVersion": "1.0", "Platform": "ios", "PlatformVersion": "11.3.1" }, "EffectiveDate": "2018-06-06T00:58:19.865Z", "Attributes": { "interests": [ "technology", "music", "travel" ] }, "Metrics": { "music_interest_level": 6, "travel_interest_level": 4, "technology_interest_level": 9 }, "User": {}, "ApplicationId": "application_id", "Id": "example_endpoint", "CohortId": "39", "CreationDate": "2018-06-06T00:58:19.865Z"}

Informações relacionadasPara obter mais informações sobre o recurso Endpoint na API do Amazon Pinpoint, consulte Endpoint noReferência de API do Amazon Pinpoint.

Exportação de endpoints do Amazon PinpointPara obter todas as informações de seu público-alvo contidas no Amazon Pinpoint, você pode exportar asdefinições do endpoint que pertencem a um projeto. Quando você exporta, o Amazon Pinpoint coloca asdefinições do endpoint em um bucket do Amazon S3 especificado por você. A exportação de endpoints éútil quando você deseja:

• Visualizar os dados mais recentes sobre endpoints novos e existentes que seu aplicativo clienteregistrou no Amazon Pinpoint.

• Sincronizar os dados do endpoint no Amazon Pinpoint com seu próprio sistema Customer RelationshipManagement (CRM - Gerenciamento de relação com o cliente).

• Criar relatórios sobre os dados de seus clientes ou analisá-los.

Antes de começarPara poder exportar endpoints, você precisa dos seguintes recursos em sua conta da AWS:

• Um bucket do Amazon S3. Para criar um bucket, consulte Criar um bucket no Guia de conceitos básicosdo Amazon Simple Storage Service.

168

Page 176: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

• Uma função do AWS Identity and Access Management (IAM) que conceda permissões de gravaçãoao Amazon Pinpoint em seu bucket do Amazon S3. Para criar a função, consulte Função do IAM paraexportação de endpoints ou de segmentos (p. 388).

ExemplosOs exemplos a seguir demonstram como exportar endpoints de um projeto do Amazon Pinpoint e, emseguida, fazer download desses endpoints de seu bucket do Amazon S3.

AWS CLI

Você pode usar o Amazon Pinpoint executando comandos com a AWS CLI.

Example Comando Create trabalho de exportação

Para exportar os endpoints em seu projeto do Amazon Pinpoint, use o comando create-export-job:

$ aws pinpoint create-export-job \> --application-id application-id \> --export-job-request \> S3UrlPrefix=s3://bucket-name/prefix/,\> RoleArn=iam-export-role-arn

Onde:

• application-id é o ID do projeto do Amazon Pinpoint que contém os endpoints.• bucket-name/prefix/ é o nome do bucket do Amazon S3 e, opcionalmente, um prefixo que

ajuda a organizar hierarquicamente os objetos no bucket. Por exemplo, um prefixo útil pode serpinpoint/exports/endpoints/.

• iam-export-role-arn é o nome de recurso da Amazon (ARN) de uma função do IAM queconcede ao Amazon Pinpoint acesso de gravação ao bucket.

A resposta a esse comando fornece detalhes sobre o trabalho de exportação:

{ "ExportJobResponse": { "CreationDate": "2018-06-04T22:04:20.585Z", "Definition": { "RoleArn": "iam-export-role-arn", "S3UrlPrefix": "s3://s3-bucket-name/prefix/" }, "Id": "7390e0de8e0b462380603c5a4df90bc4", "JobStatus": "CREATED", "Type": "EXPORT" }}

A resposta fornece o ID do trabalho com o atributo Id. Você pode usar esse ID para verificar o statusatual do trabalho de exportação.

Example Comando Get trabalho de exportação

Para verificar o status atual do trabalho de exportação, use o comando get-export-job:

$ aws pinpoint get-export-job \> --application-id application-id \

169

Page 177: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

> --job-id job-id

Onde:

• application-id é o ID do projeto do Amazon Pinpoint do qual você exportou os endpoints.• job-id é o ID do trabalho que você está verificando.

A resposta a esse comando fornece o estado atual do trabalho de exportação:

{ "ExportJobResponse": { "ApplicationId": "application-id", "CompletedPieces": 1, "CompletionDate": "2018-05-08T22:16:48.228Z", "CreationDate": "2018-05-08T22:16:44.812Z", "Definition": {}, "FailedPieces": 0, "Id": "6c99c463f14f49caa87fa27a5798bef9", "JobStatus": "COMPLETED", "TotalFailures": 0, "TotalPieces": 1, "TotalProcessed": 215, "Type": "EXPORT" }}

A resposta fornece o status do trabalho com o atributo JobStatus. Quando o valor do status dotrabalho for COMPLETED, você obterá os endpoints exportados em seu bucket do Amazon S3.

Example Comando CP do S3

Para fazer download dos endpoints exportados, use o comando cp do Amazon S3:

$ aws s3 cp s3://bucket-name/prefix/key.gz /local/directory/

Onde:

• bucket-name/prefix/key é o local do arquivo .gz que o Amazon Pinpoint adicionou ao bucketquando você exportou os endpoints. Esse arquivo contém as definições dos endpoints exportados.

• /local/directory/ é o caminho do arquivo para o diretório local no qual você deseja fazerdownload dos endpoints.

AWS SDK for Java

É possível usar a API do Amazon Pinpoint em seus aplicativos Java usando o cliente fornecido peloAWS SDK for Java.

Example Código

Para exportar endpoints de um projeto do Amazon Pinpoint, inicialize um objetoCreateExportJobRequest. Em seguida, passe esse objeto para o método createExportJob docliente do AmazonPinpoint.

Para fazer download dos endpoints exportados do Amazon Pinpoint, use o método do getObjectcliente do AmazonS3.

170

Page 178: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

import com.amazonaws.AmazonServiceException;import com.amazonaws.regions.Regions;import com.amazonaws.services.pinpoint.AmazonPinpoint;import com.amazonaws.services.pinpoint.AmazonPinpointClientBuilder;import com.amazonaws.services.pinpoint.model.*;import com.amazonaws.services.s3.AmazonS3;import com.amazonaws.services.s3.AmazonS3ClientBuilder;import com.amazonaws.services.s3.model.S3Object;import com.amazonaws.services.s3.model.S3ObjectInputStream;import com.amazonaws.services.s3.model.S3ObjectSummary;

import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.nio.file.Path;import java.nio.file.Paths;import java.util.Date;import java.util.List;import java.util.concurrent.TimeUnit;import java.util.stream.Collectors;

public class ExportEndpoints {

public static void main(String[] args) {

final String USAGE = "\n" + "ExportEndpoints - Downloads endpoints from an Amazon Pinpoint application by: \n" + "1.) Exporting the endpoint definitions to an Amazon S3 bucket. \n" + "2.) Downloading the endpoint definitions to the specified file path.\n\n" +

"Usage: ExportEndpoints <s3BucketName> <iamExportRoleArn> <downloadDirectory> " + "<applicationId>\n\n" +

"Where:\n" + " s3BucketName - The name of the Amazon S3 bucket to export the endpoints files " + "to. If the bucket doesn't exist, a new bucket is created.\n" + " iamExportRoleArn - The ARN of an IAM role that grants Amazon Pinpoint write " + "permissions to the S3 bucket.\n" + " downloadDirectory - The directory to download the endpoints files to.\n" + " applicationId - The ID of the Amazon Pinpoint application that has the " + "endpoints.";

if (args.length < 1) { System.out.println(USAGE); System.exit(1); }

String s3BucketName = args[0]; String iamExportRoleArn = args[1]; String downloadDirectory = args[2]; String applicationId = args[3];

// Exports the endpoints to Amazon S3 and stores the keys of the new objects. List<String> objectKeys = exportEndpointsToS3(s3BucketName, iamExportRoleArn, applicationId);

// Filters the keys to only those objects that have the endpoint definitions. // These objects have the .gz extension. List<String> endpointFileKeys = objectKeys

171

Page 179: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

.stream() .filter(o -> o.endsWith(".gz")) .collect(Collectors.toList());

// Downloads the exported endpoints files to the specified directory. downloadFromS3(s3BucketName, endpointFileKeys, downloadDirectory); }

public static List<String> exportEndpointsToS3(String s3BucketName, String iamExportRoleArn, String applicationId) {

// The S3 path that Amazon Pinpoint exports the endpoints to. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-HH_mm:ss.SSS_z"); String endpointsKeyPrefix = "exports/" + applicationId + "_" + dateFormat.format(new Date ()); String s3UrlPrefix = "s3://" + s3BucketName + "/" + endpointsKeyPrefix + "/";

// Defines the export job that Amazon Pinpoint runs. ExportJobRequest exportJobRequest = new ExportJobRequest() .withS3UrlPrefix(s3UrlPrefix) .withRoleArn(iamExportRoleArn); CreateExportJobRequest createExportJobRequest = new CreateExportJobRequest() .withApplicationId(applicationId) .withExportJobRequest(exportJobRequest);

// Initializes the Amazon Pinpoint client. AmazonPinpoint pinpointClient = AmazonPinpointClientBuilder.standard() .withRegion(Regions.US_EAST_1).build();

System.out.format("Exporting endpoints from Amazon Pinpoint application %s to Amazon S3 " + "bucket %s . . .\n", applicationId, s3BucketName);

List<String> objectKeys = null;

try { // Runs the export job with Amazon Pinpoint. CreateExportJobResult exportResult = pinpointClient.createExportJob(createExportJobRequest);

// Prints the export job status to the console while the job runs. String jobId = exportResult.getExportJobResponse().getId(); printExportJobStatus(pinpointClient, applicationId, jobId);

// Initializes the Amazon S3 client. AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient();

// Lists the objects created by Amazon Pinpoint. objectKeys = s3Client .listObjectsV2(s3BucketName, endpointsKeyPrefix) .getObjectSummaries() .stream() .map(S3ObjectSummary::getKey) .collect(Collectors.toList());

} catch (AmazonServiceException e) { System.err.println(e.getMessage()); System.exit(1); }

return objectKeys; }

172

Page 180: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

private static void printExportJobStatus(AmazonPinpoint pinpointClient, String applicationId, String jobId) {

GetExportJobResult getExportJobResult; String jobStatus;

try { // Checks the job status until the job completes or fails. do { getExportJobResult = pinpointClient.getExportJob(new GetExportJobRequest() .withJobId(jobId) .withApplicationId(applicationId)); jobStatus = getExportJobResult.getExportJobResponse().getJobStatus(); System.out.format("Export job %s . . .\n", jobStatus.toLowerCase()); TimeUnit.SECONDS.sleep(3); } while (!jobStatus.equals("COMPLETED") && !jobStatus.equals("FAILED"));

if (jobStatus.equals("COMPLETED")) { System.out.println("Finished exporting endpoints."); } else { System.err.println("Failed to export endpoints."); System.exit(1); }

// Checks for entries that failed to import. // getFailures provides up to 100 of the first failed entries for the job, if any exist. List<String> failedEndpoints = getExportJobResult.getExportJobResponse().getFailures(); if (failedEndpoints != null) { System.out.println("Failed to import the following entries:"); for (String failedEndpoint : failedEndpoints) { System.out.println(failedEndpoint); } } } catch (AmazonServiceException | InterruptedException e) { System.err.println(e.getMessage()); System.exit(1); } }

public static void downloadFromS3(String s3BucketName, List<String> objectKeys, String downloadDirectory) {

// Initializes the Amazon S3 client. AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient();

try { // Downloads each object to the specified file path. for (String key : objectKeys) { S3Object object = s3Client.getObject(s3BucketName, key); String endpointsFileName = key.substring(key.lastIndexOf("/")); Path filePath = Paths.get(downloadDirectory + endpointsFileName);

System.out.format("Downloading %s to %s . . .\n", filePath.getFileName(), filePath.getParent());

writeObjectToFile(filePath, object); } System.out.println("Download finished."); } catch (AmazonServiceException | NullPointerException e) { System.err.println(e.getMessage()); System.exit(1); }

173

Page 181: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos

}

private static void writeObjectToFile(Path filePath, S3Object object) {

// Writes the contents of the S3 object to a file. File endpointsFile = new File(filePath.toAbsolutePath().toString()); try (FileOutputStream fos = new FileOutputStream(endpointsFile); S3ObjectInputStream s3is = object.getObjectContent()) { byte[] read_buf = new byte[1024]; int read_len = 0; while ((read_len = s3is.read(read_buf)) > 0) { fos.write(read_buf, 0, read_len); } } catch (IOException e) { System.err.println(e.getMessage()); System.exit(1); } }}

HTTP

Você pode usar o Amazon Pinpoint, fazendo solicitações HTTP diretamente para a API REST.

Example Solicitação POST trabalho de exportação

Para exportar os endpoints em seu projeto do Amazon Pinpoint, envie uma solicitação POST para orecurso Trabalhos de exportação:

POST /v1/apps/application_id/jobs/export HTTP/1.1Content-Type: application/jsonAccept: application/jsonHost: pinpoint.us-east-1.amazonaws.comX-Amz-Date: 20180606T001238ZAuthorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20180606/us-east-1/mobiletargeting/aws4_request, SignedHeaders=accept;cache-control;content-length;content-type;host;postman-token;x-amz-date, Signature=c25cbd6bf61bd3b3667c571ae764b9bf2d8af61b875cacced95d1e68d91b4170Cache-Control: no-cache

{ "S3UrlPrefix": "s3://bucket-name/prefix", "RoleArn": "iam-export-role-arn"}

Onde:

• application-id é o ID do projeto do Amazon Pinpoint que contém os endpoints.• bucket-name/prefix é o nome do bucket do Amazon S3 e, opcionalmente, um prefixo que

ajuda a organizar hierarquicamente os objetos no bucket. Por exemplo, um prefixo útil pode serpinpoint/exports/endpoints/.

• iam-export-role-arn é o nome de recurso da Amazon (ARN) de uma função do IAM queconcede ao Amazon Pinpoint acesso de gravação ao bucket.

A resposta a essa solicitação fornece detalhes sobre o trabalho de exportação:

{ "Id": "611bdc54c75244bfa51fe7001ddb2e36", "JobStatus": "CREATED",

174

Page 182: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorInformações relacionadas

"CreationDate": "2018-06-06T00:12:43.271Z", "Type": "EXPORT", "Definition": { "S3UrlPrefix": "s3://bucket-name/prefix", "RoleArn": "iam-export-role-arn" }}

A resposta fornece o ID do trabalho com o atributo Id. Você pode usar esse ID para verificar o statusatual do trabalho de exportação.

Example Solicitação GET trabalho de exportação

Para verificar o status atual de um trabalho de exportação, envie uma solicitação GET para o recursode Trabalho de exportação:

GET /v1/apps/application_id/jobs/export/job_id HTTP/1.1Content-Type: application/jsonAccept: application/jsonHost: pinpoint.us-east-1.amazonaws.comX-Amz-Date: 20180606T002443ZAuthorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20180606/us-east-1/mobiletargeting/aws4_request, SignedHeaders=accept;cache-control;content-type;host;postman-token;x-amz-date, Signature=c25cbd6bf61bd3b3667c571ae764b9bf2d8af61b875cacced95d1e68d91b4170Cache-Control: no-cache

Onde:

• application-id é o ID do projeto do Amazon Pinpoint do qual você exportou os endpoints.• job-id é o ID do trabalho que você está verificando.

A resposta a essa solicitação fornece o estado atual do trabalho de exportação:

{ "ApplicationId": "application_id", "Id": "job_id", "JobStatus": "COMPLETED", "CompletedPieces": 1, "FailedPieces": 0, "TotalPieces": 1, "CreationDate": "2018-06-06T00:12:43.271Z", "CompletionDate": "2018-06-06T00:13:01.141Z", "Type": "EXPORT", "TotalFailures": 0, "TotalProcessed": 217, "Definition": {}}

A resposta fornece o status do trabalho com o atributo JobStatus. Quando o valor do status dotrabalho for COMPLETED, você obterá os endpoints exportados em seu bucket do Amazon S3.

Informações relacionadasPara obter mais informações sobre o recurso de trabalhos de exportação na API do Amazon Pinpointincluindo os métodos HTTP e os parâmetros de solicitação compatíveis, consulte Trabalhos de exportaçãono Referência de API do Amazon Pinpoint.

175

Page 183: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorListagem de IDs de endpoints

Listagem de IDs de endpoints com o AmazonPinpoint

Para atualizar ou excluir um endpoint, você precisa do ID do endpoint. Portanto, para executar essasoperações em todos os endpoints em um projeto do Amazon Pinpoint, a primeira etapa é listar todosos IDs de endpoints que pertencem a esse projeto. Em seguida, você pode repetir esses IDs para, porexemplo, adicionar um atributo globalmente ou excluir todos os endpoints de seu projeto.

O exemplo a seguir usa o AWS SDK for Java e faz o seguinte:

1. Chama o método exportEndpointsToS3 de exemplo do código de exemplo em Exportação deendpoints do Amazon Pinpoint (p. 168). Esse método exporta as definições de endpoints de umprojeto do Amazon Pinpoint. As definições de endpoints são adicionadas como arquivos gzip a umbucket do Amazon S3.

2. Faz download dos arquivos gzip exportados.3. Lê os arquivos gzip e obtém o ID do endpoint de cada definição JSON do endpoint.4. Imprime os IDs de endpoints no console.5. Limpa excluindo os arquivos que o Amazon Pinpoint adicionou ao Amazon S3.

import com.amazonaws.AmazonServiceException;import com.amazonaws.services.s3.AmazonS3;import com.amazonaws.services.s3.AmazonS3ClientBuilder;import com.amazonaws.services.s3.model.DeleteObjectsRequest;import com.amazonaws.services.s3.model.S3Object;import com.google.gson.FieldNamingPolicy;import com.google.gson.Gson;import com.google.gson.GsonBuilder;import com.google.gson.JsonObject;

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;import java.util.stream.Collectors;import java.util.zip.GZIPInputStream;

public class ListEndpointIds {

public static void main(String[] args) {

final String USAGE = "\n" + "ListEndpointIds - Prints all of the endpoint IDs that belong to an Amazon " + "Pinpoint application. This program performs the following steps:\n\n" +

"1) Exports the endpoints to an Amazon S3 bucket.\n" + "2) Downloads the exported endpoints files from Amazon S3.\n" + "3) Parses the endpoints files to obtain the endpoint IDs and prints them.\n" + "4) Cleans up by deleting the objects that Amazon Pinpoint created in the S3 " + "bucket.\n\n" +

"Usage: ListEndpointIds <applicationId> <s3BucketName> <iamExportRoleArn>\n\n" +

176

Page 184: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorListagem de IDs de endpoints

"Where:\n" + " applicationId - The ID of the Amazon Pinpoint application that has the " + "endpoint.\n" + " s3BucketName - The name of the Amazon S3 bucket to export the JSON file to. If" + " the bucket doesn't exist, a new bucket is created.\n" + " iamExportRoleArn - The ARN of an IAM role that grants Amazon Pinpoint write " + "permissions to the S3 bucket.";

if (args.length < 1) { System.out.println(USAGE); System.exit(1); }

String applicationId = args[0]; String s3BucketName = args[1]; String iamExportRoleArn = args[2];

// Exports the endpoints to Amazon S3 and stores the keys of the new objects. List<String> objectKeys = ExportEndpoints.exportEndpointsToS3(s3BucketName, iamExportRoleArn, applicationId);

// Filters the keys to only those objects that have the endpoint definitions. // These objects have the .gz extension. List<String> endpointFileKeys = objectKeys .stream() .filter(o -> o.endsWith(".gz")) .collect(Collectors.toList());

// Gets the endpoint IDs from the exported endpoints files. List<String> endpointIds = getEndpointIds(s3BucketName, endpointFileKeys);

System.out.println("Endpoint IDs:");

for (String endpointId : endpointIds) { System.out.println("\t- " + endpointId); }

// Deletes the objects that Amazon Pinpoint created in the S3 bucket. deleteS3Objects(s3BucketName, objectKeys); }

private static List<String> getEndpointIds(String s3bucketName, List<String> endpointFileKeys) {

List<String> endpointIds = new ArrayList<>();

// Initializes the Amazon S3 client. AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient();

// Gets the endpoint IDs from the exported endpoints files. try { for (String key : endpointFileKeys) { S3Object endpointFile = s3Client.getObject(s3bucketName, key); endpointIds.addAll(getEndpointIdsFromFile(endpointFile)); } } catch (AmazonServiceException e) { System.err.println(e.getMessage()); System.exit(1); }

return endpointIds; }

177

Page 185: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorListagem de IDs de endpoints

private static List<String> getEndpointIdsFromFile(S3Object endpointsFile) {

List<String> endpointIdsFromFile = new ArrayList<>();

// The Google Gson library is used to parse the exported endpoint JSON. Gson gson = new GsonBuilder() .setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE) .create();

// Reads each endpoint entry in the file and adds the ID to the list. try (GZIPInputStream gzipInputStream = new GZIPInputStream(endpointsFile.getObjectContent()); BufferedReader reader = new BufferedReader(new InputStreamReader( gzipInputStream, "UTF-8"))) { String endpointString; while ((endpointString = reader.readLine()) != null) { JsonObject endpointJson = gson.fromJson(endpointString, JsonObject.class); endpointIdsFromFile.add(endpointJson .getAsJsonPrimitive("Id") .getAsString()); } } catch (IOException e) { System.err.println(e.getMessage()); System.exit(1); }

return endpointIdsFromFile; }

private static void deleteS3Objects(String s3BucketName, List<String> keys) {

AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient();

String[] keysArray = keys.toArray(new String[keys.size()]); DeleteObjectsRequest request = new DeleteObjectsRequest(s3BucketName).withKeys(keysArray);

System.out.println("Deleting the following Amazon S3 objects created by Amazon Pinpoint:");

for (String key : keys) { System.out.println("\t- " + key); }

try { s3Client.deleteObjects(request); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); }

System.out.println("Finished deleting objects."); }}

178

Page 186: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCriação de segmentos

Criação de SegmentosUm segmento de usuário representa um subconjunto de seus usuários com base em característicascompartilhadas, tais como os usuários que acessaram o seu aplicativo ou que plataforma de dispositivousam. Um segmento designa que usuários receberão as mensagens entregues por uma campanha.Defina segmentos para que você possa alcançar o público correto quando desejar convidar usuáriosde volta para seu aplicativo, fazer ofertas especiais, ou aumentar o envolvimento dos usuários e asaquisições.

Depois de criar um segmento, você pode usá-lo em uma ou mais campanhas. A campanha oferecemensagens personalizadas para os usuários no segmento.

Para mais informações, leia Segmentos.

Tópicos• Criação de segmentos (p. 179)• Importação de segmentos (p. 180)• Personalizando segmentos com o AWS Lambda (p. 183)

Criação de segmentosPara chegar ao público-alvo de uma campanha, crie um segmento baseado nos dados relatados peloaplicativo. Por exemplo, para entrar em contato com usuários que não usaram o aplicativo recentemente,você pode definir um segmento para aqueles que não o acessaram nos últimos 30 dias.

Criação de segmentos com o AWS SDK for JavaO exemplo a seguir demonstra como criar um segmento com o AWS SDK for Java.

import com.amazonaws.services.pinpoint.AmazonPinpointClient;import com.amazonaws.services.pinpoint.model.AttributeDimension;import com.amazonaws.services.pinpoint.model.AttributeType;import com.amazonaws.services.pinpoint.model.CreateSegmentRequest;import com.amazonaws.services.pinpoint.model.CreateSegmentResult;import com.amazonaws.services.pinpoint.model.RecencyDimension;import com.amazonaws.services.pinpoint.model.SegmentBehaviors;import com.amazonaws.services.pinpoint.model.SegmentDemographics;import com.amazonaws.services.pinpoint.model.SegmentDimensions;import com.amazonaws.services.pinpoint.model.SegmentLocation;import com.amazonaws.services.pinpoint.model.SegmentResponse;import com.amazonaws.services.pinpoint.model.WriteSegmentRequest;

import java.util.HashMap;import java.util.Map;

public class PinpointSegmentSample {

public SegmentResponse createSegment(AmazonPinpointClient client, String appId) { Map<String, AttributeDimension> segmentAttributes = new HashMap<>(); segmentAttributes.put("Team", new AttributeDimension().withAttributeType(AttributeType.INCLUSIVE).withValues("Lakers"));

SegmentBehaviors segmentBehaviors = new SegmentBehaviors(); SegmentDemographics segmentDemographics = new SegmentDemographics(); SegmentLocation segmentLocation = new SegmentLocation();

179

Page 187: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorImportação de segmentos

RecencyDimension recencyDimension = new RecencyDimension(); recencyDimension.withDuration("DAY_30").withRecencyType("ACTIVE"); segmentBehaviors.setRecency(recencyDimension);

SegmentDimensions dimensions = new SegmentDimensions() .withAttributes(segmentAttributes) .withBehavior(segmentBehaviors) .withDemographic(segmentDemographics) .withLocation(segmentLocation);

WriteSegmentRequest writeSegmentRequest = new WriteSegmentRequest() .withName("MySegment").withDimensions(dimensions);

CreateSegmentRequest createSegmentRequest = new CreateSegmentRequest() .withApplicationId(appId).withWriteSegmentRequest(writeSegmentRequest);

CreateSegmentResult createSegmentResult = client.createSegment(createSegmentRequest);

System.out.println("Segment ID: " + createSegmentResult.getSegmentResponse().getId());

return createSegmentResult.getSegmentResponse(); }

}

Quando você executa este exemplo, o conteúdo abaixo é impresso na janela do console do seu IDE:

Segment ID: 09cb2967a82b4a2fbab38fead8d1f4c4

Importação de segmentosCom o Amazon Pinpoint, você pode definir um segmento de usuário importando informações sobre osendpoints que pertencem ao segmento. Um endpoint é um destino de mensagens único, como um tokende push para dispositivos móveis, um número de celular ou um endereço de e-mail.

A importação de segmentos é útil se você já criou segmentos de usuários fora do Amazon Pinpoint, masdeseja envolver os usuários em campanhas do Amazon Pinpoint.

Quando você importa um segmento, Amazon Pinpoint obtém os endpoints de Amazon Simple StorageService (Amazon S3). Antes de importar, deve adicionar os endpoints a Amazon S3 e criar uma funçãoIAM que conceda a Amazon Pinpoint acesso a Amazon S3. Em seguida, você informa a Amazon Pinpointo local de armazenamento dos endpoints em Amazon S3, e Amazon Pinpoint adiciona cada um aosegmento.

Para criar a função IAM, consulte Função do IAM para importação de endpoints ou desegmentos (p. 387). Para obter informações sobre a importação de um segmento usando o console doAmazon Pinpoint, consulte Importação de segmentos no Guia do usuário do Amazon Pinpoint.

Importação de segmentoO exemplo a seguir demonstra como importar um segmento usando o AWS SDK for Java.

180

Page 188: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorImportação de segmento

import com.amazonaws.AmazonServiceException;import com.amazonaws.regions.Regions;import com.amazonaws.services.pinpoint.AmazonPinpoint;import com.amazonaws.services.pinpoint.AmazonPinpointClientBuilder;import com.amazonaws.services.pinpoint.model.*;import com.amazonaws.services.s3.AmazonS3;import com.amazonaws.services.s3.AmazonS3ClientBuilder;import com.amazonaws.services.s3.model.AmazonS3Exception;import java.io.File;import java.nio.file.Path;import java.nio.file.Paths;import java.util.List;import java.util.concurrent.TimeUnit;

public class ImportSegment {

public static void main(String[] args) {

final String USAGE = "\n" + "ImportSegment - Creates a segment by: \n" + "1.) Uploading the endpoint definitions that belong to the segment to an Amazon S3 bucket. \n" + "2.) Importing the endpoint definitions from the bucket to an Amazon Pinpoint application." + " Amazon Pinpoint creates a segment that has the specified name.\n\n" + "Usage: ImportSegment <endpointsFileLocation> <s3BucketName> <iamImportRoleArn> <segmentName> <applicationId>\n\n" + "Where:\n" + " endpointsFileLocation - The relative location of the JSON file that contains the endpoint definitions.\n" + " s3BucketName - The name of the Amazon S3 bucket to upload the JSON file to. If the bucket doesn't " + "exist, a new bucket is created.\n" + " iamImportRoleArn - The ARN of an IAM role that grants Amazon Pinpoint read permissions so the S3 bucket.\n" + " segmentName - The name for the segment that you are creating or updating." + " applicationId - The ID of the Amazon Pinpoint application to add the endpoints to.";

if (args.length < 1) { System.out.println(USAGE); System.exit(1); }

String endpointsFileLocation = args[0]; String s3BucketName = args[1]; String iamImportRoleArn = args[2]; String segmentName = args[3]; String applicationId = args[4];

Path endpointsFilePath = Paths.get(endpointsFileLocation); File endpointsFile = new File(endpointsFilePath.toAbsolutePath().toString()); uploadToS3(endpointsFile, s3BucketName);

importSegment(endpointsFile.getName(), s3BucketName, iamImportRoleArn, segmentName, applicationId);

}

private static void uploadToS3(File endpointsFile, String s3BucketName) {

// Initializes Amazon S3 client. final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();

// Checks whether the specified bucket exists. If not, attempts to create one. if (!s3.doesBucketExistV2(s3BucketName)) {

181

Page 189: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorImportação de segmento

try { s3.createBucket(s3BucketName); System.out.format("Created S3 bucket %s.\n", s3BucketName); } catch (AmazonS3Exception e) { System.err.println(e.getErrorMessage()); System.exit(1); } }

// Uploads the endpoints file to the bucket. String endpointsFileName = endpointsFile.getName(); System.out.format("Uploading %s to S3 bucket %s . . .\n", endpointsFileName, s3BucketName); try { s3.putObject(s3BucketName, "imports/" + endpointsFileName, endpointsFile); System.out.println("Finished uploading to S3."); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); } }

private static void importSegment(String endpointsFileName, String s3BucketName, String iamImportRoleArn, String segmentName, String applicationId) {

// The S3 URL that Amazon Pinpoint requires to find the endpoints file. String s3Url = "s3://" + s3BucketName + "/imports/" + endpointsFileName;

// Defines the import job that Amazon Pinpoint runs. ImportJobRequest importJobRequest = new ImportJobRequest() .withS3Url(s3Url) .withFormat(Format.JSON) .withRoleArn(iamImportRoleArn) .withRegisterEndpoints(true) .withDefineSegment(true) .withSegmentName(segmentName); CreateImportJobRequest createImportJobRequest = new CreateImportJobRequest() .withApplicationId(applicationId) .withImportJobRequest(importJobRequest);

// Initializes the Amazon Pinpoint client. AmazonPinpoint pinpointClient = AmazonPinpointClientBuilder.standard() .withRegion(Regions.US_EAST_1).build();

System.out.format("Creating segment %s with the endpoints in %s . . .\n", segmentName, endpointsFileName);

try {

// Runs the import job with Amazon Pinpoint. CreateImportJobResult importResult = pinpointClient.createImportJob(createImportJobRequest); String jobId = importResult.getImportJobResponse().getId();

// Checks the job status until the job completes or fails. GetImportJobResult getImportJobResult = null; String jobStatus = null; do { getImportJobResult = pinpointClient.getImportJob(new GetImportJobRequest() .withJobId(jobId) .withApplicationId(applicationId)); jobStatus = getImportJobResult.getImportJobResponse().getJobStatus(); System.out.format("Import job %s . . .\n", jobStatus.toLowerCase()); if (jobStatus.equals("FAILED")) { System.err.println("Failed to import segment.");

182

Page 190: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorPersonalizando segmentos com o AWS Lambda

System.exit(1); } try { TimeUnit.SECONDS.sleep(3); } catch (InterruptedException e) { System.err.println(e.getMessage()); System.exit(1); } } while (!jobStatus.equals("COMPLETED"));

System.out.println("Finished importing segment.");

// Checks for entries that failed to import. List<String> failedEndpoints = getImportJobResult.getImportJobResponse().getFailures(); if (failedEndpoints != null) { System.out.println("Failed to import the following entries:"); for (String failedEndpoint : failedEndpoints) { System.out.println(failedEndpoint); } }

} catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); }

}

}

Personalizando segmentos com o AWS LambdaEsta é uma documentação pré-lançamento de um recurso em versão beta pública. Está sujeita aalteração.

Você pode usar o AWS Lambda para ajustar como uma campanha de Amazon Pinpoint envolve o seupúblico-alvo. Com o AWS Lambda, você pode modificar o segmento da campanha no momento em que oAmazon Pinpoint enviar a mensagem da campanha.

O AWS Lambda é um serviço de computação que pode ser usado para executar código semprovisionamento ou gerenciamento de servidores. Você empacotar seu código e carregá-lo no Lambdacomo Funções Lambda. O Lambda executa uma função quando ela é invocada, o que pode ser feitomanualmente por você ou automaticamente em resposta a eventos. Para obter mais informações, consulteAWS Lambda Developer Guide.

Para atribuir uma função Lambda a uma campanha, defina as configurações CampaignHook dacampanha usando o recurso Campaign (Campanha) na API do Amazon Pinpoint. Essas configuraçõesincluem o nome da função Lambda. Elas também incluem o modo CampaignHook que define se oAmazon Pinpoint recebe um valor de retorno da função.

Uma função Lambda que você atribui a uma campanha é referida como uma extensão do AmazonPinpoint.

Com as configurações de CampaignHook definidas, o Amazon Pinpoint invoca automaticamente a funçãodo Lambda ao executar a campanha, antes de enviar a mensagem da campanha. Quando o Amazon

183

Page 191: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorDados de eventos

Pinpoint invoca a função, ele fornece dados de eventos sobre a entrega da mensagem. Esses dadosincluem o segmento da campanha, que é a lista de endpoints aos quais o Amazon Pinpoint envia amensagem.

Se o modo CampaignHook estiver definido como FILTER, o Amazon Pinpoint permite que a funçãomodifique e retorne o segmento antes de enviar a mensagem. Por exemplo, a função pode atualizar asdefinições de endpoint com atributos que contenham dados de uma origem externa ao Amazon Pinpoint.Ou a função pode filtrar o segmento removendo determinados endpoints, com base em condições nocódigo da função. Depois de o Amazon Pinpoint receber o segmento modificado da função, ele envia amensagem para cada um dos endpoints do segmento usando o canal de entrega da campanha.

Ao processar os segmentos com o AWS Lambda, você tem mais controle sobre os destinatários eo conteúdo das mensagens que envia. Você pode personalizar suas campanhas em tempo real, nomomento em que as mensagens da campanha são enviadas. A filtragem de segmentos permite que vocêenvolva subconjuntos de segmentos definidos de maneira mais restrita. Adicionar ou atualizar os atributosdo endpoint permite que você disponibilize novos dados para variáveis de mensagens.

Note

Você também pode usar as configurações CampaignHook para atribuir uma função Lambdaque lide com a entrega de mensagens. Esse tipo de função é útil para a entrega de mensagenspor meio de canais personalizados aos quais o Amazon Pinpoint não oferece suporte, comoplataformas de mídia social. Para obter mais informações, consulte Criar canais personalizadosno Amazon Pinpoint (p. 229).

Para modificar segmentos de campanha com o AWS Lambda, primeiro crie uma função que processeos dados de eventos enviados pelo Amazon Pinpoint e retorne um segmento modificado. Em seguida,autorize o Amazon Pinpoint a invocar a função atribuindo uma política de função Lambda. Por fim, atribuaa função a uma ou mais campanhas, definindo as configurações CampaignHook.

Dados de eventosQuando o Amazon Pinpoint invoca a função Lambda, ele fornece a carga a seguir como dados de eventos:

{ "MessageConfiguration": {Message configuration} "ApplicationId": ApplicationId, "CampaignId": CampaignId, "TreatmentId": TreatmentId, "ActivityId": ActivityId, "ScheduledTime": Scheduled Time, "Endpoints": { EndpointId: {Endpoint definition} . . . }}

O AWS Lambda transmite os dados de evento para o código da função. Os dados de eventos fornecem osseguintes atributos:

• MessageConfiguration – Tem a mesma estrutura do objeto DirectMessageConfiguration dorecurso Messages (Mensagens) na API do Amazon Pinpoint.

• ApplicationId – o ID do projeto do Amazon Pinpoint ao qual a campanha pertence.• CampaignId – o ID da campanha do Amazon Pinpoint para o qual a função é invocada.• TreatmentId – o ID de uma variação de campanha usada para testes A/B.• ActivityId – o ID da atividade sendo executada pela campanha.• ScheduledTime – a data e o horário, em formato ISO 8601, em que as mensagens da campanha serão

entregues.

184

Page 192: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCriar uma função Lambda

• Endpoints – Um mapa que associa IDs de endpoint a definições de endpoint. Cada carga de dadosde eventos contém até 50 endpoints. Se o segmento da campanha contiver mais de 50 endpoints, oAmazon Pinpoint invocará a função repetidamente, com até 50 endpoints por vez, até que todos osendpoints sejam processados.

Criar uma função LambdaPara saber como criar uma função do Lambda, consulte Conceitos básicos no AWS Lambda DeveloperGuide. Ao criar a função, lembre-se de que a entrega de mensagens falha nas seguintes condições:

• A função Lambda leva mais de 15 segundos para retornar o segmento modificado.• O Amazon Pinpoint não consegue decodificar o valor de retorno da função.• A função requer mais de 3 tentativas do Amazon Pinpoint para invocá-lo com êxito.

O Amazon Pinpoint só aceita definições de endpoint no valor de retorno da função. A função não conseguemodificar outros elementos nos dados de eventos.

Exemplos de função LambdaSua função Lambda processa os dados de eventos enviados pelo Amazon Pinpoint e retorna os endpointsmodificados, conforme mostrado pelo seguinte handler de exemplo, escrito em Node.js:

'use strict'; exports.handler = (event, context, callback) => { for (var key in event.Endpoints) { if (event.Endpoints.hasOwnProperty(key)) { var endpoint = event.Endpoints[key]; var attr = endpoint.Attributes; if (!attr) { attr = {}; endpoint.Attributes = attr; } attr["CreditScore"] = [ Math.floor(Math.random() * 200) + 650]; } } console.log("Received event:", JSON.stringify(event, null, 2)); callback(null, event.Endpoints);};

O Lambda passa os dados de eventos para o handler como o parâmetro event.

Neste exemplo, o handler percorre cada endpoint no objeto event.Endpoints e adiciona um novoatributo, CreditScore, ao endpoint. O valor do atributo CreditScore é simplesmente um númeroaleatório.

A instrução console.log() registra o evento no CloudWatch Logs.

A instrução callback() retorna os endpoints modificados ao Amazon Pinpoint. Normalmente, oparâmetro callback é opcional em funções Lambda Node.js, mas é necessário neste contexto porque afunção deve retornar os endpoints atualizados ao Amazon Pinpoint.

Sua função deve retornar endpoints no mesmo formato fornecido pelos dados do evento, que é um mapaque associa IDs de endpoint a definições de endpoint, como no exemplo a seguir:

{ "eqmj8wpxszeqy/b3vch04sn41yw": {

185

Page 193: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtribuição de uma política de função Lambda

"ChannelType": "GCM", "Address": "4d5e6f1a2b3c4d5e6f7g8h9i0j1a2b3c", "EndpointStatus": "ACTIVE", "OptOut": "NONE", "Demographic": { "Make": "android" }, "EffectiveDate": "2017-11-02T21:26:48.598Z", "User": {} }, "idrexqqtn8sbwfex0ouscod0yto": { "ChannelType": "APNS", "Address": "1a2b3c4d5e6f7g8h9i0j1a2b3c4d5e6f", "EndpointStatus": "ACTIVE", "OptOut": "NONE", "Demographic": { "Make": "apple" }, "EffectiveDate": "2017-11-02T21:26:48.598Z", "User": {} }}

A função de exemplo modifica e retorna o objeto event.Endpoints que recebeu nos dados do evento.

Opcionalmente, você pode incluir os atributos BodyOverride e TitleOverride nas definições deendpoint que retorna.

Note

Quando você usa essa solução para enviar mensagens, o Amazon Pinpoint respeita osatributos TitleOverride e BodyOverride apenas para endpoints em que o valor doatributo ChannelType é um dos seguintes: ADM, APNS, APNS_SANDBOX, APNS_VOIP,APNS_VOIP_SANDBOX, BAIDU, GCM ou SMS.Amazon Pinpoint não respeita esses atributos para endpoints em que o valor do atributoChannelType é EMAIL.

Atribuição de uma política de função LambdaPara usar a função Lambda para processar endpoints, você deve primeiro autorizar o Amazon Pinpointa invocar essa função Lambda. Para conceder permissão de invocação, atribua uma política de funçãoLambda à função. A política de função Lambda é uma política de permissões com base em recursos quedesigna as entidades que podem usar sua função e que ações essas entidades podem executar.

Para obter mais informações, consulte Usar politicas baseadas em recursos para o AWS Lambda no AWSLambda Developer Guide.

Exemplo de política de funçãoA política a seguir concede permissão ao principal de serviço do Amazon Pinpoint para usar a açãolambda:InvokeFunction para uma campanha específica (campaign-id):

{ "Sid": "sid", "Effect": "Allow", "Principal": { "Service": "pinpoint.us-east-1.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "{arn:aws:lambda:us-east-1:account-id:function:function-name}", "Condition": {

186

Page 194: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtribuição de uma política de função Lambda

"ArnLike": { "AWS:SourceArn": "arn:aws:mobiletargeting:us-east-1:account-id:/apps/application-id/campaigns/campaign-id" } }}

Sua política de função requer um bloco Condition que inclua uma chave AWS:SourceArn. Esse códigoinforma que a campanha do Amazon Pinpoint tem permissão para invocar a função. Neste exemplo, apolítica concede permissão apenas a uma única campanha.

Para escrever uma política mais genérica, use um curinga que corresponda a vários caracteres (*). Porexemplo, você pode usar o seguinte bloco Condition para permitir que qualquer campanha em umprojeto específico do Amazon Pinpoint (application-id) chame a função:

"Condition": { "ArnLike": { "AWS:SourceArn": "arn:aws:mobiletargeting:us-east-1:account-id:/apps/application-id/campaigns/*" }}

Para que a função do Lambda seja a função padrão usada por todas as campanhas de um projeto,recomendamos configurar o bloco Condition para a política da maneira anterior. Para obter informaçõessobre como definir uma função do Lambda como padrão para todas as campanhas em um projeto,consulte Atribuir uma função do Lambda a uma campanha posteriormente neste tópico.

Como conceder permissão de invocação no Amazon PinpointVocê pode usar a AWS Command Line Interface (AWS CLI) para adicionar permissões à política de funçãoLambda atribuída à função Lambda. Para permitir que o Amazon Pinpoint chame uma função para umacampanha específica, use o comando add-permission do Lambda, conforme mostrado no exemplo aseguir:

$ aws lambda add-permission \> --function-name function-name \> --statement-id sid \> --action lambda:InvokeFunction \> --principal pinpoint.us-east-1.amazonaws.com \> --source-arn arn:aws:mobiletargeting:us-east-1:account-id:/apps/application-id/campaigns/campaign-id

Se desejar fornecer um ID de campanha para o parâmetro --source-arn, você pode pesquisar os IDsde campanha, usando o comando do Amazon Pinpointget-campaigns com a AWS CLI. Esse comandorequer um parâmetro --application-id. Para pesquisar seus IDs de aplicativo, faça login no consoledo Amazon Pinpoint em https://console.aws.amazon.com/pinpoint/ e acesse a página All projects (Todosos projetos). O console mostra um Project ID (ID de projeto) para cada projeto, que é o ID do aplicativo doprojeto.

Ao executar o comando do Lambda add-permission, o AWS Lambda retorna o seguinte resultado:

{ "Statement": "{\"Sid\":\"sid\", \"Effect\":\"Allow\", \"Principal\":{\"Service\":\"pinpoint.us-east-1.amazonaws.com\"}, \"Action\":\"lambda:InvokeFunction\", \"Resource\":\"arn:aws:lambda:us-east-1:111122223333:function:function-name\", \"Condition\": {\"ArnLike\":

187

Page 195: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtribuição de uma função Lambda a uma campanha

{\"AWS:SourceArn\": \"arn:aws:mobiletargeting:us-east-1:111122223333:/apps/application-id/campaigns/campaign-id\"}}}"}

O valor de Statement é uma versão da string JSON da instrução adicionada à política da função doLambda.

Atribuição de uma função Lambda a uma campanhaVocê pode atribuir uma função Lambda a uma campanha do Amazon Pinpoint específica. Ou é possíveldefinir a função Lambda como o padrão usado por todas as campanhas de um projeto, exceto nascampanhas para as quais você atribui uma função individualmente.

Para atribuir uma função Lambda a uma campanha específica, use a API do Amazon Pinpoint para criarou atualizar um objeto Campaign e definir seu atributo CampaignHook. Para definir uma função Lambdacomo padrão para todas as campanhas em um projeto, crie ou atualize o recurso Settings para esseprojeto e defina seu objeto CampaignHook.

Em ambos os casos, defina os seguintes atributos CampaignHook:

• LambdaFunctionName – O nome ou nome de recurso da Amazon (ARN) da função Lambda que oAmazon Pinpoint invoca antes de enviar mensagens para a campanha.

• Mode – defina para FILTER. Com esse modo, o Amazon Pinpoint invoca a função e aguarda ela retornaros endpoints modificados. Depois de receber-los, o Amazon Pinpoint envia a mensagem. O AmazonPinpoint aguarda até 15 segundos antes da falha na entrega da mensagem.

Com as configurações do CampaignHook definidas para uma campanha, Amazon Pinpoint invoca afunção Lambda especificada antes de enviar mensagens da campanha. O Amazon Pinpoint aguarda parareceber os endpoints modificados da função. Se o Amazon Pinpoint recebe os endpoints atualizados, eleprossegue com a entrega da mensagem, usando os dados dos endpoints atualizados.

188

Page 196: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCriação de campanhas padrão

Criação de campanhasPara ajudar a aumentar o envolvimento entre seu aplicativo e os usuários, use Amazon Pinpoint para criare gerenciar campanhas de notificação por push que atinjam segmentos específicos.

Por exemplo, sua campanha pode estimular o retorno dos usuários que não o usam há muito tempo ouoferecer promoções especiais àqueles que não fizeram compras recentemente.

A campanha envia uma mensagem personalizada para um segmento de usuários específico. A campanhapoderá enviar a mensagem a todos os usuários do segmento, ou você pode alocar um holdout, que é umaporcentagem de usuários que não recebem mensagens.

Você pode programar a campanha para enviar a mensagem uma vez só ou de forma recorrente, comouma vez por semana. Para evitar que os usuários recebam-na em momentos inconvenientes, você podeprogramar um período de silêncio, em que a campanha não envie nada.

Para experimentar estratégias alternativas, configure sua campanha como um teste A/B. Esse teste incluidois ou mais tratamento da mensagem ou programação. Esses tratamentos são variações do conteúdoenviado. À medida que seus usuários reagem à campanha, você poderá visualizar e fazer análises paracomparar a eficácia de cada tratamento.

Para mais informações, acesse Campanhas.

Criação de campanhas padrãoCampanhas padrão enviam notificações por push personalizadas a segmentos especificados, de acordocom a programação definida.

Criação de campanhas com o AWS SDK for JavaO exemplo a seguir demonstra como criar uma campanha com o AWS SDK for Java.

import com.amazonaws.services.pinpoint.AmazonPinpointClient;import com.amazonaws.services.pinpoint.model.Action;import com.amazonaws.services.pinpoint.model.CampaignResponse;import com.amazonaws.services.pinpoint.model.CreateCampaignRequest;import com.amazonaws.services.pinpoint.model.CreateCampaignResult;import com.amazonaws.services.pinpoint.model.Message;import com.amazonaws.services.pinpoint.model.MessageConfiguration;import com.amazonaws.services.pinpoint.model.Schedule;import com.amazonaws.services.pinpoint.model.WriteCampaignRequest;

import java.util.ArrayList;import java.util.List;

public class PinpointCampaignSample {

public CampaignResponse createCampaign(AmazonPinpointClient client, String appId, String segmentId) { Schedule schedule = new Schedule() .withStartTime("IMMEDIATE");

Message defaultMessage = new Message() .withAction(Action.OPEN_APP)

189

Page 197: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCriação de campanhas de teste A/B

.withBody("My message body.") .withTitle("My message title.");

MessageConfiguration messageConfiguration = new MessageConfiguration() .withDefaultMessage(defaultMessage);

WriteCampaignRequest request = new WriteCampaignRequest() .withDescription("My description.") .withSchedule(schedule) .withSegmentId(segmentId) .withName("MyCampaign") .withMessageConfiguration(messageConfiguration);

CreateCampaignRequest createCampaignRequest = new CreateCampaignRequest() .withApplicationId(appId).withWriteCampaignRequest(request);

CreateCampaignResult result = client.createCampaign(createCampaignRequest);

System.out.println("Campaign ID: " + result.getCampaignResponse().getId());

return result.getCampaignResponse(); }

}

Quando você executa este exemplo, o conteúdo abaixo é impresso na janela do console do seu IDE:

Campaign ID: b1c3de717aea4408a75bb3287a906b46

Criação de campanhas de teste A/BTestes A/B agem como campanhas padrão, mas permitem que você defina tratamentos diferentes para amensagem ou programação.

Criação de campanhas de teste A/B com o AWS SDKfor JavaO exemplo a seguir demonstra como criar uma campanha de teste A/B com o AWS SDK for Java.

import com.amazonaws.services.pinpoint.AmazonPinpointClient;import com.amazonaws.services.pinpoint.model.Action;import com.amazonaws.services.pinpoint.model.CampaignResponse;import com.amazonaws.services.pinpoint.model.CreateCampaignRequest;import com.amazonaws.services.pinpoint.model.CreateCampaignResult;import com.amazonaws.services.pinpoint.model.Message;import com.amazonaws.services.pinpoint.model.MessageConfiguration;import com.amazonaws.services.pinpoint.model.Schedule;import com.amazonaws.services.pinpoint.model.WriteCampaignRequest;import com.amazonaws.services.pinpoint.model.WriteTreatmentResource;

import java.util.ArrayList;import java.util.List;

public class PinpointCampaignSample {

public CampaignResponse createAbCampaign(AmazonPinpointClient client, String appId, String segmentId) {

190

Page 198: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCriação de campanhas de testeA/B com o AWS SDK for Java

Schedule schedule = new Schedule() .withStartTime("IMMEDIATE");

// Default treatment. Message defaultMessage = new Message() .withAction(Action.OPEN_APP) .withBody("My message body.") .withTitle("My message title.");

MessageConfiguration messageConfiguration = new MessageConfiguration() .withDefaultMessage(defaultMessage);

// Additional treatments WriteTreatmentResource treatmentResource = new WriteTreatmentResource() .withMessageConfiguration(messageConfiguration) .withSchedule(schedule) .withSizePercent(40) .withTreatmentDescription("My treatment description.") .withTreatmentName("MyTreatment");

List<WriteTreatmentResource> additionalTreatments = new ArrayList<WriteTreatmentResource>(); additionalTreatments.add(treatmentResource);

WriteCampaignRequest request = new WriteCampaignRequest() .withDescription("My description.") .withSchedule(schedule) .withSegmentId(segmentId) .withName("MyCampaign") .withMessageConfiguration(messageConfiguration) .withAdditionalTreatments(additionalTreatments) .withHoldoutPercent(10); // Hold out of A/B test

CreateCampaignRequest createCampaignRequest = new CreateCampaignRequest() .withApplicationId(appId).withWriteCampaignRequest(request);

CreateCampaignResult result = client.createCampaign(createCampaignRequest);

System.out.println("Campaign ID: " + result.getCampaignResponse().getId());

return result.getCampaignResponse(); }

}

Quando você executa este exemplo, o conteúdo abaixo é impresso na janela do console do seu IDE:

Campaign ID: b1c3de717aea4408a75bb3287a906b46

191

Page 199: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCasos de uso da validação de números de telefone

Validação de números de telefone noAmazon Pinpoint

O Amazon Pinpoint inclui um serviço de validação de números de telefone que você pode usar paradeterminar se um número de telefone é válido, além de obter informações adicionais sobre o próprionúmero de telefone. Por exemplo, quando você usa o serviço de validação de números de telefone, eleretorna as seguintes informações:

• O número de telefone em formato E.164.• O tipo de número de telefone (como celular, fixo ou VoIP).• A cidade e o país onde o número telefone está localizado.• A operadora associada ao número de telefone.

Há um custo adicional pelo uso do serviço de validação de números de telefone. Para obter maisinformações, consulte Definição de preço do Amazon Pinpoint.

Casos de uso da validação de números de telefoneVocê pode aplicar o serviço de validação de números de telefone a vários casos de uso, incluindo osseguintes:

• Verificação de números de telefone fornecidos em um formulário da web – se você usa formulários naweb para coletar informações de contato de seus clientes, é possível validar os números de telefonefornecidos pelos clientes antes do formulário ser enviado. Use o back-end do site para validar o númerousando a API do Amazon Pinpoint. A resposta da API informará se o número for inválido; por exemplo,caso esteja formatado incorretamente. Se você determinar que o número de telefone fornecido pelocliente é inválido, seu formulário da web poderá notificar o cliente para que ele forneça outro número.

• Limpeza de seu banco de dados de contatos – se você tem um banco de dados de números de telefonede clientes, é possível validar cada número de telefone e atualizar o banco de dados de acordo com osresultados. Por exemplo, caso encontre endpoints com números de telefone que não podem recebermensagens SMS, você poderá alterar a propriedade ChannelType do endpoint de SMS para VOICE.

• Escolha do canal adequado antes de enviar a mensagem – se você pretende enviar uma mensagemSMS, mas constata que o número de destino é inválido, você pode enviar a mensagem ao destinatáriopor um canal diferente. Por exemplo, se o endpoint não puder receber mensagens SMS, você podeenviar uma mensagem de voz em vez disso.

Uso do serviço de validação de números detelefone

Para validar um número, envie uma solicitação HTTP POST para o URI /v1/phone/number/validate/ na API do Amazon Pinpoint. A solicitação no exemplo a seguir inclui os cabeçalhos HTTPobrigatórios e um corpo JSON simples. O corpo especifica o número a ser validado com o parâmetroPhoneNumber:

POST /v1/phone/number/validate/ HTTP/1.1

192

Page 200: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorRespostas da validação de números de telefone

Host: pinpoint.us-east-1.amazonaws.comContent-Type: application/jsonX-Amz-Date: 20190805T031042ZAuthorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20190805/us-east-1/mobiletargeting/aws4_request, SignedHeaders=content-length;content-type;host;x-amz-date, Signature=39df573629ddb283aea1fa2f7eef4106c0fb4826edf72e9934f03cf77exampleCache-Control: no-cache

{ "PhoneNumber": "+12065550100"}

Para obter informações sobre os métodos, parâmetros e esquemas compatíveis, consulte Validação denúmero de telefone no Referência de API do Amazon Pinpoint.

Você também pode usar a AWS CLI para validar números de telefone individuais rapidamente.

Como usar o serviço de validação de números de telefone com a AWS CLI

• Na linha de comando, insira o seguinte comando:

aws pinpoint phone-number-validate --number-validate-request PhoneNumber=+442079460881

No comando anterior, substitua +442079460881 pelo número de telefone que deseja validar.

Note

Você sempre deve incluir o código do país ao fornecer o número de telefone para o serviçode validação de números de telefone. Se você não incluir o código do país, o serviço poderáretornar informações de um número de telefone em outro país.

Respostas da validação de números de telefoneAs informações fornecidas pelo serviço de validação de números de telefone podem variar um pouco deacordo com os dados disponíveis para o número de telefone. Esta seção contém exemplos de respostasdo serviço de validação de números de telefone.

Note

Os dados fornecidos pelo serviço de validação de números de telefone são baseados nasinformações fornecidas por operadoras de telefonia e outras entidades em todo o mundo. Asoperadoras em alguns países podem atualizar essas informações com menos frequência do queem outros países. Por exemplo, se você emitir uma solicitação para validar um número de celular,e o número que você forneceu migrou de uma operadora para outra, a resposta do serviço devalidação de números de telefone pode incluir o nome da operadora original, em vez de o atual.

Números de telefone celular válidos

Quando você envia uma solicitação para o serviço de validação de números de telefone, e o número detelefone é um celular válido, ele retorna informações semelhantes às do seguinte exemplo:

{ "NumberValidateResponse": { "Carrier": "ExampleCorp Mobile", "City": "Seattle", "CleansedPhoneNumberE164": "+12065550142", "CleansedPhoneNumberNational": "2065550142", "Country": "United States",

193

Page 201: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorRespostas da validação de números de telefone

"CountryCodeIso2": "US", "CountryCodeNumeric": "1", "OriginalPhoneNumber": "+12065550142", "PhoneType": "MOBILE", "PhoneTypeCode": 0, "Timezone": "America/Los_Angeles", "ZipCode": "98101" }}

Números de telefone fixo válidos

Se a solicitação contiver um número de telefone fixo válido, o serviço de validação de números de telefoneretornará informações semelhantes às do seguinte exemplo:

{ "CountryCodeIso2": "US", "CountryCodeNumeric": "1", "Country": "United States", "City": "Santa Clara", "ZipCode": "95037", "Timezone": "America/Los_Angeles", "CleansedPhoneNumberNational": "4085550101", "CleansedPhoneNumberE164": "14085550101", "Carrier": "AnyCompany", "PhoneTypeCode": 1, "PhoneType": "LANDLINE", "OriginalPhoneNumber": "+14085550101"}

Números de telefone VoIP válidos

Se a solicitação contiver um número de telefone VoIP (Voz sobre IP) válido, o serviço de validação denúmeros de telefone retornará informações semelhantes às do seguinte exemplo:

{ "NumberValidateResponse": { "Carrier": "ExampleCorp", "City": "Countrywide", "CleansedPhoneNumberE164": "+441514960001", "CleansedPhoneNumberNational": "1514960001", "Country": "United Kingdom", "CountryCodeIso2": "GB", "CountryCodeNumeric": "44", "OriginalPhoneNumber": "+441514960001", "PhoneType": "VOIP", "PhoneTypeCode": 2 }}

Números de telefone inválidos

Se a solicitação contiver um número de telefone inválido, o serviço de validação de números de telefoneretornará informações semelhantes às do seguinte exemplo:

{ "NumberValidateResponse": { "CleansedPhoneNumberE164": "+44163296076", "CleansedPhoneNumberNational": "163296076", "Country": "United Kingdom", "CountryCodeIso2": "GB",

194

Page 202: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorRespostas da validação de números de telefone

"CountryCodeNumeric": "44", "OriginalPhoneNumber": "+440163296076", "PhoneType": "INVALID", "PhoneTypeCode": 3 }}

Observe que a propriedade PhoneType nessa resposta indica que esse número de telefone é INVALID enão inclui informações sobre a operadora ou a localização associadas ao número de telefone. Evite enviarmensagens SMS ou por voz para números de telefone cuja propriedade PhoneType é INVALID, pois éimprovável que esses números pertençam a destinatários reais.

Outros números de telefone

Ocasionalmente, a resposta do serviço de validação de números de telefone inclui um valor PhoneTypede OTHER. O serviço pode retornar esse tipo de resposta nas seguintes situações:

• O número de telefone é gratuito (público).• O número de telefone está reservado para uso em programas de TV e filmes, como os números de

telefone da América do Norte que começam com 555.• O número de telefone inclui um código de área que não está em uso no momento, como o código de

área 999 na América do Norte.• O número de telefone está reservado para qualquer outra finalidade.

O exemplo a seguir mostra a resposta que o serviço de validação de números de telefone fornece quandoa solicitação inclui um número de telefone norte-americano fictício:

{ "NumberValidateResponse": { "Carrier": "Multiple OCN Listing", "CleansedPhoneNumberE164": "+14255550199", "CleansedPhoneNumberNational": "4255550199", "Country": "United States", "CountryCodeIso2": "US", "CountryCodeNumeric": "1", "OriginalPhoneNumber": "+14255550199", "PhoneType": "OTHER", "PhoneTypeCode": 4, "Timezone": "America/Los_Angeles" }}

Para obter mais informações sobre as informações contidas nessas respostas, consulte Validação denúmero de telefone no Referência de API do Amazon Pinpoint.

195

Page 203: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar e-mail

Envio de mensagens transacionaisdos seus aplicativos

Você pode usar a API do Amazon Pinpoint e os AWS SDKs para enviar mensagens transacionaisdiretamente de seus aplicativos. Mensagens transacionais são mensagens que você envia paradestinatários específicos, ao contrário das mensagens enviadas aos segmentos. Há várias razões pelasquais você pode querer enviar mensagens transacionais em vez de mensagens baseadas em campanhas.Por exemplo, você pode enviar uma confirmação de pedido por e-mail quando um cliente fizer um pedido.Você também pode enviar uma senha única por SMS ou voz que um cliente pode usar para concluir oprocesso de criação de uma conta para seu serviço.

Esta seção inclui exemplos de código em várias linguagens de programação que você pode usar parainiciar o envio de e-mails transacionais, mensagens SMS e mensagens de voz.

Tópicos nesta seção:• Enviar mensagens de e-mail transacionais (p. 196)• Enviar mensagens SMS (p. 211)• Enviar mensagens de voz (p. 218)• Enviar notificações por push (p. 222)

Enviar mensagens de e-mail transacionaisEsta seção fornece exemplos de código completos que você pode usar para enviar mensagens de e-mailtransacionais por meio do Amazon Pinpoint. Há dois métodos que você pode usar para enviar mensagensde e-mail transacionais:

• Usando a operação SendMessages na API do Amazon Pinpoint (p. 197): é possível usar a operaçãoSendMessages na API do Amazon Pinpoint para enviar mensagens em todos os canais compatíveiscom o Amazon Pinpoint, incluindo os canais de notificação por push, SMS, voz e e-mail.

A vantagem de usar essa operação é que a sintaxe de solicitação para o envio de mensagens émuito semelhante em todos os canais. Isso facilita a redefinição de seu código existente. A operaçãoSendMessages também permite substituir conteúdo em suas mensagens de e-mail e permite enviar e-mails para IDs de endpoint do Amazon Pinpoint em vez de endereços de e-mail específicos.

• Usando a interface SMTP do Amazon Pinpoint (p. 204): é possível usar a interface SMTP do AmazonPinpoint para enviar apenas mensagens de e-mail.

A vantagem de usar a interface SMTP é que você pode usar aplicativos e bibliotecas de envio de e-mail para enviar e-mails. Por exemplo, se você usar um sistema de emissão de bilhetes que envia e-mails para seus clientes, poderá usar a interface SMTP para configurar o sistema para enviar e-mailsusando seu domínio. Você também pode usar bibliotecas de envio de e-mail em várias linguagens deprogramação para enviar e-mails por meio da interface SMTP.

Esta seção inclui um código de exemplo em várias linguagens de programação que você pode usar parainiciar o envio de e-mails transacionais.

Tópicos nesta seção:• Escolhe de um método de envio de e-mail (p. 197)

196

Page 204: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEscolhe de um método de envio de e-mail

• Enviar e-mail usando a API do Amazon Pinpoint (p. 197)• Enviar e-mail usando a interface SMTP do Amazon Pinpoint (p. 204)

Escolhe de um método de envio de e-mailO melhor método a ser usado para enviar e-mails transacionais depende do seu caso de uso. Porexemplo, se você precisar enviar e-mails usando um aplicativo de terceiros ou se não houver um AWSSDK disponível para sua linguagem de programação, talvez seja necessário usar a interface SMTP. Casovocê queira enviar mensagens em outros canais compatíveis com o Amazon Pinpoint e queira usar umcódigo consistente para fazer essas solicitações, use a operação SendMessages na API do AmazonPinpoint.

Enviar e-mail usando a API do Amazon PinpointEsta seção contém exemplos de código completos que você pode usar para enviar e-mails por meio daAPI do Amazon Pinpoint usando um AWS SDK.

C#

Use esse exemplo para enviar e-mail usando o AWS SDK para .NET. Esse exemplo pressupõe quevocê já tenha instalado e configurado o AWS SDK para .NET. Para obter mais informações, consulteConceitos básicos do AWS SDK para .NET no AWS SDK para .NET Developer Guide.

Esse exemplo pressupõe que você esteja usando um arquivo de credenciais compartilhadas paraespecificar a chave de acesso e a chave de acesso secreta de um usuário existente do IAM. Paraobter mais informações, consulte Configuração das credenciais da AWS no AWS SDK para .NETDeveloper Guide.

Este exemplo de código foi testado usando o AWS SDK para .NET versão 3.3.29.13 e o .NET Coreruntime versão 2.1.2.

using System;using System.Collections.Generic;using Amazon;using Amazon.Pinpoint;using Amazon.Pinpoint.Model;

namespace PinpointEmailSendMessageAPI{ class MainClass { // The AWS Region that you want to use to send the email. For a list of // AWS Regions where the Amazon Pinpoint API is available, see // https://docs.aws.amazon.com/pinpoint/latest/apireference/ static string region = "us-west-2";

// The "From" address. This address has to be verified in Amazon Pinpoint // in the region you're using to send email. static string senderAddress = "[email protected]";

// The address on the "To" line. If your Amazon Pinpoint account is in // the sandbox, this address also has to be verified. static string toAddress = "[email protected]";

// The Amazon Pinpoint project/application ID to use when you send this message. // Make sure that the SMS channel is enabled for the project or application // that you choose.

197

Page 205: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorUso da API

static string appId = "ce796be37f32f178af652b26eexample";

// The subject line of the email. static string subject = "Amazon Pinpoint Email test";

// The body of the email for recipients whose email clients don't // support HTML content. static string textBody = @"Amazon Pinpoint Email Test (.NET)---------------------------------This email was sent using the Amazon Pinpoint API using the AWS SDK for .NET.";

// The body of the email for recipients whose email clients support // HTML content. static string htmlBody = @"<html><head></head><body> <h1>Amazon Pinpoint Email Test (AWS SDK for .NET)</h1> <p>This email was sent using the <a href='https://aws.amazon.com/pinpoint/'>Amazon Pinpoint</a> API using the <a href='https://aws.amazon.com/sdk-for-net/'> AWS SDK for .NET</a>.</p></body></html>";

// The character encoding the you want to use for the subject line and // message body of the email. static string charset = "UTF-8";

public static void Main(string[] args) { using (var client = new AmazonPinpointClient(RegionEndpoint.GetBySystemName(region))) { var sendRequest = new SendMessagesRequest { ApplicationId = appId, MessageRequest = new MessageRequest { Addresses = new Dictionary<string, AddressConfiguration> { { toAddress, new AddressConfiguration { ChannelType = "EMAIL" } } }, MessageConfiguration = new DirectMessageConfiguration { EmailMessage = new EmailMessage { FromAddress = senderAddress, SimpleEmail = new SimpleEmail { HtmlPart = new SimpleEmailPart { Charset = charset, Data = htmlBody }, TextPart = new SimpleEmailPart { Charset = charset, Data = textBody }, Subject = new SimpleEmailPart

198

Page 206: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorUso da API

{ Charset = charset, Data = subject } } } } } }; try { Console.WriteLine("Sending message..."); SendMessagesResponse response = client.SendMessages(sendRequest); Console.WriteLine("Message sent!"); } catch (Exception ex) { Console.WriteLine("The message wasn't sent. Error message: " + ex.Message); } } } }}

Java

Use esse exemplo para enviar e-mail usando o AWS SDK for Java. Esse exemplo pressupõe quevocê já tenha instalado e configurado o AWS SDK para Java 2.x. Para obter mais informações,consulte Conceitos básicos no Guia do desenvolvedor do AWS SDK para Java 2.x.

Esse exemplo pressupõe que você esteja usando um arquivo de credenciais compartilhadas paraespecificar a chave de acesso e a chave de acesso secreta de um usuário existente do IAM. Paraobter mais informações, consulte Configurar credenciais e a região para desenvolvimento do AWS emAWS SDK for Java Developer Guide.

Este exemplo de código foi testado usando o AWS SDK for Java versão 2.3.1 e OpenJDK versão11.0.1.

package com.amazonaws.samples;import java.io.IOException;import java.util.HashMap;import java.util.Map;

import com.amazonaws.services.pinpoint.AmazonPinpoint;import com.amazonaws.services.pinpoint.AmazonPinpointClientBuilder;import com.amazonaws.services.pinpoint.model.AddressConfiguration;import com.amazonaws.services.pinpoint.model.ChannelType;import com.amazonaws.services.pinpoint.model.DirectMessageConfiguration;import com.amazonaws.services.pinpoint.model.EmailMessage;import com.amazonaws.services.pinpoint.model.MessageRequest;import com.amazonaws.services.pinpoint.model.SendMessagesRequest;import com.amazonaws.services.pinpoint.model.SimpleEmail;import com.amazonaws.services.pinpoint.model.SimpleEmailPart;

public class SendMessages {

// The AWS Region that you want to use to send the message. For a list of // AWS Regions where the Amazon Pinpoint API is available, see // https://docs.aws.amazon.com/pinpoint/latest/apireference/ public static String region = "us-west-2";

199

Page 207: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorUso da API

// The "From" address. This address has to be verified in Amazon // Pinpoint in the region you're using to send email. public static String senderAddress = "[email protected]";

// The address on the "To" line. If your Amazon Pinpoint account is in // the sandbox, this address also has to be verified. public static String toAddress = "[email protected]";

// The Amazon Pinpoint project/application ID to use when you send this message. // Make sure that the SMS channel is enabled for the project or application // that you choose. public static String appId = "ce796be37f32f178af652b26eexample";

// The subject line of the email. public static String subject = "Amazon Pinpoint test";

// The email body for recipients with non-HTML email clients. static final String textBody = "Amazon Pinpoint Test (SDK for Java 2.x)\r\n" + "---------------------------------\r\n" + "This email was sent using the Amazon Pinpoint " + "API using the AWS SDK for Java 2.x."; // The body of the email for recipients whose email clients support // HTML content. static final String htmlBody = "<h1>Amazon Pinpoint test (AWS SDK for Java 2.x)</h1>" + "<p>This email was sent through the <a href='https://aws.amazon.com/pinpoint/'>" + "Amazon Pinpoint</a> Email API using the " + "<a href='https://aws.amazon.com/sdk-for-java/'>AWS SDK for Java 2.x</a>";

// The character encoding the you want to use for the subject line and // message body of the email. public static String charset = "UTF-8"; public static void main(String[] args) throws IOException { try { Map<String,AddressConfiguration> addressMap = new HashMap<String,AddressConfiguration>(); addressMap.put(toAddress, new AddressConfiguration() .withChannelType(ChannelType.EMAIL)); AmazonPinpoint client = AmazonPinpointClientBuilder.standard() .withRegion(region).build(); SendMessagesRequest request = (new SendMessagesRequest() .withApplicationId(appId) .withMessageRequest(new MessageRequest() .withAddresses(addressMap) .withMessageConfiguration(new DirectMessageConfiguration() .withEmailMessage(new EmailMessage() .withSimpleEmail(new SimpleEmail() .withHtmlPart(new SimpleEmailPart() .withCharset(charset) .withData(htmlBody) ) .withTextPart(new SimpleEmailPart() .withCharset(charset) .withData(textBody) ) .withSubject(new SimpleEmailPart() .withCharset(charset) .withData(subject)

200

Page 208: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorUso da API

) ) ) ) ) ); System.out.println("Sending message..."); client.sendMessages(request); System.out.println("Message sent!"); } catch (Exception ex) { System.out.println("The message wasn't sent. Error message: " + ex.getMessage()); } }}

JavaScript (Node.js)

Use esse exemplo para enviar e-mail usando o AWS SDK for JavaScript in Node.js. Esse exemplopressupõe que você já tenha instalado e configurado o SDK para JavaScript no Node.js. Para obtermais informações, consulte Conceitos básicos no Guia do desenvolvedor do AWS SDK for JavaScriptin Node.js.

Esse exemplo pressupõe que você esteja usando um arquivo de credenciais compartilhadas paraespecificar a chave de acesso e a chave de acesso secreta de um usuário existente do IAM. Paraobter mais informações, consulte Configurar credenciais no Guia do desenvolvedor do AWS SDK forJavaScript in Node.js.

Esse exemplo de código foi testado usando o SDK para JavaScript no Node.js versão 2.388.0 e oNode.js versão 11.7.0.

'use strict';

const AWS = require('aws-sdk');

// The AWS Region that you want to use to send the email. For a list of// AWS Regions where the Amazon Pinpoint API is available, see// https://docs.aws.amazon.com/pinpoint/latest/apireference/const aws_region = "us-west-2"

// The "From" address. This address has to be verified in Amazon Pinpoint// in the region that you use to send email.const senderAddress = "[email protected]";

// The address on the "To" line. If your Amazon Pinpoint account is in// the sandbox, this address also has to be verified.var toAddress = "[email protected]";

// The Amazon Pinpoint project/application ID to use when you send this message.// Make sure that the SMS channel is enabled for the project or application// that you choose.const appId = "ce796be37f32f178af652b26eexample";

// The subject line of the email.var subject = "Amazon Pinpoint (AWS SDK for JavaScript in Node.js)";

// The email body for recipients with non-HTML email clients.var body_text = `Amazon Pinpoint Test (SDK for JavaScript in Node.js)----------------------------------------------------This email was sent with Amazon Pinpoint using the AWS SDK for JavaScript in Node.js.For more information, see https:\/\/aws.amazon.com/sdk-for-node-js/`;

201

Page 209: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorUso da API

// The body of the email for recipients whose email clients support HTML content.var body_html = `<html><head></head><body> <h1>Amazon Pinpoint Test (SDK for JavaScript in Node.js)</h1> <p>This email was sent with <a href='https://aws.amazon.com/pinpoint/'>the Amazon Pinpoint API</a> using the <a href='https://aws.amazon.com/sdk-for-node-js/'> AWS SDK for JavaScript in Node.js</a>.</p></body></html>`;

// The character encoding the you want to use for the subject line and// message body of the email.var charset = "UTF-8";

// Specify that you're using a shared credentials file.var credentials = new AWS.SharedIniFileCredentials({profile: 'default'});AWS.config.credentials = credentials;

// Specify the region.AWS.config.update({region:aws_region});

//Create a new Pinpoint object.var pinpoint = new AWS.Pinpoint();

// Specify the parameters to pass to the API.var params = { ApplicationId: appId, MessageRequest: { Addresses: { [toAddress]:{ ChannelType: 'EMAIL' } }, MessageConfiguration: { EmailMessage: { FromAddress: senderAddress, SimpleEmail: { Subject: { Charset: charset, Data: subject }, HtmlPart: { Charset: charset, Data: body_html }, TextPart: { Charset: charset, Data: body_text } } } } }};

//Try to send the email.pinpoint.sendMessages(params, function(err, data) { // If something goes wrong, print an error message. if(err) { console.log(err.message); } else { console.log("Email sent! Message ID: ", data['MessageResponse']['Result'][toAddress]['MessageId']);

202

Page 210: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorUso da API

}});

Python

Use esse exemplo para enviar e-mail usando o AWS SDK para Python (boto3). Esse exemplopressupõe que você já tenha instalado e configurado o SDK para Python (boto3). Para obter maisinformações, consulte o Guia de início rápido no AWS SDK for Python (Boto 3) API Reference.

Esse exemplo pressupõe que você esteja usando um arquivo de credenciais compartilhadas paraespecificar a chave de acesso e a chave de acesso secreta de um usuário existente do IAM. Paraobter mais informações, consulte Credenciais no AWS SDK for Python (Boto 3) API Reference.

Este exemplo de código foi testado com a SDK para Python (boto3) versão 1.9.62 e o Python versão3.6.7.

import boto3from botocore.exceptions import ClientError

# The AWS Region that you want to use to send the email. For a list of# AWS Regions where the Amazon Pinpoint API is available, see# https://docs.aws.amazon.com/pinpoint/latest/apireference/AWS_REGION = "us-west-2"

# The "From" address. This address has to be verified in# Amazon Pinpoint in the region you're using to send email.SENDER = "Mary Major <[email protected]>"

# The addresses on the "To" line. If your Amazon Pinpoint account is in# the sandbox, these addresses also have to be verified.TOADDRESS = "[email protected]"

# The Amazon Pinpoint project/application ID to use when you send this message.# Make sure that the email channel is enabled for the project or application# that you choose.APPID = "ce796be37f32f178af652b26eexample"

# The subject line of the email.SUBJECT = "Amazon Pinpoint Test (SDK for Python (Boto 3))"

# The body of the email for recipients whose email clients don't support HTML# content.BODY_TEXT = """Amazon Pinpoint Test (SDK for Python)-------------------------------------This email was sent with Amazon Pinpoint using the AWS SDK for Python (Boto 3).For more information, see https:#aws.amazon.com/sdk-for-python/ """

# The body of the email for recipients whose email clients can display HTML# content.BODY_HTML = """<html><head></head><body> <h1>Amazon Pinpoint Test (SDK for Python)</h1> <p>This email was sent with <a href='https:#aws.amazon.com/pinpoint/'>Amazon Pinpoint</a> using the <a href='https:#aws.amazon.com/sdk-for-python/'> AWS SDK for Python (Boto 3)</a>.</p></body></html> """

203

Page 211: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorUso da interface SMTP

# The character encoding that you want to use for the subject line and message# body of the email.CHARSET = "UTF-8"

# Create a new client and specify a region.client = boto3.client('pinpoint',region_name=AWS_REGION)try: response = client.send_messages( ApplicationId=APPID, MessageRequest={ 'Addresses': { TOADDRESS: { 'ChannelType': 'EMAIL' } }, 'MessageConfiguration': { 'EmailMessage': { 'FromAddress': SENDER, 'SimpleEmail': { 'Subject': { 'Charset': CHARSET, 'Data': SUBJECT }, 'HtmlPart': { 'Charset': CHARSET, 'Data': BODY_HTML }, 'TextPart': { 'Charset': CHARSET, 'Data': BODY_TEXT } } } } } )except ClientError as e: print(e.response['Error']['Message'])else: print("Message sent! Message ID: " + response['MessageResponse']['Result'][TOADDRESS]['MessageId'])

Enviar e-mail usando a interface SMTP do AmazonPinpointEsta seção contém exemplos de código completos que você pode usar para enviar e-mails de seusaplicativos usando a interface SMTP do Amazon Pinpoint. Esses exemplos usam bibliotecas padrão deenvio de e-mail sempre que possível.

Esses exemplos pressupõem que você já criou um nome de usuário SMTP e senha do Amazon Pinpoint.Para obter mais informações, consulte Obtenção das credenciais SMTP no Guia do usuário do AmazonPinpoint.

C#

Use este exemplo para enviar e-mail usando classes no namespace System.Net.Mail do .NET

204

Page 212: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorUso da interface SMTP

using System;using System.Net;using System.Net.Mail;

namespace PinpointEmailSMTP{ class MainClass { // If you're using Amazon Pinpoint in a region other than US West (Oregon), // replace email-smtp.us-west-2.amazonaws.com with the Amazon Pinpoint SMTP // endpoint in the appropriate AWS Region. static string smtpEndpoint = "email-smtp.us-west-2.amazonaws.com";

// The port to use when connecting to the SMTP server. static int port = 587;

// Replace [email protected] with your "From" address. // This address must be verified with Amazon Pinpoint. static string senderName = "Mary Major"; static string senderAddress = "[email protected]";

// Replace [email protected] with a "To" address. If your account // is still in the sandbox, this address must be verified. static string toAddress = "[email protected]"; // CC and BCC addresses. If your account is in the sandbox, these // addresses have to be verified. static string ccAddress = "[email protected]"; static string bccAddress = "[email protected]";

// Replace smtp_username with your Amazon Pinpoint SMTP user name. static string smtpUsername = "AKIAIOSFODNN7EXAMPLE";

// Replace smtp_password with your Amazon Pinpoint SMTP user name. static string smtpPassword = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY";

// (Optional) the name of a configuration set to use for this message. static string configurationSet = "ConfigSet"; // The subject line of the email static string subject = "Amazon Pinpoint test (SMTP interface accessed using C#)";

// The body of the email for recipients whose email clients don't // support HTML content. static AlternateView textBody = AlternateView. CreateAlternateViewFromString("Amazon Pinpoint Email Test (.NET)\r\n" + "This email was sent using the Amazon Pinpoint SMTP " + "interface.", null, "text/plain");

// The body of the email for recipients whose email clients support // HTML content. static AlternateView htmlBody = AlternateView. CreateAlternateViewFromString("<html><head></head><body>" + "<h1>Amazon Pinpoint SMTP Interface Test</h1><p>This " + "email was sent using the " + "<a href='https://aws.amazon.com/pinpoint/'>Amazon Pinpoint" + "</a> SMTP interface.</p></body></html>", null, "text/html");

// The message tags that you want to apply to the email. static string tag0 = "key0=value0"; static string tag1 = "key1=value1";

public static void Main(string[] args) { // Create a new MailMessage object

205

Page 213: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorUso da interface SMTP

MailMessage message = new MailMessage(); // Add sender and recipient email addresses to the message message.From = new MailAddress(senderAddress,senderName); message.To.Add(new MailAddress(toAddress)); message.CC.Add(new MailAddress(ccAddress)); message.Bcc.Add(new MailAddress(bccAddress)); // Add the subject line, text body, and HTML body to the message message.Subject = subject; message.AlternateViews.Add(textBody); message.AlternateViews.Add(htmlBody); // Add optional headers for configuration set and message tags to the message message.Headers.Add("X-SES-CONFIGURATION-SET", configurationSet); message.Headers.Add("X-SES-MESSAGE-TAGS", tag0); message.Headers.Add("X-SES-MESSAGE-TAGS", tag1);

using (var client = new System.Net.Mail.SmtpClient(smtpEndpoint, port)) { // Create a Credentials object for connecting to the SMTP server client.Credentials = new NetworkCredential(smtpUsername, smtpPassword);

client.EnableSsl = true; // Send the message try { Console.WriteLine("Attempting to send email..."); client.Send(message); Console.WriteLine("Email sent!"); } // Show an error message if the message can't be sent catch (Exception ex) { Console.WriteLine("The email wasn't sent."); Console.WriteLine("Error message: " + ex.Message); } } } }}

Java

Use este exemplo para enviar e-mail usando a API JavaMail.

import java.util.Properties;

import javax.mail.Message;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;

public class SendEmail {

// If you're using Amazon Pinpoint in a region other than US West (Oregon), // replace email-smtp.us-west-2.amazonaws.com with the Amazon Pinpoint SMTP // endpoint in the appropriate AWS Region. static final String smtpEndpoint = "email-smtp.us-west-2.amazonaws.com";

206

Page 214: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorUso da interface SMTP

// The port to use when connecting to the SMTP server. static final int port = 587;

// Replace [email protected] with your "From" address. // This address must be verified with Amazon Pinpoint. static final String senderName= "Mary Major"; static final String senderAddress = "[email protected]";

// Replace [email protected] with a "To" address. If your account // is still in the sandbox, this address must be verified. To specify // multiple addresses, separate each address with a comma. static final String toAddresses = "[email protected]";

// CC and BCC addresses. If your account is in the sandbox, these // addresses have to be verified. To specify multiple addresses, separate // each address with a comma. static final String ccAddresses = "[email protected],[email protected]"; static final String bccAddresses = "[email protected]";

// Replace smtp_username with your Amazon Pinpoint SMTP user name. static final String smtpUsername = "AKIAIOSFODNN7EXAMPLE";

// Replace smtp_password with your Amazon Pinpoint SMTP password. static final String smtpPassword = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY";

// (Optional) the name of a configuration set to use for this message. static final String configurationSet = "ConfigSet";

// The subject line of the email static final String subject = "Amazon Pinpoint test (SMTP interface accessed using Java)";

// The body of the email for recipients whose email clients don't // support HTML content. static final String htmlBody = String.join( System.getProperty("line.separator"), "<h1>Amazon Pinpoint SMTP Email Test</h1>", "<p>This email was sent with Amazon Pinpoint using the ", "<a href='https://github.com/javaee/javamail'>Javamail Package</a>", " for <a href='https://www.java.com'>Java</a>." );

// The message tags that you want to apply to the email. static final String tag0 = "key0=value0"; static final String tag1 = "key1=value1";

public static void main(String[] args) throws Exception {

// Create a Properties object to contain connection configuration information. Properties props = System.getProperties(); props.put("mail.transport.protocol", "smtp"); props.put("mail.smtp.port", port); props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.auth", "true");

// Create a Session object to represent a mail session with the specified properties. Session session = Session.getDefaultInstance(props);

// Create a message with the specified information. MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress(senderAddress,senderName)); msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toAddresses));

207

Page 215: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorUso da interface SMTP

msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(ccAddresses)); msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(bccAddresses));

msg.setSubject(subject); msg.setContent(htmlBody,"text/html");

// Add headers for configuration set and message tags to the message. msg.setHeader("X-SES-CONFIGURATION-SET", configurationSet); msg.setHeader("X-SES-MESSAGE-TAGS", tag0); msg.setHeader("X-SES-MESSAGE-TAGS", tag1);

// Create a transport. Transport transport = session.getTransport();

// Send the message. try { System.out.println("Sending...");

// Connect to Amazon Pinpoint using the SMTP username and password you specified above. transport.connect(smtpEndpoint, smtpUsername, smtpPassword);

// Send the email. transport.sendMessage(msg, msg.getAllRecipients()); System.out.println("Email sent!"); } catch (Exception ex) { System.out.println("The email wasn't sent. Error message: " + ex.getMessage()); } finally { // Close the connection to the SMTP server. transport.close(); } }}

JavaScript (Node.js)

Use este exemplo para enviar e-mail usando o módulo Nodemailer para Node.js.

"use strict";const nodemailer = require("nodemailer");

// If you're using Amazon Pinpoint in a region other than US West (Oregon),// replace email-smtp.us-west-2.amazonaws.com with the Amazon Pinpoint SMTP// endpoint in the appropriate AWS Region.const smtpEndpoint = "email-smtp.us-west-2.amazonaws.com";

// The port to use when connecting to the SMTP server.const port = 587;

// Replace [email protected] with your "From" address.// This address must be verified with Amazon Pinpoint.const senderAddress = "Mary Major <[email protected]>";

// Replace [email protected] with a "To" address. If your account// is still in the sandbox, this address must be verified. To specify// multiple addresses, separate each address with a comma.var toAddresses = "[email protected]";

208

Page 216: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorUso da interface SMTP

// CC and BCC addresses. If your account is in the sandbox, these// addresses have to be verified. To specify multiple addresses, separate// each address with a comma.var ccAddresses = "[email protected],[email protected]";var bccAddresses = "[email protected]";

// Replace smtp_username with your Amazon Pinpoint SMTP user name.const smtpUsername = "AKIAIOSFODNN7EXAMPLE";

// Replace smtp_password with your Amazon Pinpoint SMTP password.const smtpPassword = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY";

// (Optional) the name of a configuration set to use for this message.var configurationSet = "ConfigSet";

// The subject line of the emailvar subject = "Amazon Pinpoint test (Nodemailer)";

// The email body for recipients with non-HTML email clients.var body_text = `Amazon Pinpoint Test (Nodemailer)---------------------------------This email was sent through the Amazon Pinpoint SMTP interface using Nodemailer.`;

// The body of the email for recipients whose email clients support HTML content.var body_html = `<html><head></head><body> <h1>Amazon Pinpoint Test (Nodemailer)</h1> <p>This email was sent with <a href='https://aws.amazon.com/pinpoint/'>Amazon Pinpoint</a> using <a href='https://nodemailer.com'>Nodemailer</a> for Node.js.</p></body></html>`;

// The message tags that you want to apply to the email.var tag0 = "key0=value0";var tag1 = "key1=value1";

async function main(){

// Create the SMTP transport. let transporter = nodemailer.createTransport({ host: smtpEndpoint, port: port, secure: false, // true for 465, false for other ports auth: { user: smtpUsername, pass: smtpPassword } });

// Specify the fields in the email. let mailOptions = { from: senderAddress, to: toAddresses, subject: subject, cc: ccAddresses, bcc: bccAddresses, text: body_text, html: body_html, // Custom headers for configuration set and message tags. headers: { 'X-SES-CONFIGURATION-SET': configurationSet, 'X-SES-MESSAGE-TAGS': tag0, 'X-SES-MESSAGE-TAGS': tag1

209

Page 217: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorUso da interface SMTP

} };

// Send the email. let info = await transporter.sendMail(mailOptions)

console.log("Message sent! Message ID: ", info.messageId);}

main().catch(console.error);

Python

Use este exemplo para enviar e-mail usando as bibliotecas de e-mail e smtplib do Python.

import smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMEText

# If you're using Amazon Pinpoint in a region other than US West (Oregon),# replace email-smtp.us-west-2.amazonaws.com with the Amazon Pinpoint SMTP# endpoint in the appropriate AWS Region.HOST = "email-smtp.us-west-2.amazonaws.com"

# The port to use when connecting to the SMTP server.PORT = 587

# Replace [email protected] with your "From" address.# This address must be verified.SENDER = 'Mary Major <[email protected]>'

# Replace [email protected] with a "To" address. If your account# is still in the sandbox, this address has to be verified.RECIPIENT = '[email protected]'

# CC and BCC addresses. If your account is in the sandbox, these# addresses have to be verified.CCRECIPIENT = "[email protected]"BCCRECIPIENT = "[email protected]"

# Replace smtp_username with your Amazon Pinpoint SMTP user name.USERNAME_SMTP = "AKIAIOSFODNN7EXAMPLE"

# Replace smtp_password with your Amazon Pinpoint SMTP password.PASSWORD_SMTP = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"

# (Optional) the name of a configuration set to use for this message.# If you comment out this line, you also need to remove or comment out# the "X-Pinpoint-CONFIGURATION-SET:" header below.CONFIGURATION_SET = "ConfigSet"

# The subject line of the email.SUBJECT = 'Amazon Pinpoint Test (Python smtplib)'

# The email body for recipients with non-HTML email clients.BODY_TEXT = ("Amazon Pinpoint Test\r\n" "This email was sent through the Amazon Pinpoint SMTP " "Interface using the Python smtplib package." )

# Create a MIME part for the text body.textPart = MIMEText(BODY_TEXT, 'plain')

210

Page 218: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar mensagens SMS

# The HTML body of the email.BODY_HTML = """<html><head></head><body> <h1>Amazon Pinpoint SMTP Email Test</h1> <p>This email was sent with Amazon Pinpoint using the <a href='https://www.python.org/'>Python</a> <a href='https://docs.python.org/3/library/smtplib.html'> smtplib</a> library.</p></body></html> """

# Create a MIME part for the HTML body.htmlPart = MIMEText(BODY_HTML, 'html')

# The message tags that you want to apply to the email.TAG0 = "key0=value0"TAG1 = "key1=value1"

# Create message container. The correct MIME type is multipart/alternative.msg = MIMEMultipart('alternative')

# Add sender and recipient addresses to the messagemsg['From'] = SENDERmsg['To'] = RECIPIENTmsg['Cc'] = CCRECIPIENTmsg['Bcc'] = BCCRECIPIENT

# Add the subject line, text body, and HTML body to the message.msg['Subject'] = SUBJECTmsg.attach(textPart)msg.attach(htmlPart)

# Add headers for configuration set and message tags to the message.msg.add_header('X-SES-CONFIGURATION-SET',CONFIGURATION_SET)msg.add_header('X-SES-MESSAGE-TAGS',TAG0)msg.add_header('X-SES-MESSAGE-TAGS',TAG1)

# Open a new connection to the SMTP server and begin the SMTP conversation.try: with smtplib.SMTP(HOST, PORT) as server: server.ehlo() server.starttls() #stmplib docs recommend calling ehlo() before and after starttls() server.ehlo() server.login(USERNAME_SMTP, PASSWORD_SMTP) #Uncomment the next line to send SMTP server responses to stdout #server.set_debuglevel(1) server.sendmail(SENDER, RECIPIENT, msg.as_string())except Exception as e: print ("Error: ", e)else: print ("Email sent!")

Enviar mensagens SMSVocê pode usar a API do Amazon Pinpoint para enviar mensagens SMS (mensagens de texto) paranúmeros de telefone específicos ou IDs de endpoint. Esta seção contém exemplos de código completosque você pode usar para enviar mensagens SMS por meio da API do Amazon Pinpoint usando um AWSSDK.

211

Page 219: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar mensagens SMS

C#

Use esse exemplo para enviar uma mensagem SMS usando o AWS SDK para .NET. Esse exemplopressupõe que você já tenha instalado e configurado o AWS SDK para .NET. Para obter maisinformações, consulte Conceitos básicos no AWS SDK para .NET Developer Guide.

Esse exemplo pressupõe que você esteja usando um arquivo de credenciais compartilhadas paraespecificar a chave de acesso e a chave de acesso secreta de um usuário existente do IAM. Paraobter mais informações, consulte Configuração das credenciais da AWS no AWS SDK para .NETDeveloper Guide.

using System;using System.Collections.Generic;using Amazon;using Amazon.Pinpoint;using Amazon.Pinpoint.Model;

namespace SendMessage{ class MainClass { // The AWS Region that you want to use to send the message. For a list of // AWS Regions where the Amazon Pinpoint API is available, see // https://docs.aws.amazon.com/pinpoint/latest/apireference/ private static readonly string region = "us-east-1";

// The phone number or short code to send the message from. The phone number // or short code that you specify has to be associated with your Amazon Pinpoint // account. For best results, specify long codes in E.164 format. private static readonly string originationNumber = "+12065550199";

// The recipient's phone number. For best results, you should specify the // phone number in E.164 format. private static readonly string destinationNumber = "+14255550142";

// The content of the SMS message. private static readonly string message = "This message was sent through Amazon Pinpoint" + "using the AWS SDK for .NET. Reply STOP to opt out.";

// The Pinpoint project/application ID to use when you send this message. // Make sure that the SMS channel is enabled for the project or application // that you choose. private static readonly string appId = "ce796be37f32f178af652b26eexample";

// The type of SMS message that you want to send. If you plan to send // time-sensitive content, specify TRANSACTIONAL. If you plan to send // marketing-related content, specify PROMOTIONAL. private static readonly string messageType = "TRANSACTIONAL";

// The registered keyword associated with the originating short code. private static readonly string registeredKeyword = "myKeyword";

// The sender ID to use when sending the message. Support for sender ID // varies by country or region. For more information, see // https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html private static readonly string senderId = "mySenderId";

public static void Main(string[] args) {

212

Page 220: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar mensagens SMS

using (AmazonPinpointClient client = new AmazonPinpointClient(RegionEndpoint.GetBySystemName(region))) { SendMessagesRequest sendRequest = new SendMessagesRequest { ApplicationId = appId, MessageRequest = new MessageRequest { Addresses = new Dictionary<string, AddressConfiguration> { { destinationNumber, new AddressConfiguration { ChannelType = "SMS" } } }, MessageConfiguration = new DirectMessageConfiguration { SMSMessage = new SMSMessage { Body = message, MessageType = messageType, OriginationNumber = originationNumber, SenderId = senderId, Keyword = registeredKeyword } } } }; try { Console.WriteLine("Sending message..."); SendMessagesResponse response = client.SendMessages(sendRequest); Console.WriteLine("Message sent!"); } catch (Exception ex) { Console.WriteLine("The message wasn't sent. Error message: " + ex.Message); } } } }}

Java

Use esse exemplo para enviar uma mensagem SMS usando o AWS SDK for Java. Esse exemplopressupõe que você já tenha instalado e configurado o SDK para Java. Para obter mais informações,consulte Conceitos básicos no AWS SDK for Java Developer Guide.

Esse exemplo pressupõe que você esteja usando um arquivo de credenciais compartilhadas paraespecificar a chave de acesso e a chave de acesso secreta de um usuário existente do IAM. Paraobter mais informações, consulte Configurar credenciais e a região para desenvolvimento do AWS emAWS SDK for Java Developer Guide.

package com.amazonaws.samples;import java.io.IOException;import java.util.HashMap;import java.util.Map;

213

Page 221: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar mensagens SMS

import com.amazonaws.services.pinpoint.AmazonPinpoint;import com.amazonaws.services.pinpoint.AmazonPinpointClientBuilder;import com.amazonaws.services.pinpoint.model.AddressConfiguration;import com.amazonaws.services.pinpoint.model.ChannelType;import com.amazonaws.services.pinpoint.model.DirectMessageConfiguration;import com.amazonaws.services.pinpoint.model.MessageRequest;import com.amazonaws.services.pinpoint.model.SMSMessage;import com.amazonaws.services.pinpoint.model.SendMessagesRequest;

public class SendMessage {

// The AWS Region that you want to use to send the message. For a list of // AWS Regions where the Amazon Pinpoint API is available, see // https://docs.aws.amazon.com/pinpoint/latest/apireference/ public static String region = "us-east-1"; // The phone number or short code to send the message from. The phone number // or short code that you specify has to be associated with your Amazon Pinpoint // account. For best results, specify long codes in E.164 format. public static String originationNumber = "+12065550199"; // The recipient's phone number. For best results, you should specify the // phone number in E.164 format. public static String destinationNumber = "+14255550142"; // The content of the SMS message. public static String message = "This message was sent through Amazon Pinpoint " + "using the AWS SDK for Java. Reply STOP to " + "opt out."; // The Pinpoint project/application ID to use when you send this message. // Make sure that the SMS channel is enabled for the project or application // that you choose. public static String appId = "ce796be37f32f178af652b26eexample";

// The type of SMS message that you want to send. If you plan to send // time-sensitive content, specify TRANSACTIONAL. If you plan to send // marketing-related content, specify PROMOTIONAL. public static String messageType = "TRANSACTIONAL"; // The registered keyword associated with the originating short code. public static String registeredKeyword = "myKeyword"; // The sender ID to use when sending the message. Support for sender ID // varies by country or region. For more information, see // https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html public static String senderId = "MySenderID"; public static void main(String[] args) throws IOException { try { Map<String,AddressConfiguration> addressMap = new HashMap<String,AddressConfiguration>(); addressMap.put(destinationNumber, new AddressConfiguration() .withChannelType(ChannelType.SMS)); AmazonPinpoint client = AmazonPinpointClientBuilder.standard() .withRegion(region).build(); SendMessagesRequest request = new SendMessagesRequest() .withApplicationId(appId) .withMessageRequest(new MessageRequest() .withAddresses(addressMap)

214

Page 222: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar mensagens SMS

.withMessageConfiguration(new DirectMessageConfiguration() .withSMSMessage(new SMSMessage() .withBody(message) .withMessageType(messageType) .withOriginationNumber(originationNumber) .withSenderId(senderId) .withKeyword(registeredKeyword) ) ) ); System.out.println("Sending message..."); client.sendMessages(request); System.out.println("Message sent!"); } catch (Exception ex) { System.out.println("The message wasn't sent. Error message: " + ex.getMessage()); } }}

JavaScript (Node.js)

Use esse exemplo para enviar uma mensagem SMS usando o AWS SDK for JavaScript in Node.js.Esse exemplo pressupõe que você já tenha instalado e configurado o SDK para JavaScript noNode.js. Para obter mais informações, consulte Conceitos básicos no Guia do desenvolvedor do AWSSDK for JavaScript in Node.js.

Esse exemplo pressupõe que você esteja usando um arquivo de credenciais compartilhadas paraespecificar a chave de acesso e a chave de acesso secreta de um usuário existente do IAM. Paraobter mais informações, consulte Configurar credenciais no Guia do desenvolvedor do AWS SDK forJavaScript in Node.js.

'use strict';

var AWS = require('aws-sdk');

// The AWS Region that you want to use to send the message. For a list of// AWS Regions where the Amazon Pinpoint API is available, see// https://docs.aws.amazon.com/pinpoint/latest/apireference/.var aws_region = "us-east-1";

// The phone number or short code to send the message from. The phone number// or short code that you specify has to be associated with your Amazon Pinpoint// account. For best results, specify long codes in E.164 format.var originationNumber = "+12065550199";

// The recipient's phone number. For best results, you should specify the// phone number in E.164 format.var destinationNumber = "+14255550142";

// The content of the SMS message.var message = "This message was sent through Amazon Pinpoint " + "using the AWS SDK for JavaScript in Node.js. Reply STOP to " + "opt out.";

// The Amazon Pinpoint project/application ID to use when you send this message.// Make sure that the SMS channel is enabled for the project or application// that you choose.var applicationId = "ce796be37f32f178af652b26eexample";

// The type of SMS message that you want to send. If you plan to send// time-sensitive content, specify TRANSACTIONAL. If you plan to send

215

Page 223: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar mensagens SMS

// marketing-related content, specify PROMOTIONAL.var messageType = "TRANSACTIONAL";

// The registered keyword associated with the originating short code.var registeredKeyword = "myKeyword";

// The sender ID to use when sending the message. Support for sender ID// varies by country or region. For more information, see// https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.htmlvar senderId = "MySenderID";

// Specify that you're using a shared credentials file, and optionally specify// the profile that you want to use.var credentials = new AWS.SharedIniFileCredentials({profile: 'default'});AWS.config.credentials = credentials;

// Specify the region.AWS.config.update({region:aws_region});

//Create a new Pinpoint object.var pinpoint = new AWS.Pinpoint();

// Specify the parameters to pass to the API.var params = { ApplicationId: applicationId, MessageRequest: { Addresses: { [destinationNumber]: { ChannelType: 'SMS' } }, MessageConfiguration: { SMSMessage: { Body: message, Keyword: registeredKeyword, MessageType: messageType, OriginationNumber: originationNumber, SenderId: senderId, } } }};

//Try to send the message.pinpoint.sendMessages(params, function(err, data) { // If something goes wrong, print an error message. if(err) { console.log(err.message); // Otherwise, show the unique ID for the message. } else { console.log("Message sent! " + data['MessageResponse']['Result'][destinationNumber]['StatusMessage']); }});

Python

Use esse exemplo para enviar uma mensagem SMS usando o AWS SDK para Python (boto3). Esseexemplo pressupõe que você já tenha instalado e configurado o SDK for Python. Para obter maisinformações, consulte Guia de início rápido no Conceitos básicos do AWS SDK para Python (Boto 3).

Esse exemplo pressupõe que você esteja usando um arquivo de credenciais compartilhadas paraespecificar a chave de acesso e a chave de acesso secreta de um usuário existente do IAM. Paraobter mais informações, consulte Credenciais no AWS SDK for Python (Boto 3) API Reference.

216

Page 224: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar mensagens SMS

import boto3from botocore.exceptions import ClientError

# The AWS Region that you want to use to send the message. For a list of# AWS Regions where the Amazon Pinpoint API is available, see# https://docs.aws.amazon.com/pinpoint/latest/apireference/region = "us-east-1"

# The phone number or short code to send the message from. The phone number# or short code that you specify has to be associated with your Amazon Pinpoint# account. For best results, specify long codes in E.164 format.originationNumber = "+12065550199"

# The recipient's phone number. For best results, you should specify the# phone number in E.164 format.destinationNumber = "+14255550142"

# The content of the SMS message.message = ("This is a sample message sent from Amazon Pinpoint by using the " "AWS SDK for Python (Boto 3).")

# The Amazon Pinpoint project/application ID to use when you send this message.# Make sure that the SMS channel is enabled for the project or application# that you choose.applicationId = "ce796be37f32f178af652b26eexample"

# The type of SMS message that you want to send. If you plan to send# time-sensitive content, specify TRANSACTIONAL. If you plan to send# marketing-related content, specify PROMOTIONAL.messageType = "TRANSACTIONAL"

# The registered keyword associated with the originating short code.registeredKeyword = "myKeyword"

# The sender ID to use when sending the message. Support for sender ID# varies by country or region. For more information, see# https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.htmlsenderId = "MySenderID"

# Create a new client and specify a region.client = boto3.client('pinpoint',region_name=region)try: response = client.send_messages( ApplicationId=applicationId, MessageRequest={ 'Addresses': { destinationNumber: { 'ChannelType': 'SMS' } }, 'MessageConfiguration': { 'SMSMessage': { 'Body': message, 'Keyword': registeredKeyword, 'MessageType': messageType, 'OriginationNumber': originationNumber, 'SenderId': senderId } } } )

except ClientError as e: print(e.response['Error']['Message'])

217

Page 225: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar mensagens de voz

else: print("Message sent! Message ID: " + response['MessageResponse']['Result'][destinationNumber]['MessageId'])

Enviar mensagens de vozVocê pode usar a API do Amazon Pinpoint para enviar mensagens de voz para números de telefoneespecíficos. Esta seção contém exemplos de código completos que você pode usar para enviarmensagens de voz por meio da API de SMS e voz do Amazon Pinpoint usando um AWS SDK.

Java

Use esse exemplo para enviar uma mensagem de voz usando o AWS SDK for Java. Esse exemplopressupõe que você já tenha instalado e configurado o SDK para Java. Para obter mais informações,consulte Conceitos básicos no AWS SDK for Java Developer Guide.

Esse exemplo pressupõe que você esteja usando um arquivo de credenciais compartilhadas paraespecificar a chave de acesso e a chave de acesso secreta de um usuário existente do IAM. Paraobter mais informações, consulte Configurar credenciais e a região para desenvolvimento do AWS emAWS SDK for Java Developer Guide.

package com.amazonaws.samples;

import java.io.IOException;

import com.amazonaws.services.pinpointsmsvoice.AmazonPinpointSMSVoice;import com.amazonaws.services.pinpointsmsvoice.AmazonPinpointSMSVoiceClientBuilder;import com.amazonaws.services.pinpointsmsvoice.model.SSMLMessageType;import com.amazonaws.services.pinpointsmsvoice.model.SendVoiceMessageRequest;import com.amazonaws.services.pinpointsmsvoice.model.VoiceMessageContent;

public class SendMessage { // The AWS Region that you want to use to send the voice message. For a list of // AWS Regions where the Amazon Pinpoint SMS and Voice API is available, see // https://docs.aws.amazon.com/pinpoint-sms-voice/latest/APIReference/ static final String region = "us-east-1"; // The phone number that the message is sent from. The phone number that you // specify has to be associated with your Amazon Pinpoint account. For best // results, you should specify the phone number in E.164 format. static final String originationNumber = "+12065550110"; // The recipient's phone number. For best results, you should specify the // phone number in E.164 format. static final String destinationNumber = "+12065550142"; // The Amazon Polly voice that you want to use to send the message. For a list // of voices, see https://docs.aws.amazon.com/polly/latest/dg/voicelist.html static final String voiceName = "Matthew"; // The language to use when sending the message. For a list of supported // languages, see https://docs.aws.amazon.com/polly/latest/dg/SupportedLanguage.html static final String languageCode = "en-US"; // The content of the message. This example uses SSML to customize and control // certain aspects of the message, such as by adding pauses and changing // phonation. The message can't contain any line breaks.

218

Page 226: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar mensagens de voz

static final String ssmlMessage = "<speak>This is a test message sent from " + "<emphasis>Amazon Pinpoint</emphasis> " + "using the <break strength='weak'/>AWS " + "SDK for Java. " + "<amazon:effect phonation='soft'>Thank " + "you for listening.</amazon:effect></speak>"; // The phone number that you want to appear on the recipient's device. The // phone number that you specify has to be associated with your Amazon Pinpoint // account. static final String callerId = "+12065550199"; // The configuration set that you want to use to send the message. static final String configurationSet = "ConfigSet"; public static void main(String[] args) throws IOException { try { AmazonPinpointSMSVoice client = AmazonPinpointSMSVoiceClientBuilder.standard() .withRegion(region).build(); SendVoiceMessageRequest request = new SendVoiceMessageRequest() .withCallerId(callerId) .withDestinationPhoneNumber(destinationNumber) .withOriginationPhoneNumber(originationNumber) .withConfigurationSetName(configurationSet) .withContent(new VoiceMessageContent() .withSSMLMessage(new SSMLMessageType() .withLanguageCode(languageCode) .withVoiceId(voiceName) .withText(ssmlMessage) ) ); client.sendVoiceMessage(request); System.out.println("The message was sent successfully."); } catch (Exception ex) { System.out.println("The message wasn't sent. Error message: " + ex.getMessage()); } }}

JavaScript (Node.js)

Use esse exemplo para enviar uma mensagem de voz usando o AWS SDK for JavaScript in Node.js.Esse exemplo pressupõe que você já tenha instalado e configurado o SDK para JavaScript noNode.js.

Esse exemplo pressupõe que você esteja usando um arquivo de credenciais compartilhadas paraespecificar a chave de acesso e a chave de acesso secreta de um usuário existente do IAM. Paraobter mais informações, consulte Configurar credenciais no Guia do desenvolvedor do AWS SDK forJavaScript in Node.js.

'use strict'

var AWS = require('aws-sdk');

// The AWS Region that you want to use to send the voice message. For a list of// AWS Regions where the Amazon Pinpoint SMS and Voice API is available, see// https://docs.aws.amazon.com/pinpoint-sms-voice/latest/APIReference/var aws_region = "us-east-1";

// The phone number that the message is sent from. The phone number that you

219

Page 227: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar mensagens de voz

// specify has to be associated with your Amazon Pinpoint account. For best results, you// should specify the phone number in E.164 format.var originationNumber = "+12065550110";

// The recipient's phone number. For best results, you should specify the phone// number in E.164 format.var destinationNumber = "+12065550142";

// The language to use when sending the message. For a list of supported// languages, see https://docs.aws.amazon.com/polly/latest/dg/SupportedLanguage.htmlvar languageCode = "en-US";

// The Amazon Polly voice that you want to use to send the message. For a list// of voices, see https://docs.aws.amazon.com/polly/latest/dg/voicelist.htmlvar voiceId = "Matthew";

// The content of the message. This example uses SSML to customize and control// certain aspects of the message, such as the volume or the speech rate.// The message can't contain any line breaks.var ssmlMessage = "<speak>" + "This is a test message sent from <emphasis>Amazon Pinpoint</emphasis> " + "using the <break strength='weak'/>AWS SDK for JavaScript in Node.js. " + "<amazon:effect phonation='soft'>Thank you for listening." + "</amazon:effect>" + "</speak>";

// The phone number that you want to appear on the recipient's device. The phone// number that you specify has to be associated with your Amazon Pinpoint account.var callerId = "+12065550199";

// The configuration set that you want to use to send the message.var configurationSet = "ConfigSet";

// Specify that you're using a shared credentials file, and optionally specify// the profile that you want to use.var credentials = new AWS.SharedIniFileCredentials({profile: 'default'});AWS.config.credentials = credentials;

// Specify the region.AWS.config.update({region:aws_region});

//Create a new Pinpoint object.var pinpointsmsvoice = new AWS.PinpointSMSVoice();

var params = { CallerId: callerId, ConfigurationSetName: configurationSet, Content: { SSMLMessage: { LanguageCode: languageCode, Text: ssmlMessage, VoiceId: voiceId } }, DestinationPhoneNumber: destinationNumber, OriginationPhoneNumber: originationNumber};

//Try to send the message.pinpointsmsvoice.sendVoiceMessage(params, function(err, data) { // If something goes wrong, print an error message. if(err) { console.log(err.message); // Otherwise, show the unique ID for the message. } else {

220

Page 228: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar mensagens de voz

console.log("Message sent! Message ID: " + data['MessageId']); }});

Python

Use esse exemplo para enviar uma mensagem de voz usando o AWS SDK para Python (boto3). Esseexemplo pressupõe que você já tenha instalado e configurado o SDK para Python (boto3).

Esse exemplo pressupõe que você esteja usando um arquivo de credenciais compartilhadas paraespecificar a chave de acesso e a chave de acesso secreta de um usuário existente do IAM. Paraobter mais informações, consulte Credenciais no AWS SDK for Python (Boto 3) API Reference.

import boto3from botocore.exceptions import ClientError

# The AWS Region that you want to use to send the voice message. For a list of# AWS Regions where the Amazon Pinpoint SMS and Voice API is available, see# https://docs.aws.amazon.com/pinpoint-sms-voice/latest/APIReference/region = "us-east-1"

# The phone number that the message is sent from. The phone number that you# specify has to be associated with your Amazon Pinpoint account. For best results, you# should specify the phone number in E.164 format.originationNumber = "+12065550110"

# The recipient's phone number. For best results, you should specify the phone# number in E.164 format.destinationNumber = "+12065550142"

# The language to use when sending the message. For a list of supported# languages, see https://docs.aws.amazon.com/polly/latest/dg/SupportedLanguage.htmllanguageCode = "en-US"

# The Amazon Polly voice that you want to use to send the message. For a list# of voices, see https://docs.aws.amazon.com/polly/latest/dg/voicelist.htmlvoiceId = "Matthew"

# The content of the message. This example uses SSML to customize and control# certain aspects of the message, such as the volume or the speech rate.# The message can't contain any line breaks.ssmlMessage = ("<speak>" "This is a test message sent from <emphasis>Amazon Pinpoint</emphasis> " "using the <break strength='weak'/>AWS SDK for Python. " "<amazon:effect phonation='soft'>Thank you for listening." "</amazon:effect>" "</speak>")

# The phone number that you want to appear on the recipient's device. The phone# number that you specify has to be associated with your Amazon Pinpoint account.callerId = "+12065550199"

# The configuration set that you want to use to send the message.configurationSet = "ConfigSet"

# Create a new SMS and Voice client and specify an AWS Region.client = boto3.client('sms-voice',region_name=region)

try: response = client.send_voice_message( DestinationPhoneNumber = destinationNumber, OriginationPhoneNumber = originationNumber,

221

Page 229: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar notificações por push

CallerId = callerId, ConfigurationSetName = configurationSet, Content={ 'SSMLMessage':{ 'LanguageCode': languageCode, 'VoiceId': voiceId, 'Text': ssmlMessage } } )# Display an error message if something goes wrong.except ClientError as e: print(e.response['Error']['Message'])# If the message is sent successfully, show the message ID.else: print("Message sent!"), print("Message ID: " + response['MessageId'])

Enviar notificações por pushA API do Amazon Pinpoint pode enviar notificações por push transacionais para identificadores dedispositivo específicos. Esta seção contém exemplos de código completos que podem ser usados paraenviar mensagens SMS por meio da API do Amazon Pinpoint usando um SDK da AWS.

É possível usar esses exemplos para enviar notificações por push por meio de qualquer serviço denotificações por push compatível com o Amazon Pinpoint. No momento, o Amazon Pinpoint é compatívelcom os seguintes canais: Firebase Cloud Messaging (FCM), Apple Push Notification Service (APNs), BaiduCloud Push e Amazon Device Messaging (ADM).

Note

Ao enviar notificações por push por meio do serviço Firebase Cloud Messaging (FCM), use onome do serviço GCM em sua chamada para a API do Amazon Pinpoint. O serviço Google CloudMessaging (GCM) foi descontinuado pelo Google em 10 de abril de 2018. No entanto, a API doAmazon Pinpoint usa o nome do serviço GCM para mensagens que envia por meio do serviçoFCM para manter a compatibilidade com o código da API que foi escrito antes da descontinuaçãodo serviço GCM.

JavaScript (Node.js)

Use este exemplo para enviar notificações por push usando o AWS SDK for JavaScript in Node.js.Esse exemplo pressupõe que você já tenha instalado e configurado o SDK para JavaScript noNode.js.

Esse exemplo também pressupõe que você esteja usando um arquivo de credenciais compartilhadaspara especificar a chave de acesso e a chave de acesso secreta de um usuário existente do IAM.Para obter mais informações, consulte Configurar credenciais no Guia do desenvolvedor do AWS SDKfor JavaScript in Node.js.

'use strict';

const AWS = require('aws-sdk');

// The AWS Region that you want to use to send the message. For a list of// AWS Regions where the Amazon Pinpoint API is available, see// https://docs.aws.amazon.com/pinpoint/latest/apireference/const region = 'us-east-1';

222

Page 230: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar notificações por push

// The title that appears at the top of the push notification.var title = 'Test message sent from Amazon Pinpoint.';

// The content of the push notification.var message = 'This is a sample message sent from Amazon Pinpoint by using the ' + 'AWS SDK for JavaScript in Node.js';

// The Amazon Pinpoint project ID that you want to use when you send this // message. Make sure that the push channel is enabled for the project that // you choose.var applicationId = 'ce796be37f32f178af652b26eexample';

// An object that contains the unique token of the device that you want to send // the message to, and the push service that you want to use to send the message.var recipient = { 'token': 'a0b1c2d3e4f5g6h7i8j9k0l1m2n3o4p5q6r7s8t9u0v1w2x3y4z5a6b7c8d8e9f0', 'service': 'GCM' };

// The action that should occur when the recipient taps the message. Possible// values are OPEN_APP (opens the app or brings it to the foreground),// DEEP_LINK (opens the app to a specific page or interface), or URL (opens a// specific URL in the device's web browser.)var action = 'URL';

// This value is only required if you use the URL action. This variable contains// the URL that opens in the recipient's web browser.var url = 'https://www.example.com';

// The priority of the push notification. If the value is 'normal', then the// delivery of the message is optimized for battery usage on the recipient's// device, and could be delayed. If the value is 'high', then the notification is// sent immediately, and might wake a sleeping device.var priority = 'normal';

// The amount of time, in seconds, that the push notification service provider// (such as FCM or APNS) should attempt to deliver the message before dropping// it. Not all providers allow you specify a TTL value.var ttl = 30;

// Boolean that specifies whether the notification is sent as a silent// notification (a notification that doesn't display on the recipient's device).var silent = false;

function CreateMessageRequest() { var token = recipient['token']; var service = recipient['service']; if (service == 'GCM') { var messageRequest = { 'Addresses': { [token]: { 'ChannelType' : 'GCM' } }, 'MessageConfiguration': { 'GCMMessage': { 'Action': action, 'Body': message, 'Priority': priority, 'SilentPush': silent, 'Title': title, 'TimeToLive': ttl, 'Url': url } } };

223

Page 231: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar notificações por push

} else if (service == 'APNS') { var messageRequest = { 'Addresses': { [token]: { 'ChannelType' : 'APNS' } }, 'MessageConfiguration': { 'APNSMessage': { 'Action': action, 'Body': message, 'Priority': priority, 'SilentPush': silent, 'Title': title, 'TimeToLive': ttl, 'Url': url } } }; } else if (service == 'BAIDU') { var messageRequest = { 'Addresses': { [token]: { 'ChannelType' : 'BAIDU' } }, 'MessageConfiguration': { 'BaiduMessage': { 'Action': action, 'Body': message, 'SilentPush': silent, 'Title': title, 'TimeToLive': ttl, 'Url': url } } }; } else if (service == 'ADM') { var messageRequest = { 'Addresses': { [token]: { 'ChannelType' : 'ADM' } }, 'MessageConfiguration': { 'ADMMessage': { 'Action': action, 'Body': message, 'SilentPush': silent, 'Title': title, 'Url': url } } }; }

return messageRequest}

function ShowOutput(data){ if (data["MessageResponse"]["Result"][recipient["token"]]["DeliveryStatus"] == "SUCCESSFUL") { var status = "Message sent! Response information: "; } else { var status = "The message wasn't sent. Response information: "; }

224

Page 232: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar notificações por push

console.log(status); console.dir(data, { depth: null });}

function SendMessage() { var token = recipient['token']; var service = recipient['service']; var messageRequest = CreateMessageRequest();

// Specify that you're using a shared credentials file, and specify the // IAM profile to use. var credentials = new AWS.SharedIniFileCredentials({ profile: 'default' }); AWS.config.credentials = credentials;

// Specify the AWS Region to use. AWS.config.update({ region: region });

//Create a new Pinpoint object. var pinpoint = new AWS.Pinpoint(); var params = { "ApplicationId": applicationId, "MessageRequest": messageRequest };

// Try to send the message. pinpoint.sendMessages(params, function(err, data) { if (err) console.log(err); else ShowOutput(data); });}

SendMessage()

Python

Use este exemplo para enviar notificações por push usando o AWS SDK para Python (boto3). Esseexemplo pressupõe que você já tenha instalado e configurado o SDK para Python (boto3).

Esse exemplo também pressupõe que você esteja usando um arquivo de credenciais compartilhadaspara especificar a chave de acesso e a chave de acesso secreta de um usuário existente do IAM.Para obter mais informações, consulte Credenciais no AWS SDK for Python (Boto 3) API Reference.

import jsonimport boto3from botocore.exceptions import ClientError

# The AWS Region that you want to use to send the message. For a list of# AWS Regions where the Amazon Pinpoint API is available, see# https://docs.aws.amazon.com/pinpoint/latest/apireference/region = "us-east-1"

# The title that appears at the top of the push notification.title = "Test message sent from Amazon Pinpoint."

# The content of the push notification.message = ("This is a sample message sent from Amazon Pinpoint by using the " "AWS SDK for Python (Boto 3).")

# The Amazon Pinpoint project/application ID to use when you send this message.# Make sure that the push channel is enabled for the project or application# that you choose.application_id = "ce796be37f32f178af652b26eexample"

# A dictionary that contains the unique token of the device that you want to send the

225

Page 233: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar notificações por push

# message to, and the push service that you want to use to send the message.recipient = { "token": "a0b1c2d3e4f5g6h7i8j9k0l1m2n3o4p5q6r7s8t9u0v1w2x3y4z5a6b7c8d8e9f0", "service": "GCM" }

# The action that should occur when the recipient taps the message. Possible# values are OPEN_APP (opens the app or brings it to the foreground),# DEEP_LINK (opens the app to a specific page or interface), or URL (opens a# specific URL in the device's web browser.)action = "URL"

# This value is only required if you use the URL action. This variable contains# the URL that opens in the recipient's web browser.url = "https://www.example.com"

# The priority of the push notification. If the value is 'normal', then the# delivery of the message is optimized for battery usage on the recipient's# device, and could be delayed. If the value is 'high', then the notification is# sent immediately, and might wake a sleeping device.priority = "normal"

# The amount of time, in seconds, that the push notification service provider# (such as FCM or APNS) should attempt to deliver the message before dropping# it. Not all providers allow you specify a TTL value.ttl = 30

# Boolean that specifies whether the notification is sent as a silent# notification (a notification that doesn't display on the recipient's device).silent = False

# Set the MessageType based on the values in the recipient variable.def create_message_request():

token = recipient["token"] service = recipient["service"]

if service == "GCM": message_request = { 'Addresses': { token: { 'ChannelType': 'GCM' } }, 'MessageConfiguration': { 'GCMMessage': { 'Action': action, 'Body': message, 'Priority' : priority, 'SilentPush': silent, 'Title': title, 'TimeToLive': ttl, 'Url': url } } } elif service == "APNS": message_request = { 'Addresses': { token: { 'ChannelType': 'APNS' } }, 'MessageConfiguration': { 'APNSMessage': { 'Action': action,

226

Page 234: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar notificações por push

'Body': message, 'Priority' : priority, 'SilentPush': silent, 'Title': title, 'TimeToLive': ttl, 'Url': url } } } elif service == "BAIDU": message_request = { 'Addresses': { token: { 'ChannelType': 'BAIDU' } }, 'MessageConfiguration': { 'BaiduMessage': { 'Action': action, 'Body': message, 'SilentPush': silent, 'Title': title, 'TimeToLive': ttl, 'Url': url } } } elif service == "ADM": message_request = { 'Addresses': { token: { 'ChannelType': 'ADM' } }, 'MessageConfiguration': { 'ADMMessage': { 'Action': action, 'Body': message, 'SilentPush': silent, 'Title': title, 'Url': url } } } else: message_request = None

return message_request

# Show a success or failure message, and provide the response from the API.def show_output(response): if response['MessageResponse']['Result'][recipient["token"]]['DeliveryStatus'] == "SUCCESSFUL": status = "Message sent! Response information:\n" else: status = "The message wasn't sent. Response information:\n" print(status, json.dumps(response,indent=4))

# Send the message through the appropriate channel.def send_message():

token = recipient["token"] service = recipient["service"] message_request = create_message_request()

client = boto3.client('pinpoint',region_name=region)

227

Page 235: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEnviar notificações por push

try: response = client.send_messages( ApplicationId=application_id, MessageRequest=message_request ) except ClientError as e: print(e.response['Error']['Message']) else: show_output(response)

send_message()

228

Page 236: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCriar uma campanha que envia mensagens

por meio de um canal personalizado

Criar canais personalizados noAmazon Pinpoint

O Amazon Pinpoint inclui suporte integrado para o envio de mensagens por meio de canais de notificaçãopor push, e-mail, SMS e voz. Também é possível configurar o Amazon Pinpoint para enviar mensagenspor meio de outros canais criando canais personalizados. Os canais personalizados no Amazon Pinpointpermitem que você envie mensagens por meio de qualquer serviço que tenha uma API, incluindo serviçosde terceiros. É possível interagir com as APIs usando um webhook ou chamando uma função do AWSLambda.

Os segmentos para os quais você enviar campanhas de canal personalizado poderão conter endpoints detodos os tipos (ou seja, endpoints em que o valor do atributo ChannelType seja EMAIL (E-mail), VOICE(Voz), SMS, CUSTOM (Personalizado) ou um dos vários tipos de endpoint de notificação por push).

Criar uma campanha que envia mensagens pormeio de um canal personalizado

Para atribuir uma função do Lambda ou webhook a uma campanha específica, use a API do AmazonPinpoint para criar ou atualizar um objeto Campaign (Campanha).

O objeto MessageConfiguration na campanha também deve conter um objeto CustomMessage. Esteobjeto tem um membro, Data. O valor de Data é uma string JSON que contém a carga da mensagem quevocê deseja enviar para o canal personalizado.

A campanha deve conter um objeto CustomDeliveryConfiguration. No objetoCustomDeliveryConfiguration, especifique o seguinte:

• EndpointTypes – uma matriz que contém todos os tipos de endpoint para os quais a campanha decanal personalizado deve ser enviada. Ela pode conter qualquer um ou todos os seguintes tipos decanal:• ADM

• APNS

• APNS_SANDBOX

• APNS_VOIP

• APNS_VOIP_SANDBOX

• BAIDU

• CUSTOM

• EMAIL

• GCM

• SMS

• VOICE

• DeliveryUri – o destino para o qual os endpoints são enviados. É possível especificar um dosseguintes:• O nome de recurso da Amazon (ARN) de uma função do Lambda que você deseja executar quando a

campanha for executada.

229

Page 237: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorNoções básicas sobre dados de eventos

• O URL do webhook para o qual você deseja enviar dados de endpoint quando a campanha forexecutada.

Note

O objeto Campaign também pode conter um objeto Hook. Esse objeto é usado somentepara criar segmentos personalizados por uma função do Lambda quando uma campanha forexecutada. Para obter mais informações, consulte Personalizando segmentos com o AWSLambda (p. 183).

Noções básicas sobre os dados de eventosque o Amazon Pinpoint envia para os canaispersonalizados

Antes de criar uma função do Lambda que envia mensagens por um canal personalizado, você deve sefamiliarizar com os dados que o Amazon Pinpoint emite. Quando uma campanha do Amazon Pinpointenvia mensagens por um canal personalizado, ela envia uma carga para a função do Lambda de destinosemelhante ao seguinte exemplo:

{ "Message":{}, "Data":"The payload that's provided in the CustomMessage object in MessageConfiguration", "ApplicationId":"3a9b1f4e6c764ba7b031e7183example", "CampaignId":"13978104ce5d6017c72552257example", "TreatmentId":"0", "ActivityId":"575cb1929d5ba43e87e2478eeexample", "ScheduledTime":"2020-04-08T19:00:16.843Z", "Endpoints":{ "1dbcd396df28ac6cf8c1c2b7fexample":{ "ChannelType":"EMAIL", "Address":"[email protected]", "EndpointStatus":"ACTIVE", "OptOut":"NONE", "Location":{ "City":"Seattle", "Country":"USA" }, "Demographic":{ "Make":"OnePlus", "Platform":"android" }, "EffectiveDate":"2020-04-01T01:05:17.267Z", "Attributes":{ "CohortId":[ "42" ] }, "CreationDate":"2020-04-01T01:05:17.267Z" } }}

Os dados de eventos fornecem os seguintes atributos:

• ApplicationId – o ID do projeto do Amazon Pinpoint ao qual a campanha pertence.

230

Page 238: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConfigurar webhooks

• CampaignId – o ID do projeto do Amazon Pinpoint que invocou a função do Lambda.• TreatmentId – o ID da variante da campanha. Se você criou uma campanha padrão, esse valor será

sempre 0. Se você criou uma campanha de teste A/B, esse valor será um número inteiro entre 0 e 4.• ActivityId – o ID da atividade sendo executada pela campanha.• ScheduledTime – a hora em que a campanha do Amazon Pinpoint foi executada, mostrada no formato

ISO 8601.• Endpoints – uma lista dos endpoints que foram segmentados pela campanha. Cada carga pode conter

até 50 endpoints. Se o segmento para o qual a campanha foi enviada contiver mais de 50 endpoints,o Amazon Pinpoint invocará a função repetidamente, com até 50 endpoints por vez, até que todos osendpoints sejam processados.

É possível usar esses dados de exemplo ao criar e testar sua função do Lambda do canal personalizado.

Configurar webhooksSe você usar um webhook para enviar mensagens de canal personalizado, o URL do webhook devecomeçar com "https://". O URL do webhook pode conter somente caracteres alfanuméricos, além dosseguintes símbolos: hífen (-), ponto (.), sublinhado (_), til (~), ponto de interrogação (?), barra (/), cerquilhaou hashtag (#) e ponto e vírgula (;). O URL deve estar em conformidade com RFC3986.

Quando você cria uma campanha que especifica o URL de um webhook, o Amazon Pinpoint emite umHTTP HEAD para esse URL. A resposta à solicitação HEAD deve conter um cabeçalho chamado X-Amz-Pinpoint-AccountId. O valor desse cabeçalho deve ser igual ao ID da sua conta da AWS.

Configuração de funções LambdaEsta seção fornece uma visão geral das etapas que devem ser seguidas ao criar uma função do Lambdaque envia mensagens por um canal personalizado. Primeiro, crie a função. Depois disso, adicione umapolítica de execução à função. Essa política permite que o Amazon Pinpoint execute a política quando umacampanha for executada.

Para obter uma introdução à criação de funções do Lambda, consulte Criar funções do Lambda no AWSLambda Developer Guide.

Exemplos de função LambdaO exemplo de código a seguir processa a carga e registra o número de endpoints de cada tipo de endpointno CloudWatch.

import boto3import randomimport pprintimport jsonimport time

cloudwatch = boto3.client('cloudwatch') def lambda_handler(event, context): customEndpoints = 0 smsEndpoints = 0 pushEndpoints = 0 emailEndpoints = 0 voiceEndpoints = 0

231

Page 239: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos de função Lambda

numEndpoints = len(event['Endpoints']) print("Payload:\n", event) print("Endpoints in payload: " + str(numEndpoints))

for key in event['Endpoints'].keys(): if event['Endpoints'][key]['ChannelType'] == "CUSTOM": customEndpoints += 1 elif event['Endpoints'][key]['ChannelType'] == "SMS": smsEndpoints += 1 elif event['Endpoints'][key]['ChannelType'] == "EMAIL": emailEndpoints += 1 elif event['Endpoints'][key]['ChannelType'] == "VOICE": voiceEndpoints += 1 else: pushEndpoints += 1 response = cloudwatch.put_metric_data( MetricData = [ { 'MetricName': 'EndpointCount', 'Dimensions': [ { 'Name': 'CampaignId', 'Value': event['CampaignId'] }, { 'Name': 'ApplicationId', 'Value': event['ApplicationId'] } ], 'Unit': 'None', 'Value': len(event['Endpoints']) }, { 'MetricName': 'CustomCount', 'Dimensions': [ { 'Name': 'CampaignId', 'Value': event['CampaignId'] }, { 'Name': 'ApplicationId', 'Value': event['ApplicationId'] } ], 'Unit': 'None', 'Value': customEndpoints }, { 'MetricName': 'SMSCount', 'Dimensions': [ { 'Name': 'CampaignId', 'Value': event['CampaignId'] }, { 'Name': 'ApplicationId', 'Value': event['ApplicationId'] } ], 'Unit': 'None', 'Value': smsEndpoints }, { 'MetricName': 'EmailCount',

232

Page 240: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos de função Lambda

'Dimensions': [ { 'Name': 'CampaignId', 'Value': event['CampaignId'] }, { 'Name': 'ApplicationId', 'Value': event['ApplicationId'] } ], 'Unit': 'None', 'Value': emailEndpoints }, { 'MetricName': 'VoiceCount', 'Dimensions': [ { 'Name': 'CampaignId', 'Value': event['CampaignId'] }, { 'Name': 'ApplicationId', 'Value': event['ApplicationId'] } ], 'Unit': 'None', 'Value': voiceEndpoints }, { 'MetricName': 'PushCount', 'Dimensions': [ { 'Name': 'CampaignId', 'Value': event['CampaignId'] }, { 'Name': 'ApplicationId', 'Value': event['ApplicationId'] } ], 'Unit': 'None', 'Value': pushEndpoints }, { 'MetricName': 'EndpointCount', 'Dimensions': [ ], 'Unit': 'None', 'Value': len(event['Endpoints']) }, { 'MetricName': 'CustomCount', 'Dimensions': [ ], 'Unit': 'None', 'Value': customEndpoints }, { 'MetricName': 'SMSCount', 'Dimensions': [ ], 'Unit': 'None', 'Value': smsEndpoints }, { 'MetricName': 'EmailCount',

233

Page 241: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConceder ao Amazon Pinpoint permissão

para invocar a função do Lambda

'Dimensions': [ ], 'Unit': 'None', 'Value': emailEndpoints }, { 'MetricName': 'VoiceCount', 'Dimensions': [ ], 'Unit': 'None', 'Value': voiceEndpoints }, { 'MetricName': 'PushCount', 'Dimensions': [ ], 'Unit': 'None', 'Value': pushEndpoints } ], Namespace = 'PinpointCustomChannelExecution' ) print("cloudwatchResponse:\n",response)

Quando uma campanha do Amazon Pinpoint executa essa função do Lambda, o Amazon Pinpointenvia à função uma lista de membros do segmento. A função conta o número de endpoints de cadaChannelType. Depois, ela envia esses dados para o Amazon CloudWatch. É possível visualizar essasmétricas na seção Metrics (Métricas) do console do CloudWatch. As métricas estão disponíveis nonamespace PinpointCustomChannelExecution.

É possível modificar esse exemplo de código para que ele também se conecte à API de um serviçoexterno para enviar mensagens por meio desse serviço.

Conceder ao Amazon Pinpoint permissão para invocara função do LambdaVocê pode usar a AWS Command Line Interface (AWS CLI) para adicionar permissões à política de funçãoLambda atribuída à função Lambda. Para permitir que o Amazon Pinpoint invoque uma função, use ocomando do Lambda add-permission, conforme mostrado no exemplo a seguir:

aws lambda add-permission \--function-name myFunction \ --statement-id sid0 \--action lambda:InvokeFunction \--principal pinpoint.us-east-1.amazonaws.com \--source-arn arn:aws:mobiletargeting:us-east-1:111122223333:apps/*

No comando anterior, faça o seguinte:

• Substitua myFunction pelo nome da função do Lambda.• Substitua us-east-1 pela AWS região em que você usa o Amazon Pinpoint.• Substitua 111122223333 pelo ID de sua conta da AWS.

Ao executar o comando add-permission, o AWS Lambda retorna o seguinte resultado:

{ "Statement": "{\"Sid\":\"sid\", \"Effect\":\"Allow\",

234

Page 242: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConceder ao Amazon Pinpoint permissão

para invocar a função do Lambda

\"Principal\":{\"Service\":\"pinpoint.us-east-1.amazonaws.com\"}, \"Action\":\"lambda:InvokeFunction\", \"Resource\":\"arn:aws:lambda:us-east-1:111122223333:function:myFunction\", \"Condition\": {\"ArnLike\": {\"AWS:SourceArn\": \"arn:aws:mobiletargeting:us-east-1:111122223333:apps/*\"}}}"}

O valor Statement é uma versão de string JSON de uma instrução adicionada à política de funçãoLambda.

Restringir ainda mais a política de execuçãoÉ possível modificar a política de execução restringindo-a a um projeto do Amazon Pinpoint específico.Para fazer isso, substitua o * no exemplo anterior pelo ID exclusivo do projeto. É possível restringirainda mais a política limitando-a a uma campanha específica. Por exemplo, para restringir a política parapermitir somente uma campanha com o ID de campanha 95fee4cd1d7f5cd67987c1436example emum projeto com o ID de projeto dbaf6ec2226f0a9a8615e3ea5example, use o seguinte valor para oatributo source-arn:

arn:aws:mobiletargeting:us-east-1:111122223333:apps/dbaf6ec2226f0a9a8615e3ea5example/campaigns/95fee4cd1d7f5cd67987c1436example

Note

Se restringir a execução da função do Lambda a uma campanha específica, primeiramente seránecessário criar a função com uma política menos restritiva. Depois, crie a campanha no AmazonPinpoint e escolha a função. Por fim, atualize a política de execução para fazer referência àcampanha especificada.

235

Page 243: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConfigurar eventos de streaming

Streaming de eventos do AmazonPinpoint para Kinesis

No Amazon Pinpoint, um evento é uma ação que ocorre quando: um usuário interage com um de seusaplicativos; quando você envia uma mensagem de uma campanha ou jornada; ou quando você envia umamensagem transacional SMS ou de e-mail. Por exemplo, se enviar uma mensagem de e-mail, ocorremvários eventos:

• Quando envia a mensagem, ocorre um evento de envio .• Quando a mensagem chega à caixa de entrada do destinatário, ocorre um evento de entrega .• Quando o destinatário abre a mensagem, ocorre um evento abertura .

Você pode configurar o Amazon Pinpoint para enviar informações sobre eventos para o Amazon Kinesis. Aplataforma de Kinesis oferece um serviço que pode coletar, processar e analisar dados de outros serviçosda AWS em tempo real. O Amazon Pinpoint pode enviar dados de eventos para o Kinesis Data Firehose,que transmite esses dados para armazenamentos de dados da AWS, como, por exemplo, o Amazon S3 ouo Amazon Redshift. O Amazon Pinpoint também pode transmitir dados para o Kinesis Data Streams, queconsome e armazena vários fluxos de dados para processamento em aplicativos de análise.

Os eventos de streaming do Amazon Pinpoint incluem informações sobre interações dos usuárioscom seus aplicativos conectados ao Amazon Pinpoint. Ele também inclui informações sobre todas asmensagens de campanhas que você envia, seja através de um canal e de jornadas. Por fim, incluiinformações sobre todas as mensagens de SMS e e-mail transacionais enviadas por você.

Note

O Amazon Pinpoint não transmite informações sobre mensagens de voz ou notificações por pushtransacionais.

Este capítulo fornece informações sobre como configurar o Amazon Pinpoint para transmitir dados deeventos para o Kinesis. Ela também contém exemplos dos dados de eventos que o Amazon Pinpointtransmite.

Tópicos• Configurar eventos de streaming (p. 236)• Eventos de aplicativo (p. 238)• Eventos de campanha (p. 242)• Eventos de jornada (p. 245)• Eventos de e-mail (p. 248)• Eventos de SMS (p. 256)

Configurar eventos de streamingVocê pode configurar o Amazon Pinpoint para enviar dados de evento para um fluxo do Amazon Kinesis,ou um fluxo de entrega do Amazon Kinesis Data Firehose. O Amazon Pinpoint pode enviar dados deeventos para campanhas, jornadas e mensagens de e-mail e SMS transacionais.

Esta seção inclui informações sobre como configurar os eventos de streaming de forma programática.Também é possível usar o console do Amazon Pinpoint para configurar os eventos de streaming. Paraobter informações sobre como configurar o eventos de streaming usando o console do Amazon Pinpoint,consulte Configurações de eventos de streaming no Guia do usuário do Amazon Pinpoint.

236

Page 244: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorPré-requisitos

Pré-requisitosOs exemplos nesta seção exigem a seguinte entrada:

• O ID de um aplicativo que está integrado com o Amazon Pinpoint e relatórios eventos. Para obterinformações sobre como integrar, leia Integração do Amazon Pinpoint ao aplicativo (p. 132).

• O Nome de recurso da Amazon (ARN) de um fluxo do Kinesis ou fluxo de entrega do Kinesis DataFirehose em sua conta da AWS. Para obter mais informações sobre como criar esses recursos, consulteCriar e atualizar fluxos de dados no Guia do desenvolvedor do Amazon Kinesis Data Streams ou Criarum fluxo de entrega do Amazon Kinesis Data Firehose no Guia do desenvolvedor do Amazon KinesisData Firehose.

• O ARN de uma função do AWS Identity and Access Management (IAM) que autoriza o Amazon Pinpointa enviar dados para o fluxo. Para obter informações sobre como criar uma função, leia Função IAMparaeventos de streaming para Kinesis (p. 395).

AWS CLIO exemplo de AWS CLI a seguir usa o comando put-event-stream . Este comando configura o AmazonPinpoint para enviar eventos para um fluxo do Kinesis:

aws pinpoint put-event-stream \--application-id projectId \--write-event-stream DestinationStreamArn=streamArn,RoleArn=roleArn

AWS SDK for JavaO exemplo de Java a seguir configura o Amazon Pinpoint para enviar eventos para um fluxo do Kinesis:

public PutEventStreamResult createEventStream(AmazonPinpoint pinClient, String appId, String streamArn, String roleArn) { WriteEventStream stream = new WriteEventStream() .withDestinationStreamArn(streamArn) .withRoleArn(roleArn);

PutEventStreamRequest request = new PutEventStreamRequest() .withApplicationId(appId) .withWriteEventStream(stream);

return pinClient.putEventStream(request);}

Este exemplo cria um objeto WriteEventStream que armazena os ARNs do stream Kinesis e dafunção IAM. O objeto WriteEventStream é passado para um objeto PutEventStreamRequestpara configurar o Amazon Pinpoint para enviar fluxos de eventos a um aplicativo específico. O objetoPutEventStreamRequest é passado para o método putEventStream do cliente do Amazon Pinpoint.

Um fluxo do Kinesis poder ser atribuído a vários aplicativos. Se você fizer isso, o Amazon Pinpoint enviarádados de eventos de cada aplicativo para o fluxo, o que permite analisar os dados como uma coleção.O método do exemplo a seguir aceita uma lista de IDs de aplicativo (app) e usa o método do exemploanterior, createEventStream, para atribuir um stream para cada aplicativo:

public List<PutEventStreamResult> createEventStreamFromAppList( AmazonPinpoint pinClient, List<String> appIDs, String streamArn, String roleArn) {

237

Page 245: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorDesativando eventos de streaming

return appIDs.stream() .map(appId -> createEventStream(pinClient, appId, streamArn, roleArn)) .collect(Collectors.toList());}

Apesar ser possível atribuir um fluxo a vários aplicativos, não é possível atribuir vários fluxos a um mesmoaplicativo.

Desativando eventos de streamingSe você atribuiu um stream do Kinesis a um aplicativo, é possível desabilitar os eventos de streaming paraesse aplicativo. O Amazon Pinpoint interrompe os eventos de streaming para o Kinesis, mas é possívelvisualizar análises de eventos usando o console do Amazon Pinpoint.

AWS CLIUse o comando delete-event-stream:

aws pinpoint delete-event-stream --application-id application-id

AWS SDK for JavaUse o método deleteEventStream do cliente do Amazon Pinpoint:

pinClient.deleteEventStream(new DeleteEventStreamRequest().withApplicationId(appId));

Eventos de aplicativoDepois de integrar seu aplicativo (app) com Amazon Pinpoint, o Amazon Pinpoint pode transmitir dados deeventos sobre a atividade do usuário e entregas de mensagens para o app.

ExemploO objeto JSON de um evento de aplicativo contém os dados mostrados no exemplo a seguir.

{ "event_type": "_session.stop", "event_timestamp": 1487973802507, "arrival_timestamp": 1487973803515, "event_version": "3.0", "application": { "app_id": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "cognito_identity_pool_id": "us-east-1:a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6", "package_name": "main.page", "sdk": { "name": "aws-sdk-mobile-analytics-js", "version": "0.9.1:2.4.8" }, "title": "title", "version_name": "1.0", "version_code": "1" }, "client": { "client_id": "m3n4o5p6-a1b2-c3d4-e5f6-g7h8i9j0k1l2", "cognito_id": "us-east-1:i9j0k1l2-m3n4-o5p6-a1b2-c3d4e5f6g7h8" },

238

Page 246: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtributos de eventos do aplicativo

"device": { "locale": { "code": "en_US", "country": "US", "language": "en" }, "make": "generic web browser", "model": "Unknown", "platform": { "name": "android", "version": "10.10" } }, "session": { "session_id": "f549dea9-1090-945d-c3d1-e4967example", "start_timestamp": 1487973202531, "stop_timestamp": 1487973802507 }, "attributes": {}, "metrics": {}}

Atributos de eventos do aplicativoEsta seção define os atributos incluídos nos eventos de streaming do aplicativo.

Atributo Descrição

event_type O tipo de evento. Os valores possíveis são:

• _session.start – o endpoint iniciou uma nova sessão.• _session.stop – o endpoint encerrou uma sessão.• _userauth.sign_in – o endpoint fez login no aplicativo.• _userauth.sign_up – um novo endpoint concluiu o

processo de registro em seu aplicativo.• _userauth.auth_fail – o endpoint tentou fazer login em

seu aplicativo, mas não conseguiu concluir o processo.• _monetization.purchase – o endpoint fez uma compra

em seu aplicativo.• _session.pause – O endpoint pausou uma sessão. As

sessões pausadas podem ser retomadas para queseja possível continuar a coletar métricas sem iniciaruma sessão totalmente nova.

• _session.resume – O endpoint retomou uma sessão.

event_timestamp A hora em que o evento foi relatado, mostrada comohorário do Unix em milissegundos.

arrival_timestamp A hora em que o evento foi recebido pelo AmazonPinpoint, mostrada como horário do Unix emmilissegundos.

event_version A versão do esquema do evento JSON.

Tip

Marque esta versão no seu aplicativo deprocessamento de eventos para que você saiba

239

Page 247: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtributos de eventos do aplicativo

Atributo Descriçãoquando atualizar o aplicativo em resposta a umaatualização de esquema.

application Informações sobre o projeto do Amazon Pinpointassociado ao evento. Para obter mais informações,consulte a tabela Aplicativo (p. 240).

client Informações sobre o endpoint que relatou o evento.Para obter mais informações, consulte a tabelaCliente (p. 241).

device Informações sobre o dispositivo que relatou o evento.Para obter mais informações, consulte a tabelaDispositivo (p. 241).

session Informações sobre a sessão que gerou o evento.Consulte a tabela Sessão (p. 242) para obter maisinformações.

attributes Atributos associados ao evento. Para eventos relatadospor seus aplicativos, esse objeto inclui atributospersonalizados definidos por você.

metrics Métricas relacionadas ao evento. Também é possívelconfigurar seus aplicativos para enviar métricaspersonalizadas ao Amazon Pinpoint.

AplicativoInclui informações sobre o projeto do Amazon Pinpoint ao qual o evento está associado.

Atributo Descrição

app_id O ID exclusivo do projeto do Amazon Pinpoint querelatou o evento.

cognito_identity_pool_id O ID do grupo de identidades do Amazon Cognito aoqual o endpoint está associado.

package_name O nome do pacote do aplicativo, como, por exemplo,com.example.my_app.

sdk Informações sobre o SDK usado para relatar o evento.Para obter mais informações, consulte a tabelaSDK (p. 240).

title O nome do app.

version_name O nome da versão do aplicativo, como V2.5.

version_code O número da versão do aplicativo, como 3.

SDK

Inclui informações sobre o SDK usado para relatar o evento.

240

Page 248: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtributos de eventos do aplicativo

Atributo Descrição

name O nome do SDK usado para relatar o evento.

version A versão do SDK.

ClienteInclui informações sobre o endpoint que gerou o evento.

Atributo Descrição

client_id O ID do endpoint.

cognito_id O token do ID do Amazon Cognito associado aoendpoint.

DispositivoInclui informações sobre o dispositivo do endpoint que gerou o evento.

Atributo Descrição

locale Informações sobre configurações de região eidioma do dispositivo do endpoint. Consulte a tabelaLocal (p. 241) para obter mais informações.

make O fabricante do dispositivo do endpoint.

model O identificador de modelo do dispositivo do endpoint.

platform Informações sobre o sistema operacional no dispositivodo endpoint. Consulte a tabela Plataforma (p. 241)para obter mais informações.

Locale

Inclui informações sobre as configurações de região e idioma do dispositivo do endpoint.

Atributo Descrição

code O identificador do local associado ao dispositivo.

country O país ou a região associada ao local dodispositivo.

language O idioma associado ao local do dispositivo.

Plataforma

Inclui informações sobre o sistema operacional no dispositivo do endpoint.

241

Page 249: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEventos de campanha

Atributo Descrição

name O nome do sistema operacional no dispositivo.

version A versão do sistema operacional no dispositivo.

SessãoInclui informações sobre a sessão que gerou o evento.

Atributo Descrição

session_id Um ID exclusivo que identifica a sessão.

start_timestamp A data e a hora em que a sessão começou, mostradascomo horário do Unix em milissegundos.

stop_timestamp A data e a hora em que a sessão terminou, mostradascomo horário do Unix em milissegundos.

Eventos de campanhaSe o Amazon Pinpoint for usado para enviar campanhas através de qualquer canal, o Amazon Pinpointpode transmitir dados de eventos sobre essas campanhas. Isso inclui dados de eventos para quaisquermensagens de email ou SMS enviadas de uma campanha. Para obter informações detalhadas sobre osdados transmitidos pelo Amazon Pinpoint para esses tipos de mensagens, consulte the section called“Eventos de e-mail” (p. 248) e the section called “Eventos de SMS” (p. 256).

Evento de exemploO objeto JSON para uma campanha contém os dados mostrados no exemplo a seguir.

{ "event_type": "_campaign.send", "event_timestamp": 1562109497426, "arrival_timestamp": 1562109497494, "event_version": "3.1", "application": { "app_id": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "sdk": {} }, "client": { "client_id": "d8dcf7c5-e81a-48ae-8313-f540cexample" }, "device": { "platform": {} }, "session": {}, "attributes": { "treatment_id": "0", "campaign_activity_id": "5473285727f04865bc673e527example", "campaign_id": "4f8d6097c2e8400fa3081d875example", "campaign_send_status": "SUCCESS" }, "client_context": {

242

Page 250: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtributos de eventos de campanha

"custom": { "endpoint": "{\"ChannelType\":\"GCM\",\"EndpointStatus\":\"ACTIVE\", #\"OptOut\":\"NONE\",\"RequestId\":\"ec229696-9d1e-11e9-8bf1-85d0aexample\", #\"EffectiveDate\":\"2019-07-02T23:12:54.836Z\",\"User\":{}}" } }, "awsAccountId": "123456789012"}

Atributos de eventos de campanhaEsta seção define os atributos incluídos nos eventos de streaming da campanha.

Atributo Descrição

event_type O tipo de evento. Os valores possíveis são:

• _campaign.send – O Amazon Pinpoint executou acampanha.

• _campaign.opened_notification – para campanhas denotificação por push, esse tipo de evento indica que odestinatário tocou na notificação para abri-la.

• _campaign.received_foreground – para campanhasde notificação por push, esse tipo de evento indicaque o destinatário recebeu a mensagem como umanotificação em primeiro plano.

• _campaign.received_background – para campanhasde notificação por push, esse tipo de evento indicaque o destinatário recebeu a mensagem como umanotificação em segundo plano.

event_timestamp A hora em que o evento foi relatado, mostrada comohorário do Unix em milissegundos.

arrival_timestamp A hora em que o evento foi recebido pelo AmazonPinpoint, mostrada como horário do Unix emmilissegundos.

event_version A versão do esquema do evento JSON.

Tip

Marque esta versão no seu aplicativo deprocessamento de eventos para que você saibaquando atualizar o aplicativo em resposta a umaatualização de esquema.

application Informações sobre o projeto do Amazon Pinpointassociado ao evento. Para obter mais informações,consulte a tabela Aplicativo (p. 244).

client Informações sobre o endpoint ao qual o evento estáassociado. Para obter mais informações, consulte atabela Cliente (p. 245).

device Informações sobre o dispositivo que relatou o evento.Para campanhas e mensagens transacionais, esseobjeto está vazio.

243

Page 251: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtributos de eventos de campanha

Atributo Descrição

session Informações sobre a sessão que gerou o evento. Paracampanhas, esse objeto está vazio.

attributes Atributos associados ao evento. Para eventos relatadospor um de seus aplicativos, esse objeto pode incluiratributos personalizados que são definidos peloaplicativo. Para eventos criados ao enviar umacampanha, esse objeto contém atributos associados àcampanha. Para eventos gerados ao enviar mensagenstransacionais, esse objeto contém informaçõesrelacionadas à mensagem em si.

Para obter mais informações, consulte a tabelaAtributos (p. 244).

client_context Contém um objeto custom, que contém umapropriedade endpoint. A propriedade endpoint tem oconteúdo do registro de endpoint para o endpoint ao quala campanha foi enviada.

awsAccountId O ID da conta da AWS usada para enviar a mensagem.

AplicativoInclui informações sobre o projeto do Amazon Pinpoint ao qual o evento está associado.

Atributo Descrição

app_id O ID exclusivo do projeto do Amazon Pinpoint querelatou o evento.

sdk O SDK usado para relatar o evento.

Atributos.Inclui informações sobre a campanha que produziu o evento.

Atributo Descrição

treatment_id Se a mensagem foi enviada usando uma campanha deteste A/B, esse valor representa o número de tratamentoda mensagem. Para campanhas padrão, esse valor é 0.

campaign_activity_id O ID exclusivo que o Amazon Pinpoint gera quando oevento ocorre.

campaign_id O ID exclusivo da campanha da qual a mensagem foienviada.

campaign_send_status Indica o status da campanha para o endpoint de destino.Os possíveis valores incluem:

244

Page 252: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEventos de jornada

Atributo Descrição• SUCCESS – A campanha foi enviada com êxito para o

endpoint.• FAILURE – A campanha não foi enviada para o

endpoint.• DAILY_CAP – a campanha não foi enviada ao

endpoint porque o endpoint já recebeu o númeromáximo de mensagens diárias.

• EXPIRED – a campanha não foi enviada ao endpointporque esse envio excederia as configurações da taxade envio ou da duração máxima da campanha.

• QUIET_TIME – a campanha não foi enviada aoendpoint devido às restrições de período de silêncio.

• HOLDOUT – a campanha não foi enviada ao endpointporque o endpoint era membro do grupo de holdout.

ClienteInclui informações sobre o endpoint que foi direcionado pela campanha.

Atributo Descrição

client_id O ID do endpoint para o qual a campanha foi enviada.

Eventos de jornadaSe você publicar uma jornada, o Amazon Pinpoint pode transmitir dados de eventos sobre a jornada.Isso inclui dados de eventos para qualquer mensagem de e-mail que você enviar da jornada. Para obterinformações sobre os dados transmitidos pelo Amazon Pinpoint para mensagens de email, consulte thesection called “Eventos de e-mail” (p. 248).

Evento de exemploO objeto JSON para um evento de jornada contém os dados mostrados no exemplo a seguir.

{ "event_type":"_journey.send", "event_timestamp":1572989078843, "arrival_timestamp":1572989078843, "event_version":"3.1", "application":{ "app_id":"a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "sdk":{

} }, "client":{ "client_id":"d8dcf7c5-e81a-48ae-8313-f540cexample" }, "device":{ "platform":{

245

Page 253: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtributos de eventos de jornadas

} }, "session":{

}, "attributes":{ "journey_run_id":"edc9a0b577164d1daf72ebd15example", "journey_send_status":"SUCCESS", "journey_id":"546401670c5547b08811ac6a9example", "journey_activity_id":"0yKexample" }, "client_context":{ "custom":{ "endpoint":"{\"ChannelType\":\"EMAIL\",\"EndpointStatus\":\"ACTIVE\",\"OptOut\":\"NONE\",\"Demographic\":{\"Timezone\":\"America/Los_Angeles\"}}" } }, "awsAccountId":"123456789012"}

Atributos de eventos de jornadasEsta seção define os atributos incluídos nos dados de fluxo de eventos que o Amazon Pinpoint gera parauma jornada.

Atributo Descrição

event_type O tipo de evento. Para eventos de jornada, o valor paraesse atributo é sempre _journey.send, o que indicaque o Amazon Pinpoint executou a jornada.

event_timestamp A hora em que o evento foi relatado, mostrada comohorário do Unix em milissegundos.

arrival_timestamp A hora em que o evento foi recebido pelo AmazonPinpoint, mostrada como horário do Unix emmilissegundos.

event_version A versão do esquema do evento JSON.

Tip

Marque esta versão no seu aplicativo deprocessamento de eventos para que você saibaquando atualizar o aplicativo em resposta a umaatualização de esquema.

application Informações sobre o projeto do Amazon Pinpointassociado ao evento. Para obter mais informações,consulte a tabela Aplicativo (p. 247).

client Informações sobre o endpoint ao qual o evento estáassociado. Para obter mais informações, consulte atabela Cliente (p. 247).

device Informações sobre o dispositivo que relatou o evento.Para jornadas, este objeto está vazio.

session Informações sobre a sessão que gerou o evento. Parajornadas, este objeto está vazio.

246

Page 254: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtributos de eventos de jornadas

Atributo Descrição

attributes Atributos associados à jornada e à atividade de jornadaque gerou o evento. Para obter mais informações,consulte a tabela Atributos (p. 247).

client_context Contém um objeto custom, que contém umapropriedade endpoint. A propriedade endpointcontém o conteúdo do registro de endpoint para oendpoint que está associado ao evento.

awsAccountId O ID da conta da AWS que foi usada para executar ajornada.

AplicativoInclui informações sobre o projeto do Amazon Pinpoint que está associado ao evento.

Atributo Descrição

app_id O ID exclusivo do projeto do Amazon Pinpoint querelatou o evento.

sdk O SDK usado para relatar o evento.

ClienteInclui informações sobre o endpoint que está associado ao evento.

Atributo Descrição

client_id O ID do endpoint.

Atributos.Inclui informações sobre a jornada sessão que gerou o evento.

Atributo Descrição

journey_run_id O ID exclusivo da jornada que gerou o evento. OAmazon Pinpoint gera e atribui esse ID automaticamentea cada nova execução de uma jornada.

journey_send_status Indica o status de entrega da mensagem que estáassociada ao evento. Os possíveis valores incluem:

• SUCCESS – a mensagem foi enviada com êxito para oendpoint.

• FAILURE – a mensagem não foi enviada para oendpoint porque ocorreu um erro.

• DAILY_CAP – a mensagem não foi enviada para oendpoint porque o envio da mensagem excederia onúmero máximo de mensagens que a jornada ou o

247

Page 255: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEventos de e-mail

Atributo Descriçãoprojeto pode enviar para um único endpoint duranteum período de 24 horas.

• QUIET_TIME – a mensagem não foi enviada devidoàs restrições de tempo de silêncio para a jornada ouprojeto.

journey_id O ID exclusivo da jornada que gerou o evento.

journey_activity_id O ID exclusivo da atividade de jornada que gerou oevento.

Eventos de e-mailAo enviar mensagens de e-mail, o Amazon Pinpoint pode transmitir dados que fornecem informaçõesadicionais sobre os seguintes tipos de eventos para essas mensagens:

• Envios• Entregas• Devoluções• Reclamações• Aberturas• Cliques• Rejeições• Cancelamento de assinaturas

Os tipos de eventos na lista anterior são explicados em detalhes em Atributos de eventos de e-mail (p. 252).

Dependendo da API e das configurações usadas para enviar mensagens por e-mail, será possívelver tipos de eventos adicionais ou dados diferentes. Por exemplo, se você enviar mensagens usandoconjuntos de configurações que publicam dados de eventos no Amazon Kinesis, como aqueles fornecidospelo Amazon Simple Email Service (Amazon SES), os dados também podem incluir eventos para falhasde renderização de modelo. Para obter informações sobre esses dados, consulte Monitoramento usando apublicação de eventos do Amazon SES no Guia do desenvolvedor do Amazon Simple Email Service.

Eventos de exemploEnvio de e-mail

O objeto JSON de um evento de envio de e-mail contém os dados mostrados no exemplo a seguir.

{ "event_type": "_email.send", "event_timestamp": 1564618621380, "arrival_timestamp": 1564618622025, "event_version": "3.1", "application": { "app_id": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "sdk": {} }, "client": { "client_id": "9a311b17-6f8e-4093-be61-4d0bbexample" },

248

Page 256: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEventos de exemplo

"device": { "platform": {} }, "session": {}, "attributes": { "feedback": "received" }, "awsAccountId": "123456789012", "facets": { "email_channel": { "mail_event": { "mail": { "message_id": "0200000073rnbmd1-mbvdg3uo-q8ia-m3ku-ibd3-ms77kexample-000000", "message_send_timestamp": 1564618621380, "from_address": "[email protected]", "destination": ["[email protected]"], "headers_truncated": false, "headers": [{ "name": "From", "value": "[email protected]" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Amazon Pinpoint Test" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "multipart/alternative; boundary=\"----=_Part_314159_271828\"" }], "common_headers": { "from": "[email protected]", "to": ["[email protected]"], "subject": "Amazon Pinpoint Test" } }, "send": {} } } }}

E-mail entregue

O objeto JSON de um evento de e-mail entregue contém os dados mostrados no exemplo a seguir.

{ "event_type": "_email.delivered", "event_timestamp": 1564618621380, "arrival_timestamp": 1564618622690, "event_version": "3.1", "application": { "app_id": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "sdk": {} }, "client": { "client_id": "e9a3000d-daa2-40dc-ac47-1cd34example" }, "device": { "platform": {} }, "session": {},

249

Page 257: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEventos de exemplo

"attributes": { "feedback": "delivered" }, "awsAccountId": "123456789012", "facets": { "email_channel": { "mail_event": { "mail": { "message_id": "0200000073rnbmd1-mbvdg3uo-q8ia-m3ku-ibd3-ms77kexample-000000", "message_send_timestamp": 1564618621380, "from_address": "[email protected]", "destination": ["[email protected]"], "headers_truncated": false, "headers": [{ "name": "From", "value": "[email protected]" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Amazon Pinpoint Test" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "multipart/alternative; boundary=\"----=_Part_314159_271828\"" }], "common_headers": { "from": "[email protected]", "to": ["[email protected]"], "subject": "Amazon Pinpoint Test" } }, "delivery": { "smtp_response": "250 ok: Message 82080542 accepted", "reporting_mta": "a8-53.smtp-out.amazonses.com", "recipients": ["[email protected]"], "processing_time_millis": 1310 } } } }}

Clique em e-mail

O objeto JSON de um evento de clique em e-mail contém os dados mostrados no exemplo a seguir.

{ "event_type": "_email.click", "event_timestamp": 1564618621380, "arrival_timestamp": 1564618713751, "event_version": "3.1", "application": { "app_id": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "sdk": {} }, "client": { "client_id": "49c1413e-a69c-46dc-b1c4-6470eexample" }, "device": { "platform": {} },

250

Page 258: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEventos de exemplo

"session": {}, "attributes": { "feedback": "https://aws.amazon.com/pinpoint/" }, "awsAccountId": "123456789012", "facets": { "email_channel": { "mail_event": { "mail": { "message_id": "0200000073rnbmd1-mbvdg3uo-q8ia-m3ku-ibd3-ms77kexample-000000", "message_send_timestamp": 1564618621380, "from_address": "[email protected]", "destination": ["[email protected]"], "headers_truncated": false, "headers": [{ "name": "From", "value": "[email protected]" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Amazon Pinpoint Test" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "multipart/alternative; boundary=\"----=_Part_314159_271828\"" }, { "name": "Message-ID", "value": "null" }], "common_headers": { "from": "[email protected]", "to": ["[email protected]"], "subject": "Amazon Pinpoint Test" } }, "click": { "ip_address": "72.21.198.67", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Safari/605.1.15", "link": "https://aws.amazon.com/pinpoint/" } } } }}

E-mail aberto

O objeto JSON de um evento de e-mail aberto contém os dados mostrados no exemplo a seguir.

{ "event_type": "_email.open", "event_timestamp": 1564618621380, "arrival_timestamp": 1564618712316, "event_version": "3.1", "application": { "app_id": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "sdk": {} }, "client": { "client_id": "8dc1f651-b3ec-46fc-9b67-2a050example"

251

Page 259: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtributos de eventos de e-mail

}, "device": { "platform": {} }, "session": {}, "attributes": { "feedback": "opened" }, "awsAccountId": "123456789012", "facets": { "email_channel": { "mail_event": { "mail": { "message_id": "0200000073rnbmd1-mbvdg3uo-q8ia-m3ku-ibd3-ms77kexample-000000", "message_send_timestamp": 1564618621380, "from_address": "[email protected]", "destination": ["[email protected]"], "headers_truncated": false, "headers": [{ "name": "From", "value": "[email protected]" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Amazon Pinpoint Test" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "multipart/alternative; boundary=\"----=_Part_314159_271828\"" }, { "name": "Message-ID", "value": "null" }], "common_headers": { "from": "[email protected]", "to": ["[email protected]"], "subject": "Amazon Pinpoint Test" } }, "open": { "ip_address": "72.21.198.67", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko)" } } } }}

Atributos de eventos de e-mailEsta seção define os atributos incluídos nos dados de fluxo do evento que o Amazon Pinpoint gera aoenviar mensagens de e-mails.

Atributo Descrição

event_type O tipo de evento. Os valores possíveis são:

252

Page 260: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtributos de eventos de e-mail

Atributo Descrição• _email.send – o Amazon Pinpoint aceitou a mensagem

e tentou entregá-la ao destinatário.• _email.delivered – a mensagem foi entregue ao

destinatário.• _email.rejected – o Amazon Pinpoint determinou que a

mensagem continha malware e não tentou enviá-la.• _email.hardbounce – um problema permanente

impediu que o Amazon Pinpoint entregasse amensagem. O Amazon Pinpoint não tentará entregar amensagem novamente.

• _email.softbounce – um problema temporário impediuque o Amazon Pinpoint entregasse a mensagem.O Amazon Pinpoint tentará entregar a mensagemnovamente por um determinado período de tempo.Após esse período, se a mensagem ainda não puderser entregue, ela será contabilizada como umadevolução definitiva.

• _email.complaint – o destinatário recebeu a mensageme reportou a mensagem para o provedor de e-mail como spam (por exemplo, usando o recurso"Denunciar spam" do cliente de e-mail).

• _email.open – o destinatário recebeu a mensagem e aabriu.

• _email.click – o destinatário recebeu a mensagem eclicou em um link nela.

• _email.unsubscribe – o destinatário recebeu amensagem e clicou em um link de cancelamento deinscrição nela.

event_timestamp A hora em que a mensagem foi enviada, mostrada comotempo Unix em milissegundos. Esse valor geralmenteé o mesmo para todos os eventos gerados para umamensagem.

arrival_timestamp A hora em que o evento foi recebido pelo AmazonPinpoint, mostrada como horário do Unix emmilissegundos.

event_version A versão do esquema do evento JSON.

Tip

Marque esta versão no seu aplicativo deprocessamento de eventos para que você saibaquando atualizar o aplicativo em resposta a umaatualização de esquema.

application Informações sobre o projeto do Amazon Pinpointassociado ao evento. Consulte a tabela Aplicativo paraobter mais informações.

client Informações sobre o cliente de aplicativo instaladono dispositivo que relatou o evento. Para obter maisinformações, consulte a tabela Cliente.

253

Page 261: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtributos de eventos de e-mail

Atributo Descrição

device Informações sobre o dispositivo que relatou o evento.Para obter mais informações, consulte a tabelaDispositivo.

Em caso de eventos gerados ao enviar uma mensagemtransacional, esse objeto está vazio.

session Para eventos de e-mail, esse objeto está vazio.

attributes Atributos associados ao evento. Para obter maisinformações, consulte a tabela Atributos.

Para eventos relatados por um de seus aplicativos,esse objeto pode incluir atributos personalizados quesão definidos pelo aplicativo. Para eventos criadosquando você envia uma mensagem de uma campanhaou jornada, esse objeto contém atributos associadosà campanha ou jornada. Para eventos gerados aoenviar mensagens transacionais, esse objeto contéminformações relacionadas à mensagem em si.

client_context Para eventos de email, esse objeto contém um objeto decustom que contém um atributo legacy_identifier.O valor do atributo legacy_identifier é o ID doprojeto do qual a mensagem foi enviada.

facets Informações adicionais sobre a mensagem, como oscabeçalhos de e-mail. Consulte a tabela Facetas paraobter mais informações.

awsAccountId O ID da conta da AWS usada para enviar a mensagem.

AplicativoInclui informações sobre o projeto do Amazon Pinpoint ao qual o evento está associado.

Atributo Descrição

app_id O ID exclusivo do projeto do Amazon Pinpoint querelatou o evento.

sdk O SDK usado para relatar o evento. Se você enviar umamensagem de e-mail transacional chamando a API doAmazon Pinpoint diretamente ou usando o console doAmazon Pinpoint, esse objeto estará vazio.

Atributos.Inclui informações sobre a campanha ou jornada que produziu o evento.

Campanha

Inclui informações sobre a campanha que produziu o evento.

254

Page 262: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtributos de eventos de e-mail

Atributo Descrição

feedback Para eventos _email.click, o valor desse atributo éo URL do link em que o destinatário clicou para gerar oevento. Para outros eventos, o valor representa o tipode evento (como, por exemplo, received, opened ouclicked).

treatment_id Se a mensagem foi enviada usando uma campanha deteste A/B, esse valor representa o número de tratamentoda mensagem. Para campanhas padrão e mensagensde e-mail transacionais, esse valor é 0.

campaign_activity_id O ID exclusivo que o Amazon Pinpoint gera quando oevento ocorre.

campaign_id O ID exclusivo da campanha que enviou a mensagem.

Jornada

Inclui informações sobre a jornada que produziu o evento.

Atributo Descrição

journey_run_id O ID exclusivo da jornada que enviou a mensagem. OAmazon Pinpoint gera e atribui esse ID automaticamentea cada nova execução de uma jornada.

feedback Para eventos _email.click, o valor desse atributo éo URL do link em que o destinatário clicou para gerar oevento. Para outros eventos, o valor representa o tipo deevento (como, por exemplo, received, delivered ouopened).

journey_id O ID exclusivo da jornada que enviou a mensagem.

journey_activity_id O ID exclusivo da atividade de jornada que enviou amensagem.

ClienteInclui informações sobre o endpoint que foi direcionado pela campanha ou jornada.

Atributo Descrição

client_id O endereço de e-mail do endpoint que relatou o evento.

FacetasInclui informações sobre a mensagem e o tipo de evento.

255

Page 263: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEventos de SMS

Atributo Descrição

email_channel Contém um objeto mail_event, que contém doisobjetos: mail e um objeto que corresponde ao tipo deevento.

MailInclui informações sobre o conteúdo da mensagem de e-mail, bem como metadados sobre a mensagem.

Atributo Descrição

message_id O ID exclusivo da mensagem. O Amazon Pinpoint geraesse ID automaticamente quando aceita a mensagem.

message_send_timestamp A data e a hora em que a mensagem foi enviada, noformato especificado em RFC 822.

from_address O endereço de e-mail do qual a mensagem foi enviada.

destination Uma matriz que contém os endereços de e-mail para osquais a mensagem foi enviada.

headers_truncated Um valor booliano que indica se os cabeçalhos de e-mailforam truncados.

headers Um objeto que contém vários pares de nome-valor quecorrespondem aos cabeçalhos na mensagem. Esseobjeto normalmente contém informações sobre osseguintes cabeçalhos:

• From – O endereço de e-mail do remetente.• To – O endereço de e-mail do destinatário.• Subject – A linha de assunto do e-mail.• MIME-Version – Indica que a mensagem está

formato MIME. Se esse cabeçalho estiver presente, ovalor será sempre 1.0.

• Content-Type – O tipo de mídia MIME do conteúdoda mensagem.

common_headers Contém informações sobre vários cabeçalhos comunsde mensagens de e-mail. As informações podem incluira data em que a mensagem foi enviada e as linhas depara, de e assunto da mensagem.

Eventos de SMSSe o canal SMS estiver habilitado para um projeto, o Amazon Pinpoint pode transmitir dados de eventosobre entregas de mensagens SMS para o projeto.

ExemploO objeto JSON de um evento de SMS contém os dados mostrados no exemplo a seguir.

256

Page 264: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtributos de eventos de SMS

{ "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"}

Atributos de eventos de SMSEsta seção define os atributos incluídos nos dados de fluxo de eventos que o Amazon Pinpoint geraquando você envia mensagens SMS.

Evento

Atributo Descrição

event_type O tipo de evento. Os valores possíveis são:

• _SMS.BUFFERED – a mensagem ainda está emprocesso de entrega ao destinatário.

• _SMS.SUCCESS – a mensagem foi entregue comêxito ao destinatário.

• _SMS.FAILURE – o Amazon Pinpoint não conseguiuentregar a mensagem ao destinatário. Para saber maissobre o erro que impediu a entrega da mensagem,consulte attributes.record_status.

• _SMS.OPTOUT – O cliente recebeu a mensagem erespondeu enviando a palavra-chave de cancelamento(geralmente "STOP").

event_timestamp A hora em que o evento foi relatado, mostrada comohorário do Unix em milissegundos.

257

Page 265: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtributos de eventos de SMS

Atributo Descrição

arrival_timestamp A hora em que o evento foi recebido pelo AmazonPinpoint, mostrada como horário do Unix emmilissegundos.

event_version A versão do esquema do evento JSON.

Tip

Marque esta versão no seu aplicativo deprocessamento de eventos para que você saibaquando atualizar o aplicativo em resposta a umaatualização de esquema.

application Informações sobre o projeto do Amazon Pinpointassociado ao evento. Para obter mais informações,consulte a tabela Aplicativo (p. 258).

client Informações sobre o cliente de aplicativo instaladono dispositivo que relatou o evento. Para obter maisinformações, consulte a tabela Cliente (p. 260).

device Informações sobre o dispositivo que relatou o evento.Para obter mais informações, consulte a tabelaDispositivo (p. 261).

Em caso de eventos gerados ao enviar uma mensagemtransacional, esse objeto está vazio.

session Para eventos de SMS, esse objeto está vazio.

attributes Atributos associados ao evento. Para eventos relatadospor um de seus aplicativos, esse objeto pode incluiratributos personalizados que são definidos peloaplicativo. Para eventos criados ao enviar umacampanha, esse objeto contém atributos associados àcampanha. Para eventos gerados ao enviar mensagenstransacionais, esse objeto contém informaçõesrelacionadas à mensagem em si.

Para obter mais informações, consulte a tabelaAtributos (p. 259).

metrics Métricas adicionais associadas ao evento. Consulte atabela Métricas (p. 261) para obter mais informações.

awsAccountId O ID da conta da AWS usada para enviar a mensagem.

AplicativoInclui informações sobre o projeto do Amazon Pinpoint ao qual o evento está associado e, se aplicável, oSDK usado para relatar o evento.

Atributo Descrição

app_id O ID exclusivo do projeto do Amazon Pinpoint querelatou o evento.

258

Page 266: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtributos de eventos de SMS

Atributo Descrição

sdk O SDK usado para relatar o evento. Se você enviaruma mensagem SMS transacional chamando a API doAmazon Pinpoint diretamente ou usando o console doAmazon Pinpoint, esse objeto estará vazio.

Atributos.Inclui informações sobre os atributos associados ao evento.

Atributo Descrição

sender_request_id Um ID exclusivo associado à solicitação para enviar amensagem SMS.

campaign_activity_id O ID exclusivo da atividade na campanha.

origination_phone_number O número de telefone do qual a mensagem foi enviada.

destination_phone_number O número de telefone para o qual você tentou enviar amensagem.

record_status Informações adicionais sobre o status da mensagem. Ospossíveis valores incluem:

• SUCCESSFUL – a mensagem foi aceita pelaoperadora.

• DELIVERED – a mensagem foi entregue ao dispositivodo destinatário.

• PENDING – a mensagem ainda não foi entregue aodispositivo do destinatário.

• INVALID – o número de telefone de destino é inválido.• UNREACHABLE – o dispositivo do destinatário está

inacessível ou indisponível no momento. Por exemplo,o dispositivo pode estar desligado ou desconectado darede. É possível tentar enviar a mensagem novamentemais tarde.

• UNKNOWN – ocorreu um erro que impediu a entregada mensagem. Esse erro geralmente é temporário, eé possível tentar enviar a mensagem novamente maistarde.

• BLOCKED – o dispositivo do destinatário estábloqueando mensagens SMS do número de origem.

• CARRIER_UNREACHABLE – um problema com arede móvel do destinatário impediu que a mensagemfosse entregue. Esse erro geralmente é temporário, eé possível tentar enviar a mensagem novamente maistarde.

• SPAM – a operadora móvel do destinatário identificouo conteúdo da mensagem como spam e bloqueou aentrega da mensagem.

• INVALID_MESSAGE – o corpo da mensagem SMS éinválido e não pode ser entregue.

259

Page 267: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtributos de eventos de SMS

Atributo Descrição• CARRIER_BLOCKED – a operadora do destinatário

bloqueou a entrega dessa mensagem. Isso geralmenteocorre quando a operadora identifica o conteúdo damensagem como não solicitado ou mal-intencionado.

• TTL_EXPIRED – não foi possível entregar amensagem SMS dentro de um determinado prazo.Esse erro geralmente é temporário, e é possível tentarenviar a mensagem novamente mais tarde.

• MAX_PRICE_EXCEEDED – o envio da mensagemresultaria em uma cobrança que excederia a cotamensal de gastos de SMS de sua conta. É possívelsolicitar um aumento dessa cota concluindo oprocedimento em Solicitar aumentos de sua cota degastos mensais de SMS para o Amazon Pinpoint noGuia do usuário do Amazon Pinpoint.

iso_country_code O país associada ao número de telefone do destinatário,mostrado no formato ISO 3166-1 alpha-2.

treatment_id O ID do tratamento da mensagem, se a mensagem tiversido enviada em uma campanha A/B.

treatment_id Se a mensagem foi enviada usando uma campanha deteste A/B, esse valor representa o número de tratamentoda mensagem. Para mensagens SMS transacionais,esse valor é 0.

number_of_message_parts O número de partes da mensagem que o AmazonPinpoint criou para enviar a mensagem.

Geralmente, as mensagens SMS podem conter apenas160 caracteres GSM-7 ou 67 caracteres não GSM,embora esses limites possam variar de acordo como país . Se você enviar uma mensagem que excedaesses limites, o Amazon Pinpoint dividirá a mensagemautomaticamente em partes menores. Você serácobrado com base no número de partes de mensagensenviadas.

message_id O ID exclusivo que o Amazon Pinpoint gera quandoaceita a mensagem.

message_type O tipo de mensagem. Os valores possíveis sãoPromocional e Transacional. Especifique esse valorao criar uma campanha ou ao enviar mensagenstransacionais usando a operação SendMessages na APIdo Amazon Pinpoint.

campaign_id O ID exclusivo da campanha do Amazon Pinpoint queenviou a mensagem.

ClienteInclui informações sobre o cliente do aplicativo instalado no dispositivo que relatou o evento.

260

Page 268: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtributos de eventos de SMS

Atributo Descrição

client_id Para eventos gerados por aplicativos, esse valor é o IDexclusivo do cliente do aplicativo instalado no dispositivo.Esse ID é gerado automaticamente pelo AWS MobileSDK for iOS e AWS Mobile SDK para Android.

Para eventos gerados ao enviar campanhas emensagens transacionais, esse valor é igual ao ID doendpoint para o qual você enviou a mensagem.

cognito_id O ID exclusivo atribuído para o cliente do aplicativo nopool de identidades Amazon Cognito usado pelo seuaplicativo.

DispositivoInclui informações sobre o dispositivo que relatou o evento.

Atributo Descrição

locale A localidade do dispositivo.

make O make do dispositivo, como Apple ou Samsung.

model O modelo do dispositivo, como iPhone.

platform A plataforma do dispositivo, como ios ou android.

MétricasInclui informações sobre as métricas associadas ao evento.

Atributo Descrição

price_in_millicents_usd O valor cobrado pelo envio da mensagem. Esse preçoé mostrado em milésimos de um centavo dos EstadosUnidos. Por exemplo, se o valor desse atributo for 645,cobraremos 0,645¢ para enviar a mensagem (645 / 1000= 0,645¢ = $0,00645).

Note

Esta propriedade não aparece para mensagenscom um event_type de _SMS.BUFFERED.

261

Page 269: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas compatíveis

Consulta de dados de análise doAmazon Pinpoint

Além de usar as páginas de análises no console do Amazon Pinpoint, é possível usar a API de análise doAmazon Pinpoint para consultar dados de análise para um subconjunto de métricas padrão que forneceminsights sobre tendências relacionadas ao envolvimento de usuários, ao alcance da campanha e muitomais. Essas métricas, também conhecidas como os principais indicadores de desempenho (KPIs), sãovalores mensuráveis que podem ajudar você a monitorar e avaliar o desempenho de seus projetos,campanhas e jornadas.

Se você usar as APIs para consultar dados analíticos, poderá analisar os dados usando a ferramenta derelatório de sua escolha, sem precisar entrar no console do Amazon Pinpoint ou analisar dados brutos deeventos de fontes como fluxos do Amazon Kinesis. Por exemplo, você pode criar um painel personalizadoque exiba resultados semanais da campanha ou forneça análises detalhadas sobre as taxas de entregapara suas campanhas.

Você pode consultar os dados usando a API REST do Amazon Pinpoint, a AWS Command Line Interface(AWS CLI) ou um AWS SDK. Para consultar os dados, envie uma solicitação para a API do AmazonPinpoint e use parâmetros suportados para especificar os dados que deseja e quaisquer filtros que desejaaplicar. Depois de enviar sua consulta, o Amazon Pinpoint retorna os resultados da consulta em umaresposta JSON. Em seguida, você pode passar os resultados para outro serviço ou aplicativo para umaanálise mais aprofundada, armazenamento ou relatórios.

Métricas compatíveisO Amazon Pinpoint fornece acesso programático aos dados analíticos para diversos tipos de métricaspadrão:

• Métricas de aplicativo – essas métricas fornecem insights sobre tendências para todas as campanhase mensagens transacionais associadas a um projeto. Por exemplo, você pode usar uma métrica deaplicativo para ver um detalhamento do número de mensagens que foram abertas pelos destinatáriospara cada campanha associada a um projeto. Para acessar os dados de uma métrica de aplicativo, useo recurso Métricas de aplicativo da API do Amazon Pinpoint.

• Métricas de campanha – essas métricas fornecem insights sobre o desempenho de campanhasindividuais. Por exemplo, é possível usar uma métrica de campanha para determinar para quantosendpoints uma mensagem de campanha foi enviada. Para acessar os dados de uma métrica decampanha, use o recurso Métricas de campanha da API do Amazon Pinpoint.

• Métricas de engajamento de jornada – essas métricas fornecem informações sobre o desempenho dejornadas individuais. Por exemplo, você pode usar uma métrica de engajamento de jornada para obterum detalhamento do número de mensagens que foram abertas pelos participantes em cada atividade deuma jornada. Para acessar os dados de uma métrica de engajamento de jornada, use o recurso Métricasde engajamento de jornada da API do Amazon Pinpoint.

• Métricas de execução de jornada – essas métricas fornecem informações sobre as tendências departicipação para jornadas individuais. Por exemplo, você pode usar uma métrica de execução dejornada para determinar quantos participantes estão realizando as atividades na jornada. Para acessaros dados de uma métrica de execução de jornada, use o recurso Métricas de execução de jornada daAPI do Amazon Pinpoint.

• Métricas de execução de atividades da jornada – essas métricas fornecem informações sobre astendências de participação para atividades individuais de uma jornada. Por exemplo, você pode usar

262

Page 270: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorNoções básicas de consulta

uma métrica de execução de atividades da jornada para determinar quantos participantes concluíramuma atividade. Para acessar os dados de uma métrica de execução de atividades da jornada, use orecurso Métricas de execução de atividades da jornada da API do Amazon Pinpoint.

Para obter uma lista completa de métricas padrão que você pode consultar programaticamente, consulteMétricas padrão (p. 266).

O Amazon Pinpoint coleta e agrega dados automaticamente dados para todas as métricas compatíveis epara todos os seus projetos, campanhas e jornadas. Além disso, os dados são atualizados continuamente,o que resulta em um período de latência de dados que é limitado a cerca de duas horas. Observe, noentanto, que pode haver latência de dados adicional para determinadas métricas. Isso ocorre porque osdados de algumas métricas são baseados em informações que recebemos dos provedores de e-mail dosdestinatários. Alguns provedores nos enviam essas informações imediatamente, enquanto outros enviamcom menos frequência.

O Amazon Pinpoint armazena os dados por 90 dias. Para armazenar os dados por mais de 90 dias ou paraacessar dados analíticos brutos em tempo real, você pode configurar um projeto do Amazon Pinpoint paratransmitir dados de eventos para Amazon Kinesis Data Streams ou Amazon Kinesis Data Firehose. Paraobter informações sobre como configurar fluxos de eventos, consulte Streaming de eventos do AmazonPinpoint para Kinesis (p. 236).

Noções básicas de consultaPara consultar os dados de uma métrica, você envia uma solicitação get para o recurso de métricasapropriado da API do Amazon Pinpoint. Na solicitação, você define sua consulta usando parâmetroscompatíveis para os seguintes componentes de consulta:

• Projeto – especifique um projeto fornecendo o ID do projeto como o valor do parâmetro application-id. Esse parâmetro é necessário para todas as métricas.

• Campanha – especifique uma campanha fornecendo o ID da campanha como o valor do parâmetrocampaign-id. Esse parâmetro é obrigatório somente para métricas de campanha.

• Jornada – especifique uma jornada fornecendo o ID da jornada como o valor do parâmetro journey-id. Esse parâmetro é necessário somente para métricas de engajamento e execução da jornada emétricas de execução de atividades da jornada.

• Atividade da jornada – especifique uma atividade da jornada fornecendo o ID da atividade da jornadacomo o valor do parâmetro journey-activity-id. Esse parâmetro é obrigatório somente paramétricas de execução de atividades da jornada.

• Intervalo de datas – para filtrar opcionalmente os dados por intervalo de datas, forneça a primeira eúltima data e hora do intervalo de datas usando os parâmetros de hora inicial e final compatíveis. Osvalores devem estar no formato ISO 8601 estendido e usar o Tempo Universal Coordenado (UTC) —por exemplo, 2019-07-19T20:00:00Z para 8:00 PM UTC 19 de julho de 2019.

Os intervalos de datas são inclusivos e deve estar limitados a 31 dias ou menos. Adicionalmente, aprimeira data e hora devem ser inferiores a 90 dias a partir do dia atual. Se você não especificar umintervalo de datas, o Amazon Pinpoint retornará os dados para os 31 dias corridos anteriores. Osparâmetros de intervalo de datas são suportados por todas as métricas, exceto métricas de execução dejornada e métricas de execução de atividades da jornada.

• Métrica – especifique a métrica fornecendo o nome da métrica como o valor do parâmetro kpi-name.Esse valor descreve a métrica associada e consiste em dois ou mais termos, que são compostospor caracteres alfanuméricos minúsculos, separados por um hífen. Os exemplos são email-open-rate e successful-delivery-rate. Esse parâmetro é necessário para todas as métricas, excetométricas de execução de jornada e métricas de execução de atividades da jornada. Para obter umalista completa das métricas compatíveis e o valor de kpi-name a ser usado para cada uma, consulteMétricas padrão (p. 266).

263

Page 271: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorPolíticas do IAM

Depois de enviar sua consulta, o Amazon Pinpoint retorna os resultados da consulta em uma respostaJSON. Na resposta, a estrutura dos resultados varia dependendo da métrica consultada.

Algumas métricas fornecem apenas um valor, por exemplo, o número de mensagens que foram entreguespor uma campanha. Outras métricas fornecem vários valores e normalmente agrupam esses valores porum campo relevante, por exemplo, o número de mensagens que foram entregues por cada execução deuma campanha, agrupadas por campanha. Se uma métrica fornecer e agrupar vários valores, a respostaJSON incluirá um campo que indica qual campo foi usado para agrupar os dados. Para saber mais sobre aestrutura dos resultados da consulta, consulte Usar resultados da consulta (p. 311).

Políticas do IAM para consulta de dados de análisedo Amazon Pinpoint

Usando a API do Amazon Pinpoint, você pode consultar dados analíticos para um subconjunto de métricaspadrão, também conhecidos como indicadores-chave de desempenho (KPIs) que se aplicam a projetos,campanhas e jornadas do Amazon Pinpoint. Essas métricas podem ajudá-lo a monitorar e avaliar odesempenho de projetos, campanhas e jornadas.

Para gerenciar o acesso a esses dados, você pode criar políticas do AWS Identity and AccessManagement (IAM) que definem permissões para funções do IAM ou usuários autorizados a acessar osdados. Para oferecer suporte ao controle granular de acesso a esses dados, o Amazon Pinpoint fornecevárias ações distintas que você pode especificar em políticas do IAM. Há uma ação distinta para visualizardados analíticos no console do Amazon Pinpoint (mobiletargeting:GetReports) e há outras açõespara acessar dados analíticos programaticamente usando a API do Amazon Pinpoint.

Para criar políticas do IAM que gerenciem o acesso aos dados analíticos, você pode usar o Console degerenciamento da AWS, a AWS CLI ou a API do IAM. Observe que a guia Visual editor (Editor visual) noConsole de gerenciamento da AWS atualmente não inclui ações para visualização ou consulta de dadosanalíticos do Amazon Pinpoint. No entanto, você pode adicionar as ações necessárias às políticas do IAMmanualmente usando a guia JSON no console.

Por exemplo, a política a seguir permite o acesso programático a todos os dados analíticos de todos osseus projetos, campanhas e jornadas em todas as regiões da AWS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QueryAllAnalytics", "Effect": "Allow", "Action": [ "mobiletargeting:GetApplicationDateRangeKpi", "mobiletargeting:GetCampaignDateRangeKpi", "mobiletargeting:GetJourneyDateRangeKpi", "mobiletargeting:GetJourneyExecutionMetrics", "mobiletargeting:GetJourneyExecutionActivityMetrics" ], "Resource": [ "arn:aws:mobiletargeting:*:accountId:apps/*/kpis/*", "arn:aws:mobiletargeting:*:accountId:apps/*/campaigns/*/kpis/*", "arn:aws:mobiletargeting:*:accountId:apps/*/journeys/*/kpis/*", "arn:aws:mobiletargeting:*:accountId:apps/*/journeys/*/execution-metrics", "arn:aws:mobiletargeting:*:accountId:apps/*/journeys/*/activities/*/execution-metrics" ] } ]}

264

Page 272: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorPolíticas do IAM

Onde accountId é o ID da sua conta da AWS.

No entanto, como prática recomendada, você deve criar políticas que sigam o princípio de privilégiomínimo. Em outras palavras, você deve criar políticas que incluem somente as permissões necessáriaspara executar uma tarefa específica. Para apoiar esta prática e implementar um controle mais granular,você pode restringir o acesso programático aos dados analíticos para apenas um projeto específico emuma região específica da AWS, por exemplo:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QueryProjectAnalytics", "Effect": "Allow", "Action": [ "mobiletargeting:GetApplicationDateRangeKpi", "mobiletargeting:GetCampaignDateRangeKpi", "mobiletargeting:GetJourneyDateRangeKpi", "mobiletargeting:GetJourneyExecutionMetrics", "mobiletargeting:GetJourneyExecutionActivityMetrics" ], "Resource": [ "arn:aws:mobiletargeting:region:accountId:apps/projectId/kpis/*", "arn:aws:mobiletargeting:region:accountId:apps/projectId/campaigns/*/kpis/*", "arn:aws:mobiletargeting:region:accountId:apps/projectId/journeys/*/kpis/*", "arn:aws:mobiletargeting:region:accountId:apps/projectId/journeys/*/execution-metrics", "arn:aws:mobiletargeting:region:accountId:apps/projectId/journeys/*/activities/*/execution-metrics" ] } ]}

Onde:

• região é o nome da região da AWS que hospeda o projeto.• accountId é o ID da conta da AWS.• projectId é o identificador do projeto ao qual você deseja fornecer acesso.

Da mesma forma, a política de exemplo a seguir permite acesso programático aos dados analíticos apenaspara uma campanha específica:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QueryCampaignAnalytics", "Effect": "Allow", "Action": "mobiletargeting:GetCampaignDateRangeKpi", "Resource": "arn:aws:mobiletargeting:region:accountId:apps/projectId/campaigns/campaignId/kpis/*" } ]}

Onde:

• região é o nome da região da AWS que hospeda o projeto.

265

Page 273: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas padrão

• accountId é o ID da conta da AWS.• projectId é o identificador do projeto associado à campanha.• campaignId é o identificador da campanha à qual você deseja fornecer acesso.

E a política de exemplo a seguir permite o acesso programático a todos os dados analíticos, tanto deengajamento quanto de execução, para uma determinada jornada e as atividades que compõem essajornada:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "QueryJourneyAnalytics", "Effect": "Allow", "Action": [ "mobiletargeting:GetJourneyDateRangeKpi", "mobiletargeting:GetJourneyExecutionMetrics", "mobiletargeting:GetJourneyExecutionActivityMetrics" ], "Resource": [ "arn:aws:mobiletargeting:region:accountId:apps/projectId/journeys/journeyId/kpis/*", "arn:aws:mobiletargeting:region:accountId:apps/projectId/journeys/journeyId/execution-metrics", "arn:aws:mobiletargeting:region:accountId:apps/projectId/journeys/journeyId/activities/*/execution-metrics" ] } ]}

Onde:

• região é o nome da região da AWS que hospeda o projeto.• accountId é o ID da conta da AWS.• projectId é o identificador do projeto associado à jornada.• journeyId é o identificador da jornada à qual você deseja fornecer acesso.

Para obter uma lista completa de ações da API do Amazon Pinpoint que você pode usar em políticasdo IAM, consulte Ações do Amazon Pinpoint para políticas do IAM (p. 358). Para obter informaçõesdetalhadas sobre como criar e gerenciar políticas do IAM, consulte o Guia do usuário do IAM.

Métricas de análise padrão do Amazon PinpointVocê pode usar as APIs de análise do Amazon Pinpoint para consultar dados analíticos de um subconjuntode métricas padrão que se aplicam a projetos, campanhas e jornadas do Amazon Pinpoint. Essasmétricas, também conhecidas como os principais indicadores de desempenho (KPIs), são valoresmensuráveis que podem ajudar você a monitorar e avaliar o desempenho de projetos, campanhas ejornadas.

O Amazon Pinpoint fornece acesso programático aos dados analíticos para diversos tipos de métricaspadrão:

• Métricas de aplicativo – essas métricas fornecem insights sobre tendências para todas as campanhase mensagens transacionais associadas a um projeto, também conhecido como um aplicativo.

266

Page 274: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de aplicativo para campanhas

Por exemplo, você pode usar uma métrica de aplicativo para ver um detalhamento do número demensagens que foram abertas pelos destinatários para cada campanha associada a um projeto.

• Métricas de campanha – essas métricas fornecem insights sobre o desempenho de campanhasindividuais. Por exemplo, você pode usar uma métrica de campanha para determinar para quantosendpoints uma mensagem de campanha foi enviada ou quantas dessas mensagens foram entreguesnos endpoints desejados.

• Métricas de engajamento de jornada – essas métricas fornecem informações sobre o desempenho dejornadas individuais. Por exemplo, você pode usar uma métrica de engajamento de jornada para obterum detalhamento do número de mensagens que foram abertas pelos participantes em cada atividade deuma jornada.

• Métricas de execução de jornada – essas métricas fornecem informações sobre as tendências departicipação para jornadas individuais. Por exemplo, você pode usar uma métrica de execução dejornada para determinar quantos participantes iniciaram uma jornada.

• Métricas de execução de atividades da jornada – essas métricas fornecem informações sobre astendências de participação para atividades individuais de uma jornada. Por exemplo, você pode usaruma métrica de execução de atividades da jornada para determinar quantos participantes iniciaram umaatividade e quantos participantes concluíram cada caminho em uma atividade.

Os tópicos desta seção listam e descrevem as métricas individuais que você pode consultar para cada tipode métrica.

Tópicos• Métricas de aplicativo para campanhas (p. 267)• Métricas de aplicativo para mensagens de e-mail transacionais (p. 271)• Métricas de aplicativo para mensagens SMS transacionais (p. 278)• Métricas de campanha (p. 280)• Métricas de engajamento de jornada (p. 286)• Métricas de execução de jornada (p. 291)• Métricas de execução de atividades da jornada (p. 292)

Métricas de aplicativo para campanhasA tabela a seguir lista e descreve as métricas de aplicativo padrão que você pode consultar para avaliar odesempenho de todas as campanhas associadas a um projeto do Amazon Pinpoint. Para consultar dadospara essas métricas, use o recurso Métricas de aplicativo da API do Amazon Pinpoint. A coluna kpi-nameda tabela indica o valor a ser usado para o parâmetro kpi-name na consulta.

Métrica kpi-name Descrição

Taxa de entrega successful-delivery-rate Para todas as campanhasque estão associadas a umprojeto, a porcentagem demensagens que foram entreguesaos destinatários.

Essa métrica é calculada comoo número de mensagens queforam enviadas por todas ascampanhas para um projeto eentregues aos destinatários,dividido pelo número de

267

Page 275: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de aplicativo para campanhas

Métrica kpi-name Descriçãomensagens que foram enviadaspor todas essas campanhas.

Taxa de entrega, agrupada pordata

successful-delivery-rate-grouped-by-date

Para todas as campanhas queestão associadas a um projeto,a porcentagem de mensagensque foram entregues aosdestinatários para cada dia nointervalo de datas especificado.

Essa métrica é calculada comoo número de mensagens queforam enviadas por todas ascampanhas para um projetoe entregue aos destinatários,dividido pelo número demensagens que foram enviadaspor todas essas campanhas,para cada dia no intervalo dedatas especificado.

Os resultados da consulta paraessa métrica são agrupados pordia do calendário, no formatoestendido ISO 8601.

Taxa de e-mails abertos email-open-rate Para todas as campanhas queestão associadas a um projeto, aporcentagem de mensagens dee-mail que foram abertas pelosdestinatários.

Essa métrica é calculada comoo número de mensagens dee-mail que foram enviadaspor todas as campanhas paraum projeto e abertas pelosdestinatários, dividido pelonúmero de mensagens de e-mailque foram enviadas por todasessas campanhas e entreguesaos destinatários.

268

Page 276: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de aplicativo para campanhas

Métrica kpi-name Descrição

Taxa de abertura de e-mail,agrupados por campanha

email-open-rate-grouped-by-campaign

Para cada campanha queestá associada a um projeto, aporcentagem de mensagens dee-mail que foram abertas pelosdestinatários.

Essa métrica é calculada comoo número de mensagens de e-mail que foram enviadas poruma campanha e aberta pelosdestinatários, dividido pelonúmero de mensagens de e-mail que foram enviadas pelacampanha e entregues aosdestinatários.

Os resultados da consulta paraessa métrica são agrupados porID de campanha (CampaignId),que é uma string que identificaexclusivamente uma campanha.

Entregas de endpoint unique-deliveries Para todas as campanhasassociadas a um projeto, onúmero de endpoints exclusivospara os quais as mensagensforam enviadas.

Entregas de endpoint, agrupadaspor campanha

unique-deliveries-grouped-by-campaign

Para cada campanha associadaa um projeto, o número deendpoints exclusivos para osquais as mensagens foramenviadas.

Os resultados da consulta paraessa métrica são agrupados porID de campanha (CampaignId),que é uma string que identificaexclusivamente uma campanha.

Entregas de endpoint, agrupadaspor data

unique-deliveries-grouped-by-date

Para todas as campanhasassociadas a um projeto, onúmero de endpoints exclusivospara os quais as mensagensforam enviadas, para cada dia nointervalo de datas especificado.

Os resultados da consulta paraessa métrica são agrupados pordia do calendário, no formatoestendido ISO 8601.

269

Page 277: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de aplicativo para campanhas

Métrica kpi-name Descrição

Mensagens entregues,agrupadas por campanha

successful-deliveries-grouped-by-campaign

Para cada campanha queestá associada a um projeto,o número de mensagensque foram entregues aosdestinatários.

Essa métrica é calculadacomo o número de mensagensque foram enviadas por umacampanha, menos o númerode mensagens que foramenviadas pela campanha enão puderam ser entreguesaos destinatários devido a umadevolução definitiva.

Os resultados da consulta paraessa métrica são agrupados porID de campanha (CampaignId),que é uma string que identificaexclusivamente uma campanha.

Taxa de abertura de push push-open-rate Para todas as campanhas queestão associadas a um projeto,a porcentagem de notificaçõespor push que foram abertas pelosdestinatários.

Essa métrica é calculada comoo número de notificações porpush que foram enviadas portodas as campanhas paraum projeto e abertas pelosdestinatários, dividido pelonúmero de notificações por pushque foram enviadas por todasessas campanhas e entreguesaos destinatários.

270

Page 278: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de aplicativo para

mensagens de e-mail transacionais

Métrica kpi-name Descrição

Taxa de abertura de notificaçõespor push, agrupada porcampanha

push-open-rate-grouped-by-campaign

Para cada campanha queestá associada a um projeto, aporcentagem de notificações porpush que foram abertas pelosdestinatários.

Essa métrica é calculada comoo número de notificações porpush que foram enviadas poruma campanha e abertas pelosdestinatários, dividido pelonúmero de notificações porpush que foram enviadas pelacampanha e entregues aosdestinatários.

Os resultados da consulta paraessa métrica são agrupados porID de campanha (CampaignId),que é uma string que identificaexclusivamente uma campanha.

Métricas de aplicativo para mensagens de e-mailtransacionaisA tabela a seguir lista e descreve métricas de aplicativo padrão que você pode consultar para monitorar astendências de todas as mensagens de e-mail transacionais associadas a um projeto do Amazon Pinpoint.Para consultar dados para essas métricas, use o recurso Métricas de aplicativo da API do AmazonPinpoint. A coluna kpi-name da tabela indica o valor a ser usado para o parâmetro kpi-name na consulta.

Observe que essas métricas não fornecem dados sobre mensagens de e-mail que foram enviadaspor campanhas. Elas fornecem dados somente sobre mensagens de e-mail transacionais. Paraconsultar dados de mensagens que foram enviadas por uma ou mais campanhas, use uma métrica decampanha (p. 280) ou uma métrica de aplicativo para campanhas (p. 267).

Métrica kpi-name Descrição

Cliques txn-emails-clicked O número de vezes que osdestinatários clicaram em linksnas mensagens: Se um únicodestinatário clicou em vários linksem uma mensagem, ou clicouno mesmo link mais de umavez, cada clique será incluído nacontagem.

Cliques, agrupados por data txn-emails-clicked-grouped-by-date

O número de vezes que osdestinatários clicaram emlinks nas mensagens, paracada dia no intervalo de datasespecificado. Se um únicodestinatário clicou em vários linksem uma mensagem, ou clicou

271

Page 279: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de aplicativo para

mensagens de e-mail transacionais

Métrica kpi-name Descriçãono mesmo link mais de umavez, cada clique será incluído nacontagem.

Os resultados da consulta paraessa métrica são agrupados pordia do calendário, no formatoestendido ISO 8601.

Taxa de reclamações txn-emails-complaint-rate

A porcentagem de mensagensque foram relatadas pelosdestinatários como e-mails nãosolicitados ou indesejados.

Essa métrica é calculadacomo o número de mensagensque foram relatadas pelosdestinatários como e-mails nãosolicitados ou indesejados,dividido pelo número demensagens que foram enviadas.

Taxa de reclamações, agrupadapor data

txn-emails-complaint-rate-grouped-by-date

A porcentagem de mensagensque foram relatadas pelosdestinatários como e-mails nãosolicitados ou indesejados, paracada dia no intervalo de datasespecificado.

Essa métrica é calculadacomo o número de mensagensque foram relatadas pelosdestinatários como e-mails nãosolicitados ou indesejados,dividido pelo número demensagens que foram enviadas,para cada dia no intervalo dedatas especificado.

Os resultados da consulta paraessa métrica são agrupados pordia do calendário, no formatoestendido ISO 8601.

Reclamações txn-emails-with-complaints

O número de mensagensque foram relatadas pelosdestinatários como e-mail nãosolicitado ou indesejado.

272

Page 280: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de aplicativo para

mensagens de e-mail transacionais

Métrica kpi-name Descrição

Reclamações, agrupadas pordata

txn-emails-with-complaints-grouped-by-date

O número de mensagensque foram relatadas pelosdestinatários como e-mail nãosolicitado ou indesejado, paracada dia no intervalo de datasespecificado.

Os resultados da consulta paraessa métrica são agrupados pordia do calendário, no formatoestendido ISO 8601.

Entregas txn-emails-delivered O número de mensagensentregues aos destinatários:

Essa métrica é calculada comoo número de mensagens queforam enviadas, menos o númerode mensagens que não puderamser entregues devido a umadevolução flexível ou definitivaou porque foram rejeitadas. Umamensagem será rejeitada se oAmazon Pinpoint determinar quea mensagem contém malware.O Amazon Pinpoint não tentaenviar mensagens rejeitadas.

Entregas, agrupadas por data txn-emails-delivered-grouped-by-date

O número de mensagensque foram entregues aosdestinatários, para cada dia nointervalo de datas especificado.

Essa métrica é calculada comoo número de mensagens queforam enviadas, menos o númerode mensagens que não puderamser entregues devido a umadevolução flexível ou definitivaou porque foram rejeitadas,para cada dia no intervalode datas especificado. Umamensagem será rejeitada se oAmazon Pinpoint determinar quea mensagem contém malware.O Amazon Pinpoint não tentaenviar mensagens rejeitadas.

Os resultados da consulta paraessa métrica são agrupados pordia do calendário, no formatoestendido ISO 8601.

273

Page 281: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de aplicativo para

mensagens de e-mail transacionais

Métrica kpi-name Descrição

Taxa de entrega txn-emails-delivery-rate A porcentagem de mensagensque foram entregues aosdestinatários.

Essa métrica é calculada comoo número de mensagens queforam enviadas e entreguesaos destinatários, dividido pelonúmero de mensagens queforam enviadas.

Taxa de entrega, agrupada pordata

txn-emails-delivery-rate-grouped-by-date

A porcentagem de mensagensque foram entregues aosdestinatários, para cada dia nointervalo de datas especificado.

Essa métrica é calculada comoo número de mensagens queforam enviadas e entreguesaos destinatários, dividido pelonúmero de mensagens queforam enviadas, para cada dia nointervalo de datas especificado.

Os resultados da consulta paraessa métrica são agrupados pordia do calendário, no formatoestendido ISO 8601.

Devoluções definitivas txn-emails-hard-bounced O número de mensagens quenão puderam ser entreguesaos destinatários devido auma devolução definitiva. Umadevolução definitiva ocorreráse um problema persistenteimpedir que uma mensagemseja entregue, por exemplo, seo endereço de e-mail de umdestinatário não existir.

274

Page 282: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de aplicativo para

mensagens de e-mail transacionais

Métrica kpi-name Descrição

Devoluções definitivas,agrupadas por data

txn-emails-hard-bounced-grouped-by-date

O número de mensagens quenão puderam ser entreguesaos destinatários devido auma devolução definitiva, paracada dia no intervalo de datasespecificado. Uma devoluçãodefinitiva ocorrerá se umproblema persistente impedir queuma mensagem seja entregue,por exemplo, se o endereço dee-mail de um destinatário nãoexistir.

Os resultados da consulta paraessa métrica são agrupados pordia do calendário, no formatoestendido ISO 8601.

Aberturas txn-emails-opened O número de mensagensque foram abertas pelosdestinatários.

Aberturas, agrupadas por data txn-emails-opened-grouped-by-date

O número de mensagensque foram abertas pelosdestinatários, para cada dia nointervalo de datas especificado.

Os resultados da consulta paraessa métrica são agrupados pordia do calendário, no formatoestendido ISO 8601.

Envios txn-emails-sent O número de mensagensenviadas.

Envios, agrupados por data txn-emails-sent-grouped-by-date

O número de mensagens queforam enviadas, para cada dia nointervalo de datas especificado.

Os resultados da consulta paraessa métrica são agrupados pordia do calendário, no formatoestendido ISO 8601.

Devoluções flexíveis txn-emails-soft-bounced O número de mensagens quenão puderam ser entreguesaos destinatários devido auma devolução flexível. Umadevolução flexível ocorreráse um problema temporárioimpedir que uma mensagemseja entregue, por exemplo,se a caixa de entrada de umdestinatário estiver cheia ou oservidor de recebimento estivertemporariamente indisponível.

275

Page 283: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de aplicativo para

mensagens de e-mail transacionais

Métrica kpi-name Descrição

Devoluções flexíveis, agrupadaspor data

txn-emails-soft-bounced-grouped-by-date

O número de mensagens quenão puderam ser entreguesaos destinatários devido auma devolução flexível, paracada dia no intervalo de datasespecificado. Uma devoluçãoflexível ocorrerá se um problematemporário impedir que umamensagem seja entregue, porexemplo, se a caixa de entradade um destinatário estiver cheiaou o servidor de recebimentoestiver temporariamenteindisponível.

Os resultados da consulta paraessa métrica são agrupados pordia do calendário, no formatoestendido ISO 8601.

Eventos exclusivos de clique deusuário

txn-emails-unique-clicks O número de destinatáriosexclusivos (endpoints)que clicaram em links nasmensagens.

Ao contrário da métrica Clicks(Cliques), essa métrica informao número de destinatáriosexclusivos que clicaram emlinks, e não o número de eventosde clique que ocorreram.Por exemplo, se um únicodestinatário clicou em vários linksna mesma mensagem ou clicouno mesmo link mais de uma vez,essa métrica relatará apenasum evento de clique para essedestinatário.

276

Page 284: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de aplicativo para

mensagens de e-mail transacionais

Métrica kpi-name Descrição

Eventos exclusivos de clique deusuário, agrupados por data

txn-emails-unique-clicks-grouped-by-date

O número de destinatáriosexclusivos (endpoints)que clicaram em links emmensagens, para cada dia nointervalo de datas especificado.

Ao contrário da métrica Clicks,grouped by date (Cliques,agrupados por data) essamétrica informa o número dedestinatários exclusivos queclicaram em links, e não onúmero de eventos de cliqueque ocorreram. Por exemplo,se um único destinatário clicouem vários links na mesmamensagem ou clicou no mesmolink mais de uma vez, essamétrica relatará apenas umevento de clique para essedestinatário.

Os resultados da consulta paraessa métrica são agrupados pordia do calendário, no formatoestendido ISO 8601.

Eventos de abertura de usuárioexclusivos

txn-emails-unique-opens O número de destinatáriosexclusivos (endpoints) queabriram mensagens.

Ao contrário da métrica Opens(Aberturas), essa métrica informao número de destinatáriosexclusivos que abrirammensagens, não o númerode eventos de abertura queocorreram. Por exemplo, se umúnico destinatário abrir a mesmamensagem várias vezes, essamétrica relatará apenas umevento de abertura para essedestinatário.

277

Page 285: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de aplicativo para mensagens SMS transacionais

Métrica kpi-name Descrição

Eventos de abertura de usuárioexclusivos, agrupados por data

txn-emails-unique-opens-grouped-by-date

O número de destinatáriosexclusivos (endpoints) queabriram mensagens, paracada dia no intervalo de datasespecificado.

Ao contrário da métrica Opens,grouped by date (Aberturas,agrupadas por data), essamétrica informa o número dedestinatários exclusivos queabriram mensagens, não onúmero de eventos de aberturaque ocorreram. Por exemplo,se um único destinatário abrir amesma mensagem várias vezes,essa métrica relatará apenas umevento de abertura para essedestinatário.

Os resultados da consulta paraessa métrica são agrupados pordia do calendário, no formatoestendido ISO 8601.

Métricas de aplicativo para mensagens SMStransacionaisA tabela a seguir lista e descreve métricas de aplicativo padrão que você pode consultar para monitorar astendências de todas as mensagens SMS transacionais associadas a um projeto do Amazon Pinpoint. Paraconsultar dados para essas métricas, use o recurso Métricas de aplicativo da API do Amazon Pinpoint. Acoluna kpi-name da tabela indica o valor a ser usado para o parâmetro kpi-name na consulta.

Observe que essas métricas não fornecem dados sobre mensagens SMS que foram enviadas porcampanhas. Elas fornecem dados somente sobre mensagens SMS transacionais. Para consultar dados demensagens que foram enviadas por uma ou mais campanhas, use uma métrica de campanha (p. 280) ouuma métrica de aplicativo para campanhas (p. 267).

Métrica kpi-name Descrição

Preço médio, agrupado por país txn-sms-average-price-grouped-by-country

O custo médio, em dólaresamericanos, do envio de cadamensagem, para cada paísou região de destino dasmensagens.

Essa métrica é calculadacomo o custo total de todasas mensagens enviadas aosdestinatários em cada país ouregião, dividido pelo númerode mensagens enviadas aos

278

Page 286: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de aplicativo para mensagens SMS transacionais

Métrica kpi-name Descriçãodestinatários em cada um dessespaíses e regiões.

Os resultados da consulta dessamétrica são agrupados por paísou região, no formato ISO 3166-1alfa-2.

Entregas txn-sms-delivered O número de mensagensentregues aos destinatários:

Entregas, agrupadas por país txn-sms-delivered-grouped-by-country

O número de mensagensque foram entregues aosdestinatários, para cada paísou região de destino dasmensagens.

Os resultados da consulta dessamétrica são agrupados por paísou região, no formato ISO 3166-1alfa-2.

Entregas, agrupadas por data txn-sms-delivered-grouped-by-date

O número de mensagensque foram entregues aosdestinatários, para cada dia nointervalo de datas especificado.

Os resultados da consulta paraessa métrica são agrupados pordia do calendário, no formatoestendido ISO 8601.

Erros de entrega txn-sms-error-distribution

O número de vezes que um erroocorreu durante a tentativa deentrega das mensagens, paracada tipo de erro ocorrido.

Os resultados da consulta dessamétrica são agrupados porcódigo de erro, para cada tipo deerro ocorrido.

Taxa de entrega txn-sms-delivery-rate A porcentagem de mensagensque foram entregues aosdestinatários.

Essa métrica é calculada comoo número de mensagens queforam enviadas e entreguesaos destinatários, dividido pelonúmero de mensagens queforam enviadas.

279

Page 287: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de campanha

Métrica kpi-name Descrição

Taxa de entrega, agrupada pordata

txn-sms-delivery-rate-grouped-by-date

A porcentagem de mensagensque foram entregues aosdestinatários, para cada dia nointervalo de datas especificado.

Essa métrica é calculada comoo número de mensagens queforam enviadas e entreguesaos destinatários, dividido pelonúmero de mensagens queforam enviadas, para cada dia nointervalo de datas especificado.

Os resultados da consulta paraessa métrica são agrupados pordia do calendário, no formatoestendido ISO 8601.

Envios txn-sms-sent O número de mensagensenviadas.

Envios, agrupados por país txn-sms-sent-grouped-by-country

O número de mensagens queforam enviadas, para cadapaís ou região de destino dasmensagens.

Os resultados da consulta dessamétrica são agrupados por paísou região, no formato ISO 3166-1alfa-2.

Envios, agrupados por data txn-sms-sent-grouped-by-date

O número de mensagens queforam enviadas, para cada dia nointervalo de datas especificado.

Os resultados da consulta paraessa métrica são agrupados pordia do calendário, no formatoestendido ISO 8601.

Preço total, agrupado por país txn-sms-total-price-grouped-by-country

O custo total, em dólaresamericanos, do envio dasmensagens, para cada paísou região de destino dasmensagens.

Os resultados da consulta dessamétrica são agrupados por paísou região, no formato ISO 3166-1alfa-2.

Métricas de campanhaA tabela a seguir lista e descreve métricas de campanha padrão que você pode consultar para avaliaro desempenho de uma campanha individual. Para consultar dados para essas métricas, use o recurso

280

Page 288: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de campanha

Métricas de campanha da API do Amazon Pinpoint. A coluna kpi-name da tabela indica o valor a ser usadopara o parâmetro kpi-name na consulta.

Métrica kpi-name Descrição

Taxa de devolução hard-bounce-rate Para todas as execuções decampanha, a porcentagem demensagens de e-mail que nãopuderam ser entregues aosdestinatários. Essa métricaapenas calcula devoluçõesdefinitivas, ou seja, o endereçode e-mail do destinatário tinhaum problema permanente queimpediu a entrega da mensagem.

Essa métrica é calculada como onúmero de mensagens de e-maildevolvidas que foram enviadaspor todas as execuções decampanha, dividido pelo númerode mensagens de e-mail queforam enviadas por todas essasexecuções de campanha.

Taxa de devolução, agrupadapor execução de campanha

hard-bounce-rate-grouped-by-campaign-activity

Para cada execução decampanha, a porcentagemde mensagens de e-mail quenão puderam ser entreguesao destinatários. Essa métricaapenas calcula devoluçõesdefinitivas, ou seja, o endereçode e-mail do destinatário tinhaum problema permanente queimpediu a entrega da mensagem.

Essa métrica é calculada comoo número de mensagens dee-mail devolvidas que foramenviadas por uma execução decampanha, dividido pelo númerode mensagens de e-mail queforam enviadas pela execuçãode campanha.

Os resultados da consulta paraessa métrica são agrupados porID de atividade de campanha(CampaignActivityId),que é uma string que identificaexclusivamente uma execuçãode campanha.

Taxa de entrega successful-delivery-rate Para todas as execuções decampanha, a porcentagem demensagens que foram entreguesaos destinatários.

281

Page 289: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de campanha

Métrica kpi-name DescriçãoEssa métrica é calculado comoo número de mensagens queforam enviadas por todas asexecuções de campanha eentregues aos destinatários,dividido pelo número demensagens que foram enviadospor todas essas execuções decampanha.

Taxa de entrega, agrupada porexecução de campanha

successful-delivery-rate-grouped-by-campaign-activity

Para cada execução decampanha, a porcentagem demensagens que foram entreguesaos destinatários.

Essa métrica é calculadocomo o número de mensagensque foram enviadas por umaexecução de campanha eentregues aos destinatários,dividido pelo número demensagens que foram enviadaspela execução de campanha.

Os resultados da consulta paraessa métrica são agrupados porID de atividade de campanha(CampaignActivityId),que é uma string que identificaexclusivamente uma execuçãode campanha.

Taxa de entrega, agrupada pordata

successful-delivery-rate-grouped-by-date

Para todas as execuções decampanha, a porcentagemde mensagens que foramentregues aos destinatários paracada dia no intervalo de datasespecificado.

Essa métrica é calculada comoo número de mensagens queforam enviadas por todas asexecuções de campanha eentregues aos destinatários,dividido pelo número demensagens que foram enviadaspor todas essas execuções decampanha, para cada dia nointervalo de datas especificado.

Os resultados da consulta paraessa métrica são agrupados pordia do calendário, no formatoestendido ISO 8601.

282

Page 290: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de campanha

Métrica kpi-name Descrição

Taxa de e-mails abertos email-open-rate Para todas as execuções decampanha, a porcentagem demensagens de e-mail que foramabertas pelos destinatários.

Essa métrica é calculada comoo número de mensagens dee-mail que foram enviadaspor todas as execuções decampanha e abertas pelosdestinatários, dividido pelonúmero de mensagens de e-mailque foram enviadas por todasessas execuções de campanha eentregues aos destinatários.

Taxa de abertura de e-mail,agrupada por execução decampanha

email-open-rate-grouped-by-campaign-activity

Para cada execução decampanha, a porcentagem demensagens de e-mail que foramabertas pelos destinatários.

Essa métrica é calculado comoo número de mensagens de e-mail que foram enviadas poruma execução de campanhae abertas pelos destinatários,dividido pelo número demensagens de e-mail que foramenviadas pela execução decampanha e entregues aosdestinatários.

Os resultados da consulta paraessa métrica são agrupados porID de atividade de campanha(CampaignActivityId),que é uma string que identificaexclusivamente uma execuçãode campanha.

E-mails abertos, agrupados porexecução de campanha

direct-email-opens-grouped-by-campaign-activity

Para cada execução decampanha, o número demensagens de e-mail que foramabertas pelos destinatários.

Os resultados da consulta paraessa métrica são agrupados porID de atividade de campanha(CampaignActivityId),que é uma string que identificaexclusivamente uma execuçãode campanha.

283

Page 291: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de campanha

Métrica kpi-name Descrição

Entregas de endpoint unique-deliveries Para todas as execuçõesde campanha, o número deendpoints exclusivos aos quaisas mensagens foram entregues.

Entregas de endpoint, agrupadaspor execução de campanha

unique-deliveries-grouped-by-campaign-activity

Para cada execução decampanha, o número deendpoints exclusivos aos quaisas mensagens foram entregues.

Os resultados da consulta paraessa métrica são agrupados porID de atividade de campanha(CampaignActivityId),que é uma string que identificaexclusivamente uma execuçãode campanha.

Entregas de endpoint, agrupadaspor data

unique-deliveries-grouped-by-date

Para todas as execuçõesde campanha, o número deendpoints exclusivos aos quaisas mensagens foram entregues,para cada dia no intervalo dedatas especificado.

Os resultados da consulta paraessa métrica são agrupados pordia do calendário, no formatoestendido ISO 8601.

Links clicados, agrupados porexecução de campanha

clicks-grouped-by-campaign-activity

Para cada execução decampanha, o número de vezesque os destinatários clicaram noslinks na mensagem de e-mail.Se um único destinatário clicouem vários links na mensagem,ou clicou no mesmo link maisde uma vez, cada clique seráincluído na contagem.

Os resultados da consulta paraessa métrica são agrupados porID de atividade de campanha(CampaignActivityId),que é uma string que identificaexclusivamente uma execuçãode campanha.

284

Page 292: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de campanha

Métrica kpi-name Descrição

Mensagens entregues,agrupadas por execução decampanha

successful-deliveries-grouped-by-campaign-activity

Para cada execução decampanha, o número demensagens que foram entreguesaos destinatários.

Essa métrica é calculadacomo o número de mensagensque foram enviadas por umaexecução de campanha, menoso número de mensagens quenão puderam ser entregues aosdestinatários da execução devidoa uma devolução definitiva.

Os resultados da consulta paraessa métrica são agrupados porID de atividade de campanha(CampaignActivityId),que é uma string que identificaexclusivamente uma execuçãode campanha.

Mensagens enviadas, agrupadaspor execução de campanha

attempted-deliveries-grouped-by-campaign-activity

Para cada execução decampanha, o número demensagens que foram enviadas.

Os resultados da consulta paraessa métrica são agrupados porID de atividade de campanha(CampaignActivityId),que é uma string que identificaexclusivamente uma execuçãode campanha.

Taxa de abertura de push push-open-rate Para todas as execuções decampanha, a porcentagem denotificações por push que foramabertas pelos destinatários.

Essa métrica é calculada comoo número de notificações porpush que foram enviadaspor todas as execuções decampanha e abertas pelosdestinatários, dividido pelonúmero de notificações por pushque foram enviadas por todasessas execuções de campanha eentregues aos destinatários.

285

Page 293: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de engajamento de jornada

Métrica kpi-name Descrição

Taxa de abertura de notificaçõespor push, agrupada porexecução de campanha

push-open-rate-grouped-by-campaign-activity

Para cada execução decampanha, a porcentagem denotificações por push que foramabertas pelos destinatários.

Essa métrica é calculada comoo número de notificações porpush que foram enviadas poruma execução de campanhae abertas pelos destinatários,dividido pelo número denotificações por push que foramenviadas pela execução decampanha e entregues aosdestinatários.

Os resultados da consulta paraessa métrica são agrupados porID de atividade de campanha(CampaignActivityId),que é uma string que identificaexclusivamente uma execuçãode campanha.

Total de notificações por pushabertas, agrupadas por execuçãode campanha

direct-push-opens-grouped-by-campaign-activity

Para cada execução decampanha, o número denotificações por push que foramabertas pelos destinatários.

Os resultados da consulta paraessa métrica são agrupados porID de atividade de campanha(CampaignActivityId),que é uma string que identificaexclusivamente uma execuçãode campanha.

Métricas de engajamento de jornadaA tabela a seguir lista e descreve métricas de engajamento de jornada padrão que você pode consultarpara monitorar tendências de todas as mensagens de e-mail enviadas por uma jornada do AmazonPinpoint. Para consultar dados dessas métricas, use o recurso Métricas de engajamento de jornada da APIdo Amazon Pinpoint. A coluna kpi-name da tabela indica o valor a ser usado para o parâmetro kpi-namena consulta.

Métrica kpi-name Descrição

Cliques journey-emails-clicked O número de vezes que osparticipantes clicaram em linksnas mensagens. Se um únicoparticipante clicou em vários linksem uma mensagem, ou clicouno mesmo link mais de uma

286

Page 294: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de engajamento de jornada

Métrica kpi-name Descriçãovez, cada clique será incluído nacontagem.

Cliques, agrupados por atividade emails-clicked-grouped-by-journey-activity

Para cada atividade na jornada,o número de vezes que osparticipantes clicaram nos linksnas mensagens. Se um únicoparticipante clicou em vários linksem uma mensagem, ou clicouno mesmo link mais de umavez, cada clique será incluído nacontagem.

Os resultados da consultapara essa métrica sãoagrupados por ID de atividade(JourneyActivityId), queé uma string que identificaexclusivamente uma atividade.

Reclamações journey-emails-complained

O número de mensagensque foram relatadas pelosparticipantes como e-mail nãosolicitado ou indesejado.

Reclamações, agrupadas poratividade

emails-complained-grouped-by-journey-activity

Para cada atividade na jornada,o número de mensagensque foram relatadas pelosparticipantes como e-mail nãosolicitado ou indesejado.

Os resultados da consultapara essa métrica sãoagrupados por ID de atividade(JourneyActivityId), queé uma string que identificaexclusivamente uma atividade.

Entregas journey-emails-delivered O número de mensagensentregues aos participantes.

Essa métrica é calculada comoo número de mensagens queforam enviadas, menos o númerode mensagens que não puderamser entregues devido a umadevolução flexível ou definitiva ouporque foram rejeitadas.

287

Page 295: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de engajamento de jornada

Métrica kpi-name Descrição

Entregas, agrupadas poratividade

emails-delivered-grouped-by-journey-activity

Para cada atividade na jornada,o número de mensagensque foram entregues aosparticipantes.

Essa métrica é calculada comoo número de mensagens queforam enviadas, menos o númerode mensagens que não puderamser entregues devido a umadevolução flexível ou definitivaou porque foram rejeitadas, paracada atividade na jornada.

Os resultados da consultapara essa métrica sãoagrupados por ID de atividade(JourneyActivityId), queé uma string que identificaexclusivamente uma atividade.

Devoluções definitivas journey-emails-hardbounced

O número de mensagens quenão puderam ser entreguesaos participantes devido auma devolução definitiva. Umadevolução definitiva ocorreráse um problema persistenteimpedir que uma mensagemseja entregue, por exemplo, seo endereço de e-mail de umparticipante não existir.

Devoluções definitivas,agrupadas por atividade

emails-hardbounced-grouped-by-journey-activity

Para cada atividade na jornada,o número de mensagens quenão puderam ser entreguesaos participantes devido auma devolução definitiva. Umadevolução definitiva ocorreráse um problema persistenteimpedir que uma mensagemseja entregue, por exemplo, seo endereço de e-mail de umparticipante não existir.

Os resultados da consultapara essa métrica sãoagrupados por ID de atividade(JourneyActivityId), queé uma string que identificaexclusivamente uma atividade.

Aberturas journey-emails-opened O número de mensagensque foram abertas pelosparticipantes.

288

Page 296: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de engajamento de jornada

Métrica kpi-name Descrição

Aberturas, agrupadas poratividade

emails-opened-grouped-by-journey-activity

Para cada atividade na jornada,o número de mensagensque foram abertas pelosparticipantes.

Os resultados da consultapara essa métrica sãoagrupados por ID de atividade(JourneyActivityId), queé uma string que identificaexclusivamente uma atividade.

Rejeições journey-emails-rejected O número de mensagensque não foram enviadas aosparticipantes porque foramrejeitadas. Uma mensagemserá rejeitada se o AmazonPinpoint determinar que amensagem contém malware.O Amazon Pinpoint não tentaenviar mensagens rejeitadas.

Rejeições, agrupadas poratividade

emails-rejected-grouped-by-journey-activity

Para cada atividade na jornada, onúmero de mensagens que nãoforam enviadas aos participantesporque foram rejeitadas. Umamensagem será rejeitada se oAmazon Pinpoint determinar quea mensagem contém malware.O Amazon Pinpoint não tentaenviar mensagens rejeitadas.

Os resultados da consultapara essa métrica sãoagrupados por ID de atividade(JourneyActivityId), queé uma string que identificaexclusivamente uma atividade.

Envios journey-emails-sent O número de mensagensenviadas.

Envios, agrupados por atividade emails-sent-grouped-by-journey-activity

Para cada atividade na jornada, onúmero de mensagens enviadas.

Os resultados da consultapara essa métrica sãoagrupados por ID de atividade(JourneyActivityId), queé uma string que identificaexclusivamente uma atividade.

289

Page 297: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de engajamento de jornada

Métrica kpi-name Descrição

Devoluções flexíveis journey-emails-softbounced

O número de mensagens quenão puderam ser entreguesaos participantes devido auma devolução flexível. Umadevolução flexível ocorreráse um problema temporárioimpedir que uma mensagemseja entregue, por exemplo,se a caixa de entrada de umparticipante estiver cheia ou oservidor de recebimento estivertemporariamente indisponível.

Devoluções flexíveis, agrupadaspor atividade

emails-softbounced-grouped-by-journey-activity

Para cada atividade na jornada,o número de mensagens quenão puderam ser entreguesaos participantes devido auma devolução flexível. Umadevolução flexível ocorreráse um problema temporárioimpedir que uma mensagemseja entregue, por exemplo,se a caixa de entrada de umparticipante estiver cheia ou oservidor de recebimento estivertemporariamente indisponível.

Os resultados da consultapara essa métrica sãoagrupados por ID de atividade(JourneyActivityId), queé uma string que identificaexclusivamente uma atividade.

Cancelamento de assinaturas journey-emails-unsubscribed

O número de vezes que osparticipantes clicaram em linksde cancelamento de assinaturanas mensagens. Se um únicoparticipante clicou no mesmo linkde cancelamento de assinaturamais de uma vez, cada cliqueserá incluído na contagem.

290

Page 298: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de execução de jornada

Métrica kpi-name Descrição

Cancelamentos de assinatura,agrupados por atividade

emails-unsubscribed-grouped-by-journey-activity

Para cada atividade na jornada,o número de vezes que osparticipantes clicaram nos linksde cancelamento de assinaturanas mensagens. Se um únicoparticipante clicou no mesmo linkde cancelamento de assinaturamais de uma vez, cada cliqueserá incluído na contagem.

Os resultados da consultapara essa métrica sãoagrupados por ID de atividade(JourneyActivityId), queé uma string que identificaexclusivamente uma atividade.

Métricas de execução de jornadaA tabela a seguir lista e descreve métricas de execução padrão que você pode consultar para avaliar ostatus dos participantes em uma jornada do Amazon Pinpoint. Para consultar dados dessas métricas,use o recurso Métricas de execução de jornada da API do Amazon Pinpoint. A coluna Campo na tabelaidentifica o nome do campo que aparece nos resultados da consulta para cada métrica.

Métrica Campo Descrição

Participantes ativos ENDPOINT_ACTIVE O número de participantes queestão ativamente realizando asatividades na jornada.

Esta métrica é calculada comoo número de participantes queiniciaram a jornada, menos onúmero de participantes quesaíram da jornada e o númerode participantes que foramremovidos da jornada.

Cancelamentos de participantes CANCELLED O número de participantes quenão concluíram a jornada porquea jornada foi cancelada.

Partidas de participantes ENDPOINT_LEFT O número de participantes quesaíram da jornada.

Entradas de participantes ENDPOINT_ENTERED O número de participantes queiniciaram a jornada.

Exceções dos participantes,limites de reentrada

REENTRY_CAP_EXCEEDED O número de participantesque não concluíram a jornadaporque teriam excedido o númeromáximo de vezes que umúnico participante pode entrarnovamente na jornada.

291

Page 299: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de execução de atividades da jornada

Métrica Campo Descrição

Exceções de participantes,rejeições

ACTIVE_ENDPOINT_REJECTED O número de participantes quenão podem iniciar a jornadaporque já são participantes ativosda jornada.

Um participante será rejeitadose iniciar uma jornada e,posteriormente, você atualizara definição do endpoint doparticipante de tal maneira queafete a inclusão de participantesem um segmento (com baseem critérios de segmento) ouna jornada (com base nascondições da atividade).

Métricas de execução de atividades da jornadaA tabela a seguir lista e descreve métricas de execução padrão que você pode consultar para avaliar ostatus dos participantes em cada tipo de atividade individual para uma jornada do Amazon Pinpoint. Paraconsultar dados dessas métricas, use o recurso Métricas de execução de atividades da jornada da API doAmazon Pinpoint. A coluna Métricas na tabela lista os campos que aparecem nos resultados da consultapara cada tipo de atividade. Ela também fornece uma breve descrição de cada campo.

Tipo de atividade Métricas

Divisão Sim/Não (CONDITIONAL_SPLIT) As métricas são:

• Branch_FALSE – O número de participantesque não atenderam às condições da atividadee prosseguiram para a atividade no caminho“Não”.

• Branch_TRUE – O número de participantesque atenderam às condições da atividade eprosseguiram para a atividade no caminho “Sim”.

Para cada caminho na atividade, há métricasadicionais disponíveis. Para obter informaçõessobre essas métricas, consulte a linha desta tabelapara esse tipo de atividade.

Retenção (HOLDOUT) As métricas são:

• HOLDOUT – o número de participantes queforam removidos da jornada como parte daporcentagem de retenção da atividade.

• PASSED – o número de participantes quecontinuaram para a próxima atividade najornada.

E-mail (MESSAGE) As métricas são:

292

Page 300: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorMétricas de execução de atividades da jornada

Tipo de atividade Métricas• DAILY_CAP_EXCEEDED – o número de

mensagens que não foram enviadas porqueteriam excedido o número máximo demensagens que um único participante podereceber durante um período de 24 horas.

• FAILURE_PERMANENT – o número demensagens que não foram enviadas devido aum problema permanente.

• QUIET_TIME – o número de mensagens quenão foram enviadas porque elas teriam sidoentregues durante o tempo de silêncio para ofuso horário do participante.

• SERVICE_FAILURE – o número de mensagensque não foram enviadas devido a um problemacom o Amazon Pinpoint.

• SUCCESS – o número de mensagens que foramentregues com êxito aos participantes.

• THROTTLED – o número de mensagens que nãoforam enviadas porque o envio das mesmasexcederia as cotas de envio de sua conta doAmazon Pinpoint.

• TRANSIENT_FAILURE – o número demensagens que não foram enviadas devido aum problema temporário.

• UNKNOWN – o número de mensagens quenão foram enviadas devido a um problemadesconhecido.

Divisão multivariada(MULTI_CONDITIONAL_SPLIT)

Para cada caminho da atividade, o número departicipantes que foram para a atividade nocaminho.

Os resultados da consulta para essa métrica sãoagrupados por caminho: Branch_#, em que # éo identificador numérico de um caminho — porexemplo, Branch_1 para o primeiro caminho daatividade.

Para cada caminho na atividade, há métricasadicionais disponíveis. Para obter informaçõessobre essas métricas, consulte a linha desta tabelapara esse tipo de atividade.

293

Page 301: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConsultar dados de campanha

Tipo de atividade Métricas

Divisão aleatória (RANDOM_SPLIT) Para cada caminho da atividade, o número departicipantes que foram para a atividade nocaminho.

Os resultados da consulta para essa métrica sãoagrupados por caminho: Branch_#, em que # éo identificador numérico de um caminho — porexemplo, Branch_1 para o primeiro caminho daatividade.

Para cada caminho na atividade, há métricasadicionais disponíveis. Para obter informaçõessobre essas métricas, consulte a linha desta tabelapara esse tipo de atividade.

Aguardar (WAIT) As métricas são:

• WAIT_FINISHED – o número de participantesque terminaram de aguardar o tempoespecificado.

• WAIT_SKIPPED – o número de participantesque não esperaram pelo tempo especificado,normalmente porque iniciaram a atividade ou ajornada após a hora de término programada paraa atividade.

• WAIT_STARTED – o número de participantesque começaram a esperar e não pularam outerminaram de aguardar o tempo especificado.

Consultar dados de análise do Amazon Pinpointpara campanhas

Além de usar as páginas de análise no console do Amazon Pinpoint, é possível usar as APIs do AmazonPinpoint Analytics para consultar dados de análise de um subconjunto de métricas padrão que forneceminsights sobre as tendências de entrega e engajamento para campanhas.

Cada métrica é um valor mensurável, também chamado de indicador-chave de desempenho (KPI), quepode ajudá-lo a monitorar e avaliar o desempenho de uma ou mais campanhas. Por exemplo, você podeusar uma métrica a fim de descobrir para quantos endpoints uma mensagem de campanha foi enviada ouquantas dessas mensagens foram entregues nos endpoints desejados.

O Amazon Pinpoint coleta e agrega automaticamente esses dados para todas as suas campanhas. Osdados são armazenados por 90 dias. Se você integrou um aplicativo móvel ao Amazon Pinpoint usandoum AWS Mobile SDK, o Amazon Pinpoint estenderá esse suporte para incluir métricas adicionais, comoa porcentagem de notificações por push que foram abertas pelos destinatários. Para obter informaçõessobre como integrar um aplicativo móvel, consulte Integração do Amazon Pinpoint ao aplicativo (p. 132).

Se você usar as APIs do Amazon Pinpoint Analytics para consultar dados, poderá escolher várias opçõesque definem o escopo, os dados, o agrupamento e os filtros para a consulta. Faça isso usando parâmetrosque especificam o projeto, a campanha e a métrica que você deseja consultar, além de qualquer filtrobaseado em datas que você deseja aplicar.

294

Page 302: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorPré-requisitos

Este tópico explica e fornece exemplos de como escolher essas opções e consultar os dados de uma oumais campanhas.

Pré-requisitosAntes de consultar dados de análise para uma ou mais campanhas, é útil reunir as seguintes informações,usadas para definir a consulta:

• ID do projeto – o identificador exclusivo do projeto associado à campanha ou às campanhas. Na APIdo Amazon Pinpoint, esse valor é armazenado na propriedade application-id. No console doAmazon Pinpoint, esse valor é exibido como o Project ID (ID do projeto) na página All projects (Todos osprojetos).

• ID da campanha – o identificador exclusivo da campanha, se você quiser consultar os dados de apenasuma campanha. Na API do Amazon Pinpoint, esse valor é armazenado na propriedade campaign-id.Esse valor não é exibido no console.

• Intervalo de datas – opcionalmente, a primeira e a última data e hora do intervalo de datas para o qualconsultar dados. Os intervalos de datas são inclusivos e deve estar limitados a 31 dias ou menos.Além disso, eles devem começar em menos de 90 dias a partir do dia atual. Se você não especificarum intervalo de datas, o Amazon Pinpoint consulta automaticamente os dados dos 31 dias corridosanteriores.

• Tipo de métrica – o tipo de métrica a consultar. Existem dois tipos: métricas de aplicativo e métricasde campanha. Uma métrica de aplicativo fornece dados para todas as campanhas associadas a umprojeto, também chamadas de aplicativo. Uma métrica de campanha fornece dados para apenas umacampanha.

• Métrica – o nome da métrica a ser consultada — mais especificamente, o valor kpi-name da métrica.Para obter uma lista completa das métricas compatíveis e o valor kpi-name de cada uma, consulteMétricas padrão (p. 266).

Também ajuda determinar se você deseja agrupar os dados por um campo relevante. Se o fizer, poderásimplificar a análise e a emissão de relatórios escolhendo uma métrica projetada para agrupar dadosautomaticamente para você. Por exemplo, o Amazon Pinpoint fornece várias métricas padrão que relatama porcentagem de mensagens que foram entregues aos destinatários de uma campanha. Uma dessasmétricas agrupa automaticamente os dados por data (successful-delivery-rate-grouped-by-date). Outra métrica agrupa automaticamente os dados por execução de campanha (successful-delivery-rate-grouped-by-campaign-activity). Uma terceira métrica simplesmente retornaum único valor — a porcentagem de mensagens que foram entregues aos destinatários por todas asexecuções de campanha (successful-delivery-rate).

Se você não conseguir encontrar uma métrica padrão que agrupe dados da maneira desejada, poderádesenvolver uma série de consultas que retornem os dados desejados. Depois, é possível dividirmanualmente ou combinar os resultados da consulta em grupos personalizados criados.

Por fim, é importante verificar se você está autorizado a acessar os dados que deseja consultar. Paraobter mais informações, consulte Políticas do IAM para consulta de dados de análise do AmazonPinpoint (p. 264).

Consultar dados para uma campanhaPara consultar os dados para uma campanha, use a API de Métricas de campanha e especifique valorespara os seguintes parâmetros necessários:

• application-id – o ID do projeto, que é o identificador exclusivo do projeto associado à campanha. NoAmazon Pinpoint, os termos projeto e aplicativo têm o mesmo significado.

• campaign-id – o identificador exclusivo da campanha.

295

Page 303: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConsultar dados para uma campanha

• kpi-name – o nome da métrica a ser consultada. Esse valor descreve a métrica associada e consisteem dois ou mais termos, que são compostos por caracteres alfanuméricos minúsculos, separados porum hífen. Para obter uma lista completa das métricas compatíveis e o valor kpi-name de cada uma,consulte Métricas padrão (p. 266).

Também é possível aplicar um filtro que consulta os dados para um intervalo de datas específico. Sevocê não especificar um intervalo de datas, o Amazon Pinpoint retornará os dados para os 31 diascorridos anteriores. Para filtrar os dados por datas diferentes, use os parâmetros de intervalo de datascompatíveis para especificar a primeira e a última data e hora do intervalo de datas. Os valores devemestar no formato ISO 8601 estendido e usar o Tempo Universal Coordenado (UTC) — por exemplo,2019-07-19T20:00:00Z para 8:00 PM UTC 19 de julho de 2019. Os intervalos de datas são inclusivos edeve estar limitados a 31 dias ou menos. Adicionalmente, a primeira data e hora devem ser inferiores a 90dias a partir do dia atual.

Os exemplos a seguir mostram como consultar dados de análise para uma campanha usando a API RESTdo Amazon Pinpoint, a AWS CLI e AWS SDK for Java. É possível usar qualquer AWS SDK compatívelpara consultar dados de análise para uma campanha. Os exemplos da AWS CLI são formatados para oMicrosoft Windows. Para Unix, Linux e macOS, substitua o caractere de continuação de linha circunflexo(^) por uma barra invertida (\).

REST API

Para consultar dados de análise para uma campanha usando a API REST do Amazon Pinpoint, envieuma solicitação HTTP(S) GET para o URI de Métricas de campanha. No URI, especifique os valoresapropriados para os parâmetros de caminho necessários:

https://endpoint/v1/apps/application-id/campaigns/campaign-id/kpis/daterange/kpi-name

Onde:

• endpoint é o endpoint do Amazon Pinpoint para a região da AWS que hospeda o projetoassociado à campanha.

• application-id é o identificador exclusivo do projeto associado à campanha.• campaign-id é o identificador exclusivo da campanha.• kpi-name é o valor kpi-name da métrica a consultar.

Todos os parâmetros devem ser codificados por URL.

Para aplicar um filtro que consulta os dados de um intervalo de datas específico, acrescente osvalores e parâmetros de consulta start-time e end-time ao URI. Ao usar esses parâmetros,é possível especificar a primeira e a última data e hora, no formato ISO 8601 estendido, de umintervalo de datas inclusivo para o qual recuperar os dados. Use um "e" comercial (&) para separar osparâmetros.

Por exemplo, a seguinte solicitação recupera o número de endpoints exclusivos aos quais asmensagens foram entregues, por todas as execuções de uma campanha, de 19 de julho de 2019 até26 de julho de 2019:

https://pinpoint.us-east-1.amazonaws.com/v1/apps/1234567890123456789012345example/campaigns/80b8efd84042ff8d9c96ce2f8example/kpis/daterange/unique-deliveries?start-time=2019-07-19T00:00:00Z&end-time=2019-07-26T23:59:59Z

Onde:

• pinpoint.us-east-1.amazonaws.com é o endpoint do Amazon Pinpoint da região da AWS quehospeda o projeto.

296

Page 304: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConsultar dados para uma campanha

• 1234567890123456789012345example é o identificador exclusivo do projeto associado àcampanha.

• 80b8efd84042ff8d9c96ce2f8example é o identificador exclusivo da campanha.• unique-deliveries é o valor kpi-name da métrica de entregas de endpoint da campanha, que

é a métrica que relata o número de endpoints exclusivos aos quais as mensagens foram entregues,por todas as execuções de uma campanha.

• 2019-07-19T00:00:00Z é a primeira data e hora para as quais recuperar dados, como parte deum intervalo de datas inclusivo.

• 2019-07-26T23:59:59Z é a última data e hora para as quais recuperar dados, como parte de umintervalo de datas inclusivo.

AWS CLI

Para consultar dados de análise para uma campanha usando a AWS CLI, use o comando get-campaign-date-range-kpi e especifique os valores apropriados para os parâmetros necessários:

C:\> aws pinpoint get-campaign-date-range-kpi ^ --application-id application-id ^ --campaign-id campaign-id ^ --kpi-name kpi-name

Onde:

• application-id é o identificador exclusivo do projeto associado à campanha.• campaign-id é o identificador exclusivo da campanha.• kpi-name é o valor kpi-name da métrica a consultar.

Para aplicar um filtro que consulta os dados de um intervalo de datas específico, adicione os valorese parâmetros start-time e end-time à consulta. Ao usar esses parâmetros, é possível especificara primeira e a última data e hora, no formato ISO 8601 estendido, de um intervalo de datas inclusivopara o qual recuperar os dados. Por exemplo, a seguinte solicitação recupera o número de endpointsexclusivos aos quais as mensagens foram entregues, por todas as execuções de uma campanha, de19 de julho de 2019 até 26 de julho de 2019:

C:\> aws pinpoint get-campaign-date-range-kpi ^ --application-id 1234567890123456789012345example ^ --campaign-id 80b8efd84042ff8d9c96ce2f8example ^ --kpi-name unique-deliveries ^ --start-time 2019-07-19T00:00:00Z ^ --end-time 2019-07-26T23:59:59Z

Onde:

• 1234567890123456789012345example é o identificador exclusivo do projeto associado àcampanha.

• 80b8efd84042ff8d9c96ce2f8example é o identificador exclusivo da campanha.• unique-deliveries é o valor kpi-name da métrica de entregas de endpoint da campanha, que

é a métrica que relata o número de endpoints exclusivos aos quais as mensagens foram entregues,por todas as execuções de uma campanha.

• 2019-07-19T00:00:00Z é a primeira data e hora para as quais recuperar dados, como parte deum intervalo de datas inclusivo.

• 2019-07-26T23:59:59Z é a última data e hora para as quais recuperar dados, como parte de umintervalo de datas inclusivo.

297

Page 305: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConsultar dados para uma campanha

SDK para Java

Para consultar dados analíticos de uma campanha usando o AWS SDK for Java, use o métodoGetCampaignDateRangeKpiRequest da API Métricas de campanha. Especifique os valoresapropriados para os parâmetros necessários:

GetCampaignDateRangeKpiRequest request = new GetCampaignDateRangeKpiRequest() .withApplicationId("applicationId") .withCampaignId("campaignId") .withKpiName("kpiName")

Onde:

• applicationId é o identificador exclusivo do projeto associado à campanha.• campaignId é o identificador exclusivo da campanha.• kpiName é o valor kpi-name da métrica a consultar.

Para aplicar um filtro que consulta os dados de um intervalo de datas específico, inclua os valores eparâmetros startTime e endTime na consulta. Ao usar esses parâmetros, é possível especificara primeira e a última data e hora, no formato ISO 8601 estendido, de um intervalo de datas inclusivopara o qual recuperar os dados. Por exemplo, a seguinte solicitação recupera o número de endpointsexclusivos aos quais as mensagens foram entregues, por todas as execuções de uma campanha, de19 de julho de 2019 até 26 de julho de 2019:

GetCampaignDateRangeKpiRequest request = new GetCampaignDateRangeKpiRequest() .withApplicationId("1234567890123456789012345example") .withCampaignId("80b8efd84042ff8d9c96ce2f8example") .withKpiName("unique-deliveries") .withStartTime(Date.from(Instant.parse("2019-07-19T00:00:00Z"))) .withEndTime(Date.from(Instant.parse("2019-07-26T23:59:59Z")));

Onde:

• 1234567890123456789012345example é o identificador exclusivo do projeto associado àcampanha.

• 80b8efd84042ff8d9c96ce2f8example é o identificador exclusivo da campanha.• unique-deliveries é o valor kpi-name da métrica de entregas de endpoint da campanha, que

é a métrica que relata o número de endpoints exclusivos aos quais as mensagens foram entregues,por todas as execuções de uma campanha.

• 2019-07-19T00:00:00Z é a primeira data e hora para as quais recuperar dados, como parte deum intervalo de datas inclusivo.

• 2019-07-26T23:59:59Z é a última data e hora para as quais recuperar dados, como parte de umintervalo de datas inclusivo.

Depois de enviar sua consulta, o Amazon Pinpoint retorna os resultados da consulta em uma respostaJSON. A estrutura dos resultados varia dependendo da métrica consultada. Algumas métricas retornamapenas um valor. Por exemplo, a métrica de entregas de endpoint (unique-deliveries) da campanha,usada nos exemplos anteriores, retorna um valor — o número de endpoints exclusivos aos quais asmensagens foram entregues, por todas as execuções de uma campanha. Nesse caso, a resposta JSON éa seguinte:

{ "CampaignDateRangeKpiResponse":{ "ApplicationId":"1234567890123456789012345example", "CampaignId":"80b8efd84042ff8d9c96ce2f8example",

298

Page 306: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConsultar dados para várias campanhas

"EndTime":"2019-07-26T23:59:59Z", "KpiName":"unique-deliveries", "KpiResult":{ "Rows":[ { "Values":[ { "Key":"UniqueDeliveries", "Type":"Double", "Value":"123.0" } ] } ] }, "StartTime":"2019-07-19T00:00:00Z" }}

Outras métricas retornam vários valores e agrupam os valores por um campo relevante. Se uma métricaretornar vários valores, a resposta JSON incluirá um campo que indica qual campo foi usado para agruparos dados.

Para saber mais sobre a estrutura dos resultados da consulta, consulte Usar resultados daconsulta (p. 311).

Consultar dados para várias campanhasHá duas maneiras de consultar os dados para várias campanhas. A melhor maneira depende se vocêdeseja consultar os dados para campanhas associadas ao mesmo projeto. Fazer isso também depende dese você deseja consultar os dados para todas ou somente ou subconjunto dessas campanhas.

Para consultar os dados de campanhas associadas a projetos diferentes ou apenas para um subconjuntodas campanhas associadas ao mesmo projeto, a melhor abordagem é criar e executar uma série deconsultas individuais, uma para cada campanha para a qual você deseja consultar os dados. A seçãoanterior explica como consultar os dados de apenas uma campanha.

Para consultar os dados de todas as campanhas associadas ao mesmo projeto, é possível usar a API deMétricas de aplicativo. Especifique valores para os seguintes parâmetros necessários:

• application-id – o ID do projeto, que é o identificador exclusivo do projeto. No Amazon Pinpoint, ostermos projeto e aplicativo têm o mesmo significado.

• kpi-name – o nome da métrica a ser consultada. Esse valor descreve a métrica associada e consisteem dois ou mais termos, que são compostos por caracteres alfanuméricos minúsculos, separados porum hífen. Para obter uma lista completa das métricas compatíveis e o valor kpi-name de cada uma,consulte Métricas padrão (p. 266).

Também é possível filtrar os dados por intervalo de datas. Se você não especificar um intervalo de datas,o Amazon Pinpoint retornará os dados para os 31 dias corridos anteriores. Para filtrar os dados por datasdiferentes, use os parâmetros de intervalo de datas compatíveis para especificar a primeira e a últimadata e hora do intervalo de datas. Os valores devem estar no formato ISO 8601 estendido e usar o TempoUniversal Coordenado (UTC) — por exemplo, 2019-07-19T20:00:00Z para 8:00 PM UTC 19 de julhode 2019. Os intervalos de datas são inclusivos e deve estar limitados a 31 dias ou menos. Adicionalmente,a primeira data e hora devem ser inferiores a 90 dias a partir do dia atual.

Os exemplos a seguir mostram como consultar dados de análise para uma campanha usando a API RESTdo Amazon Pinpoint, a AWS CLI e AWS SDK for Java. É possível usar qualquer AWS SDK compatívelpara consultar dados de análise para uma campanha. Os exemplos da AWS CLI são formatados para o

299

Page 307: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConsultar dados para várias campanhas

Microsoft Windows. Para Unix, Linux e macOS, substitua o caractere de continuação de linha circunflexo(^) por uma barra invertida (\).

REST API

Para consultar dados de análise de várias campanhas usando a API REST do Amazon Pinpoint, envieuma solicitação HTTP(S) GET para o URI de Métricas de aplicativo. No URI, especifique os valoresapropriados para os parâmetros de caminho necessários:

https://endpoint/v1/apps/application-id/kpis/daterange/kpi-name

Onde:

• endpoint é o endpoint do Amazon Pinpoint da região da AWS que hospeda o projeto associado àscampanhas.

• application-id é o identificador exclusivo do projeto associado às campanhas.• kpi-name é o valor kpi-name da métrica a consultar.

Todos os parâmetros devem ser codificados por URL.

Para aplicar um filtro que recupera os dados de um intervalo de datas específico, acrescente osvalores e parâmetros de consulta start-time e end-time ao URI. Ao usar esses parâmetros,é possível especificar a primeira e a última data e hora, no formato ISO 8601 estendido, de umintervalo de datas inclusivo para o qual recuperar os dados. Use um "e" comercial (&) para separar osparâmetros.

Por exemplo, a solicitação a seguir recupera o número de endpoints exclusivos aos quais asmensagens foram entregues, por cada uma das campanhas de um projeto, de 19 de julho de 2019 até26 de julho de 2019:

https://pinpoint.us-east-1.amazonaws.com/v1/apps/1234567890123456789012345example/kpis/daterange/unique-deliveries-grouped-by-campaign?start-time=2019-07-19T00:00:00Z&end-time=2019-07-26T23:59:59Z

Onde:

• pinpoint.us-east-1.amazonaws.com é o endpoint do Amazon Pinpoint da região da AWS quehospeda o projeto.

• 1234567890123456789012345example é o identificador exclusivo do projeto associado àscampanhas.

• unique-deliveries-grouped-by-campaign é o valor kpi-name da métrica de aplicativode entregas de endpoint, agrupadas por campanha, que é a métrica que retorna o número deendpoints exclusivos aos quais as mensagens foram entregues, por cada campanha.

• 2019-07-19T00:00:00Z é a primeira data e hora para as quais recuperar dados, como parte deum intervalo de datas inclusivo.

• 2019-07-26T23:59:59Z é a última data e hora para as quais recuperar dados, como parte de umintervalo de datas inclusivo.

AWS CLI

Para consultar dados de análise de várias campanhas usando a AWS CLI, use o comando get-application-date-range-kpi e especifique os valores apropriados para os parâmetros necessários:

C:\> aws pinpoint get-application-date-range-kpi ^

300

Page 308: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConsultar dados para várias campanhas

--application-id application-id ^ --kpi-name kpi-name

Onde:

• application-id é o identificador exclusivo do projeto associado às campanhas.• kpi-name é o valor kpi-name da métrica a consultar.

Para aplicar um filtro que recupera os dados de um intervalo de datas específico, inclua os valores eparâmetros start-time e end-time na consulta. Ao usar esses parâmetros, é possível especificara primeira e a última data e hora, no formato ISO 8601 estendido, de um intervalo de datas inclusivopara o qual recuperar os dados. Por exemplo, a solicitação a seguir recupera o número de endpointsexclusivos aos quais as mensagens foram entregues, por cada uma das campanhas de um projeto, de19 de julho de 2019 até 26 de julho de 2019:

C:\> aws pinpoint get-application-date-range-kpi ^ --application-id 1234567890123456789012345example ^ --kpi-name unique-deliveries-grouped-by-campaign ^ --start-time 2019-07-19T00:00:00Z ^ --end-time 2019-07-26T23:59:59Z

Onde:

• 1234567890123456789012345example é o identificador exclusivo do projeto associado àcampanha.

• unique-deliveries-grouped-by-campaign é o valor kpi-name da métrica de aplicativode entregas de endpoint, agrupadas por campanha, que é a métrica que retorna o número deendpoints exclusivos aos quais as mensagens foram entregues, por cada campanha.

• 2019-07-19T00:00:00Z é a primeira data e hora para as quais recuperar dados, como parte deum intervalo de datas inclusivo.

• 2019-07-26T23:59:59Z é a última data e hora para as quais recuperar dados, como parte de umintervalo de datas inclusivo.

SDK para Java

Para consultar dados analíticos de diversas campanhas usando o AWS SDK for Java, use ométodo GetApplicationDateRangeKpiRequest da API Métricas de aplicativo. Especifique os valoresapropriados para os parâmetros necessários:

GetApplicationDateRangeKpiRequest request = new GetApplicationDateRangeKpiRequest() .withApplicationId("applicationId") .withKpiName("kpiName")

Onde:

• applicationId é o identificador exclusivo do projeto associado às campanhas.• kpiName é o valor kpi-name da métrica a consultar.

Para aplicar um filtro que recupera os dados de um intervalo de datas específico, inclua os valores eparâmetros startTime e endTime na consulta. Ao usar esses parâmetros, é possível especificara primeira e a última data e hora, no formato ISO 8601 estendido, de um intervalo de datas inclusivopara o qual recuperar os dados. Por exemplo, a solicitação a seguir recupera o número de endpointsexclusivos aos quais as mensagens foram entregues, por cada uma das campanhas de um projeto, de19 de julho de 2019 até 26 de julho de 2019:

301

Page 309: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConsultar dados para várias campanhas

GetApplicationDateRangeKpiRequest request = new GetApplicationDateRangeKpiRequest() .withApplicationId("1234567890123456789012345example") .withKpiName("unique-deliveries-grouped-by-campaign") .withStartTime(Date.from(Instant.parse("2019-07-19T00:00:00Z"))) .withEndTime(Date.from(Instant.parse("2019-07-26T23:59:59Z")));

Onde:

• 1234567890123456789012345example é o identificador exclusivo do projeto associado àscampanhas.

• unique-deliveries-grouped-by-campaign é o valor kpi-name da métrica de aplicativode entregas de endpoint, agrupadas por campanha, que é a métrica que retorna o número deendpoints exclusivos aos quais as mensagens foram entregues, por cada campanha.

• 2019-07-19T00:00:00Z é a primeira data e hora para as quais recuperar dados, como parte deum intervalo de datas inclusivo.

• 2019-07-26T23:59:59Z é a última data e hora para as quais recuperar dados, como parte de umintervalo de datas inclusivo.

Depois de enviar sua consulta, o Amazon Pinpoint retorna os resultados da consulta em uma respostaJSON. A estrutura dos resultados varia dependendo da métrica consultada. Algumas métricas retornamapenas um valor. Outras métricas retornam vários valores, e esses valores são agrupados por um camporelevante. Se uma métrica retornar vários valores, a resposta JSON incluirá um campo que indica qualcampo foi usado para agrupar os dados.

Por exemplo, a métrica de aplicativo de entregas de endpoint, agrupadas por campanha (unique-deliveries-grouped-by-campaign), que é usada nos exemplos anteriores, retorna vários valores— o número de endpoints exclusivos aos quais as mensagens foram entregues, para cada campanhaassociada a um projeto. Nesse caso, a resposta JSON é a seguinte:

{ "ApplicationDateRangeKpiResponse":{ "ApplicationId":"1234567890123456789012345example", "EndTime":"2019-07-26T23:59:59Z", "KpiName":"unique-deliveries-grouped-by-campaign", "KpiResult":{ "Rows":[ { "GroupedBys":[ { "Key":"CampaignId", "Type":"String", "Value":"80b8efd84042ff8d9c96ce2f8example" } ], "Values":[ { "Key":"UniqueDeliveries", "Type":"Double", "Value":"123.0" } ] }, { "GroupedBys":[ { "Key":"CampaignId", "Type":"String", "Value":"810c7aab86d42fb2b56c8c966example" }

302

Page 310: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConsultar dados de mensagens transacionais

], "Values":[ { "Key":"UniqueDeliveries", "Type":"Double", "Value":"456.0" } ] }, { "GroupedBys":[ { "Key":"CampaignId", "Type":"String", "Value":"42d8c7eb0990a57ba1d5476a3example" } ], "Values":[ { "Key":"UniqueDeliveries", "Type":"Double", "Value":"789.0" } ] } ] }, "StartTime":"2019-07-19T00:00:00Z" }}

Nesse caso, o campo GroupedBys indica que os valores são agrupados por ID de campanha(CampaignId).

Para saber mais sobre a estrutura dos resultados da consulta, consulte Usar resultados daconsulta (p. 311).

Consultar dados de análise do Amazon Pinpointpara mensagens transacionais

Além de usar as páginas de análise no console do Amazon Pinpoint, você pode usar as APIs de análisedo Amazon Pinpoint para consultar dados analíticos de um subconjunto de métricas padrão que forneceminformações sobre as tendências de entrega e engajamento para as mensagens transacionais enviadaspara um projeto.

Cada métrica é um valor mensurável, também chamado de indicador-chave de desempenho (KPI), quepode ajudá-lo a monitorar e avaliar o desempenho de mensagens transacionais. Por exemplo, vocêpode usar uma métrica para descobrir quantos e-mails transacionais ou mensagens SMS você enviouou quantas dessas mensagens foram entregues aos destinatários. O Amazon Pinpoint coleta e agregaautomaticamente esses dados para todos os e-mails transacionais e mensagens SMS que você envia paraum projeto. Os dados são armazenados por 90 dias.

Se você usar as APIs do Amazon Pinpoint Analytics para consultar dados, poderá escolher várias opçõesque definem o escopo, os dados, o agrupamento e os filtros para a consulta. Faça isso usando parâmetrosque especificam o projeto e a métrica que você deseja consultar, além de qualquer filtro baseado em datasque você deseja aplicar.

Este tópico explica e fornece exemplos de como escolher essas opções e consultar dados de mensagenstransacionais para um projeto.

303

Page 311: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorPré-requisitos

Pré-requisitosAntes de consultar dados analíticos para mensagens transacionais, ele ajuda a coletar as seguintesinformações, usadas para definir sua consulta:

• ID do projeto – o identificador exclusivo do projeto do qual as mensagens foram enviadas. Na APIdo Amazon Pinpoint, esse valor é armazenado na propriedade application-id. No console doAmazon Pinpoint, esse valor é exibido como o Project ID (ID do projeto) na página All projects (Todos osprojetos).

• Intervalo de datas – opcionalmente, a primeira e a última data e hora do intervalo de datas para o qualconsultar dados. Os intervalos de datas são inclusivos e deve estar limitados a 31 dias ou menos.Além disso, eles devem começar em menos de 90 dias a partir do dia atual. Se você não especificarum intervalo de datas, o Amazon Pinpoint consulta automaticamente os dados dos 31 dias corridosanteriores.

• Métrica – o nome da métrica a ser consultada — mais especificamente, o valor kpi-name da métrica.Para obter uma lista completa das métricas compatíveis e o valor kpi-name de cada uma, consulteMétricas padrão (p. 266).

Também ajuda determinar se você deseja agrupar os dados por um campo relevante. Se o fizer, poderásimplificar a análise e a emissão de relatórios escolhendo uma métrica projetada para agrupar dadosautomaticamente para você. Por exemplo, o Amazon Pinpoint fornece várias métricas padrão que relatamo número de mensagens SMS transacionais que foram entregues aos destinatários. Uma dessas métricasagrupa automaticamente os dados por data (txn-sms-delivered-grouped-by-date). Outra métricaagrupa automaticamente os dados por país ou região (txn-sms-delivered-grouped-by-country).Uma terceira métrica simplesmente retorna um único valor, o número de mensagens que foram entreguesaos destinatários (txn-sms-delivered). Se você não conseguir encontrar uma métrica padrão queagrupe dados da maneira desejada, poderá desenvolver uma série de consultas que retornem os dadosdesejados. Depois, é possível dividir manualmente ou combinar os resultados da consulta em grupospersonalizados criados.

Por fim, é importante verificar se você está autorizado a acessar os dados que deseja consultar. Paraobter mais informações, consulte Políticas do IAM para consulta de dados de análise do AmazonPinpoint (p. 264).

Consultar dados para mensagens de e-mailtransacionaisPara consultar os dados de mensagens de e-mail transacionais que foram enviadas para um projeto, use aAPI de Métricas de aplicativo e especifique valores para os seguintes parâmetros necessários:

• application-id – o ID do projeto, que é o identificador exclusivo do projeto. No Amazon Pinpoint, ostermos projeto e aplicativo têm o mesmo significado.

• kpi-name – o nome da métrica a ser consultada. Esse valor descreve a métrica associada e consisteem dois ou mais termos, que são compostos por caracteres alfanuméricos minúsculos, separados porum hífen. Para obter uma lista completa das métricas compatíveis e o valor kpi-name de cada uma,consulte Métricas padrão (p. 266).

Também é possível aplicar um filtro que consulta os dados para um intervalo de datas específico. Sevocê não especificar um intervalo de datas, o Amazon Pinpoint retornará os dados para os 31 diascorridos anteriores. Para filtrar os dados por datas diferentes, use os parâmetros de intervalo de datascompatíveis para especificar a primeira e a última data e hora do intervalo de datas. Os valores devemestar no formato ISO 8601 estendido e usar o Tempo Universal Coordenado (UTC), por exemplo,2019-09-06T20:00:00Z para 20h UTC 6 de setembro de 2019. Os intervalos de datas são inclusivos e

304

Page 312: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConsultar dados para mensagens de e-mail transacionais

deve estar limitados a 31 dias ou menos. Adicionalmente, a primeira data e hora devem ser inferiores a 90dias a partir do dia atual.

Os exemplos a seguir mostram como consultar dados de análise para mensagens de e-mail transacionaisusando a API REST do Amazon Pinpoint, a AWS CLI e AWS SDK for Java. Você pode usar qualquerAWS SDK compatível para consultar dados analíticos para mensagens transacionais. Os exemplos daAWS CLI são formatados para o Microsoft Windows. Para Unix, Linux e macOS, substitua o caractere decontinuação de linha circunflexo (^) por uma barra invertida (\).

REST API

Para consultar dados de análise de mensagens de e-mail transacionais usando a API REST doAmazon Pinpoint, envie uma solicitação HTTP(S) GET para o URI de Métricas de aplicativo. No URI,especifique os valores apropriados para os parâmetros de caminho necessários:

https://endpoint/v1/apps/application-id/kpis/daterange/kpi-name

Onde:

• endpoint é o endpoint do Amazon Pinpoint da região da AWS que hospeda o projeto.• application-id é o identificador exclusivo do projeto.• kpi-name é o valor kpi-name da métrica a consultar.

Todos os parâmetros devem ser codificados por URL.

Para aplicar um filtro que consulta os dados de um intervalo de datas específico, acrescente osvalores e parâmetros de consulta start-time e end-time ao URI. Ao usar esses parâmetros,é possível especificar a primeira e a última data e hora, no formato ISO 8601 estendido, de umintervalo de datas inclusivo para o qual recuperar os dados. Use um "e" comercial (&) para separar osparâmetros.

Por exemplo, a seguinte solicitação recupera o número de mensagens de e-mail transacionais queforam enviadas para um projeto de 6 de setembro de 2019 a 13 de setembro de 2019:

https://pinpoint.us-east-1.amazonaws.com/v1/apps/1234567890123456789012345example/kpis/daterange/txn-emails-sent?start-time=2019-09-06T00:00:00Z&end-time=2019-09-13T23:59:59Z

Onde:

• pinpoint.us-east-1.amazonaws.com é o endpoint do Amazon Pinpoint da região da AWS quehospeda o projeto.

• 1234567890123456789012345example é o identificador exclusivo do projeto.• txn-emails-sent é o valor kpi-name da métrica do aplicativo envios, que é a métrica que relata

o número de mensagens de e-mail transacionais enviadas para um projeto.• 2019-09-06T00:00:00Z é a primeira data e hora para as quais recuperar dados, como parte de

um intervalo de datas inclusivo.• 2019-09-13T23:59:59Z é a última data e hora para as quais recuperar dados, como parte de um

intervalo de datas inclusivo.

AWS CLI

Para consultar dados de análise de mensagens de e-mail transacionais usando a AWS CLI, use ocomando get-application-date-range-kpi e especifique os valores apropriados para os parâmetrosnecessários:

C:\> aws pinpoint get-application-date-range-kpi ^

305

Page 313: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConsultar dados para mensagens de e-mail transacionais

--application-id application-id ^ --kpi-name kpi-name

Onde:

• application-id é o identificador exclusivo do projeto.• kpi-name é o valor kpi-name da métrica a consultar.

Para aplicar um filtro que consulta os dados de um intervalo de datas específico, adicione osvalores e parâmetros start-time e end-time à consulta. Ao usar esses parâmetros, é possívelespecificar a primeira e a última data e hora, no formato ISO 8601 estendido, de um intervalo de datasinclusivo para o qual recuperar os dados. Por exemplo, a seguinte solicitação recupera o número demensagens de e-mail transacionais que foram enviadas para um projeto de 6 de setembro de 2019 a13 de setembro de 2019:

C:\> aws pinpoint get-application-date-range-kpi ^ --application-id 1234567890123456789012345example ^ --kpi-name txn-emails-sent ^ --start-time 2019-09-06T00:00:00Z ^ --end-time 2019-09-13T23:59:59Z

Onde:

• 1234567890123456789012345example é o identificador exclusivo do projeto.• txn-emails-sent é o valor kpi-name da métrica do aplicativo envios, que é a métrica que relata

o número de mensagens de e-mail transacionais enviadas para um projeto.• 2019-09-06T00:00:00Z é a primeira data e hora para as quais recuperar dados, como parte de

um intervalo de datas inclusivo.• 2019-09-13T23:59:59Z é a última data e hora para as quais recuperar dados, como parte de um

intervalo de datas inclusivo.

SDK para Java

Para consultar dados analíticos para mensagens de e-mail transacionais usando o AWS SDK for Java,use o método GetApplicationDateRangeKpiRequest da API Métricas de aplicativo. Especifique osvalores apropriados para os parâmetros necessários:

GetApplicationDateRangeKpiRequest request = new GetApplicationDateRangeKpiRequest() .withApplicationId("applicationId") .withKpiName("kpiName")

Onde:

• applicationId é o identificador exclusivo do projeto.• kpiName é o valor kpi-name da métrica a consultar.

Para aplicar um filtro que consulta os dados de um intervalo de datas específico, inclua os valores eparâmetros startTime e endTime na consulta. Ao usar esses parâmetros, é possível especificara primeira e a última data e hora, no formato ISO 8601 estendido, de um intervalo de datasinclusivo para o qual recuperar os dados. Por exemplo, a seguinte solicitação recupera o número demensagens de e-mail transacionais que foram enviadas para um projeto de 6 de setembro de 2019 a13 de setembro de 2019:

GetApplicationDateRangeKpiRequest request = new GetApplicationDateRangeKpiRequest() .withApplicationId("1234567890123456789012345example")

306

Page 314: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConsultar dados para mensagens SMS transacionais

.withKpiName("txn-emails-sent") .withStartTime(Date.from(Instant.parse("2019-09-06T00:00:00Z"))) .withEndTime(Date.from(Instant.parse("2019-09-13T23:59:59Z")));

Onde:

• 1234567890123456789012345example é o identificador exclusivo do projeto.• txn-emails-sent é o valor kpi-name da métrica do aplicativo envios, que é a métrica que relata

o número de mensagens de e-mail transacionais enviadas para um projeto.• 2019-09-06T00:00:00Z é a primeira data e hora para as quais recuperar dados, como parte de

um intervalo de datas inclusivo.• 2019-09-13T23:59:59Z é a última data e hora para as quais recuperar dados, como parte de um

intervalo de datas inclusivo.

Depois de enviar sua consulta, o Amazon Pinpoint retorna os resultados da consulta em uma respostaJSON. A estrutura dos resultados varia dependendo da métrica consultada. Algumas métricas retornamapenas um valor. Por exemplo, a métrica do aplicativo sent (txn-emails-sent), que é usada nosexemplos anteriores, retorna um valor, o número de mensagens de e-mail transacionais enviadas de umprojeto. Nesse caso, a resposta JSON é a seguinte:

{ "ApplicationDateRangeKpiResponse":{ "ApplicationId":"1234567890123456789012345example", "EndTime":"2019-09-13T23:59:59Z", "KpiName":"txn-emails-sent", "KpiResult":{ "Rows":[ { "Values":[ { "Key":"TxnEmailsSent", "Type":"Double", "Value":"62.0" } ] } ] }, "StartTime":"2019-09-06T00:00:00Z" }}

Outras métricas retornam vários valores e agrupam os valores por um campo relevante. Se uma métricaretornar vários valores, a resposta JSON incluirá um campo que indica qual campo foi usado para agruparos dados.

Para saber mais sobre a estrutura dos resultados da consulta, consulte Usar resultados daconsulta (p. 311).

Consultar dados para mensagens SMS transacionaisPara consultar os dados de mensagens SMS transacionais que foram enviadas para um projeto, use a APIde Métricas de aplicativo e especifique valores para os seguintes parâmetros necessários:

• application-id – o ID do projeto, que é o identificador exclusivo do projeto. No Amazon Pinpoint, ostermos projeto e aplicativo têm o mesmo significado.

• kpi-name – o nome da métrica a ser consultada. Esse valor descreve a métrica associada e consisteem dois ou mais termos, que são compostos por caracteres alfanuméricos minúsculos, separados por

307

Page 315: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConsultar dados para mensagens SMS transacionais

um hífen. Para obter uma lista completa das métricas compatíveis e o valor kpi-name de cada uma,consulte Métricas padrão (p. 266).

Também é possível aplicar um filtro que consulta os dados para um intervalo de datas específico. Sevocê não especificar um intervalo de datas, o Amazon Pinpoint retornará os dados para os 31 diascorridos anteriores. Para filtrar os dados por datas diferentes, use os parâmetros de intervalo de datascompatíveis para especificar a primeira e a última data e hora do intervalo de datas. Os valores devemestar no formato ISO 8601 estendido e usar o Tempo Universal Coordenado (UTC), por exemplo,2019-09-06T20:00:00Z para 20h UTC 6 de setembro de 2019. Os intervalos de datas são inclusivos edeve estar limitados a 31 dias ou menos. Adicionalmente, a primeira data e hora devem ser inferiores a 90dias a partir do dia atual.

Os exemplos a seguir mostram como consultar dados de análise para mensagens SMS transacionaisusando a API REST do Amazon Pinpoint, a AWS CLI e AWS SDK for Java. Você pode usar qualquerAWS SDK compatível para consultar dados analíticos para mensagens transacionais. Os exemplos daAWS CLI são formatados para o Microsoft Windows. Para Unix, Linux e macOS, substitua o caractere decontinuação de linha circunflexo (^) por uma barra invertida (\).

REST API

Para consultar dados de análise de mensagens SMS transacionais usando a API REST do AmazonPinpoint, envie uma solicitação HTTP(S) GET para o URI de Métricas de aplicativo. No URI,especifique os valores apropriados para os parâmetros de caminho necessários:

https://endpoint/v1/apps/application-id/kpis/daterange/kpi-name

Onde:

• endpoint é o endpoint do Amazon Pinpoint da região da AWS que hospeda o projeto.• application-id é o identificador exclusivo do projeto.• kpi-name é o valor kpi-name da métrica a consultar.

Todos os parâmetros devem ser codificados por URL.

Para aplicar um filtro que recupera os dados de um intervalo de datas específico, acrescente osvalores e parâmetros de consulta start-time e end-time ao URI. Ao usar esses parâmetros,é possível especificar a primeira e a última data e hora, no formato ISO 8601 estendido, de umintervalo de datas inclusivo para o qual recuperar os dados. Use um "e" comercial (&) para separar osparâmetros.

Por exemplo, a seguinte solicitação recupera o número de mensagens SMS transacionais que foramenviadas todos os dias de 6 de setembro de 2019 a 8 de setembro de 2019:

https://pinpoint.us-east-1.amazonaws.com/v1/apps/1234567890123456789012345example/kpis/daterange/txn-sms-sent-grouped-by-date?start-time=2019-09-06T00:00:00Z&end-time=2019-09-08T23:59:59Z

Onde:

• pinpoint.us-east-1.amazonaws.com é o endpoint do Amazon Pinpoint da região da AWS quehospeda o projeto.

• 1234567890123456789012345example é o identificador exclusivo do projeto.• txn-sms-sent-grouped-by-date é o valor kpi-name da métrica do aplicativo envios,

agrupados por data, que é a métrica que retorna o número de mensagens SMS transacionais queforam enviadas durante cada dia do intervalo de datas.

308

Page 316: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConsultar dados para mensagens SMS transacionais

• 2019-09-06T00:00:00Z é a primeira data e hora para as quais recuperar dados, como parte deum intervalo de datas inclusivo.

• 2019-09-08T23:59:59Z é a última data e hora para as quais recuperar dados, como parte de umintervalo de datas inclusivo.

AWS CLI

Para consultar dados de análise de mensagens SMS transacionais usando a AWS CLI, use ocomando get-application-date-range-kpi e especifique os valores apropriados para os parâmetrosnecessários:

C:\> aws pinpoint get-application-date-range-kpi ^ --application-id application-id ^ --kpi-name kpi-name

Onde:

• application-id é o identificador exclusivo do projeto.• kpi-name é o valor kpi-name da métrica a consultar.

Para aplicar um filtro que recupera os dados de um intervalo de datas específico, inclua os valorese parâmetros start-time e end-time na consulta. Ao usar esses parâmetros, é possívelespecificar a primeira e a última data e hora, no formato ISO 8601 estendido, de um intervalo de datasinclusivo para o qual recuperar os dados. Por exemplo, a seguinte solicitação recupera o número demensagens SMS transacionais que foram enviadas todos os dias de 6 de setembro de 2019 a 8 desetembro de 2019:

C:\> aws pinpoint get-application-date-range-kpi ^ --application-id 1234567890123456789012345example ^ --kpi-name txn-sms-sent-grouped-by-date ^ --start-time 2019-09-06T00:00:00Z ^ --end-time 2019-09-08T23:59:59Z

Onde:

• 1234567890123456789012345example é o identificador exclusivo do projeto.• txn-sms-sent-grouped-by-date é o valor kpi-name da métrica do aplicativo envios,

agrupados por data, que é a métrica que retorna o número de mensagens SMS transacionais queforam enviadas durante cada dia do intervalo de datas.

• 2019-09-06T00:00:00Z é a primeira data e hora para as quais recuperar dados, como parte deum intervalo de datas inclusivo.

• 2019-09-08T23:59:59Z é a última data e hora para as quais recuperar dados, como parte de umintervalo de datas inclusivo.

SDK para Java

Para consultar dados analíticos para mensagens SMS transacionais usando o AWS SDK for Java,use o método GetApplicationDateRangeKpiRequest da API de Métricas de aplicativo e especifique osvalores apropriados para os parâmetros necessários:

GetApplicationDateRangeKpiRequest request = new GetApplicationDateRangeKpiRequest() .withApplicationId("applicationId") .withKpiName("kpiName")

Onde:

309

Page 317: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConsultar dados para mensagens SMS transacionais

• applicationId é o identificador exclusivo do projeto.• kpiName é o valor kpi-name da métrica a consultar.

Para aplicar um filtro que recupera os dados de um intervalo de datas específico, inclua os valores eparâmetros startTime e endTime na consulta. Ao usar esses parâmetros, é possível especificara primeira e a última data e hora, no formato ISO 8601 estendido, de um intervalo de datasinclusivo para o qual recuperar os dados. Por exemplo, a seguinte solicitação recupera o número demensagens SMS transacionais que foram enviadas todos os dias de 6 de setembro de 2019 a 8 desetembro de 2019:

GetApplicationDateRangeKpiRequest request = new GetApplicationDateRangeKpiRequest() .withApplicationId("1234567890123456789012345example") .withKpiName("txn-sms-sent-grouped-by-date") .withStartTime(Date.from(Instant.parse("2019-09-06T00:00:00Z"))) .withEndTime(Date.from(Instant.parse("2019-09-08T23:59:59Z")));

Onde:

• 1234567890123456789012345example é o identificador exclusivo do projeto.• txn-sms-sent-grouped-by-date é o valor kpi-name da métrica do aplicativo envios,

agrupados por data, que é a métrica que retorna o número de mensagens SMS transacionais queforam enviadas durante cada dia do intervalo de datas.

• 2019-09-06T00:00:00Z é a primeira data e hora para as quais recuperar dados, como parte deum intervalo de datas inclusivo.

• 2019-09-08T23:59:59Z é a última data e hora para as quais recuperar dados, como parte de umintervalo de datas inclusivo.

Depois de enviar sua consulta, o Amazon Pinpoint retorna os resultados da consulta em uma respostaJSON. A estrutura dos resultados varia dependendo da métrica consultada. Algumas métricas retornamapenas um valor. Outras métricas retornam vários valores e agrupam esses valores por um camporelevante. Se uma métrica retornar vários valores, a resposta JSON incluirá um campo que indica qualcampo foi usado para agrupar os dados.

Por exemplo, a métrica do aplicativo envios, agrupados por data (txn-sms-sent-grouped-by-date),que é usada nos exemplos anteriores, retorna vários valores, o número de mensagens SMS transacionaisque foram enviadas durante cada dia do intervalo de datas especificado. Nesse caso, a resposta JSON é aseguinte:

{ "ApplicationDateRangeKpiResponse":{ "ApplicationId":"1234567890123456789012345example", "EndTime":"2019-09-08T23:59:59Z", "KpiName":"txn-sms-sent-grouped-by-date", "KpiResult":{ "Rows":[ { "GroupedBys":[ { "Key":"Date", "Type":"String", "Value":"2019-09-06" } ], "Values":[ { "Key":"TxnSmsSent", "Type":"Double", "Value":"29.0"

310

Page 318: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorUsar resultados da consulta

} ] }, { "GroupedBys":[ { "Key":"Date", "Type":"String", "Value":"2019-09-07" } ], "Values":[ { "Key":"TxnSmsSent", "Type":"Double", "Value":"35.0" } ] }, { "GroupedBys":[ { "Key":"Date", "Type":"String", "Value":"2019-09-08" } ], "Values":[ { "Key":"TxnSmsSent", "Type":"Double", "Value":"10.0" } ] } ] }, "StartTime":"2019-09-06T00:00:00Z" }}

Nesse caso, o campo GroupedBys indica que os valores são agrupados por dia do calendário (Date). Istosignifica que:

• 29 mensagens foram enviadas em 6 de setembro de 2019.• 35 mensagens foram enviadas em 7 de setembro de 2019.• 10 mensagens foram enviadas em 8 de setembro de 2019.

Para saber mais sobre a estrutura dos resultados da consulta, consulte Usar resultados daconsulta (p. 311).

Usar os resultados da consulta de análise doAmazon Pinpoint

Quando você usa APIs de análise do Amazon Pinpoint para consultar dados analíticos, o Amazon Pinpointretorna os resultados em uma resposta JSON. Para métricas de aplicativos, métricas de campanha emétricas de engajamento de jornada, os dados na resposta aderem a um esquema JSON padrão pararelatórios de dados analíticos do Amazon Pinpoint.

311

Page 319: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEstrutura do JSON

Isso significa que você pode usar a linguagem de programação ou a ferramenta de sua escolha paraimplementar uma solução personalizada que consulta os dados de uma ou mais métricas, captura osresultados de cada consulta e, depois, grava os resultados em uma tabela, um objeto ou outro local.Em seguida, você pode trabalhar com os resultados da consulta nesse local usando outro serviço ouaplicativo.

Por exemplo, é possível:

• Crie um painel personalizado que consulta regularmente um conjunto de métricas e exiba os resultadosusando sua estrutura de visualização de dados preferida.

• Crie um relatório que rastreia as taxas de engajamento consultando as métricas apropriadas e exibindoos resultados em um gráfico ou outro tipo de relatório criado por você.

• Analise e grave dados analíticos em um formato de armazenamento específico e, em seguida, migre osresultados para uma solução de armazenamento de longo prazo.

Observe que as APIs de análise do Amazon Pinpoint não foram projetadas para criar ou armazenarobjetos persistentes que você pode ler ou usar posteriormente em um projeto do Amazon Pinpoint ou emsua conta do Amazon Pinpoint. Em vez disso, as APIs são projetadas para ajudá-lo a recuperar dadosanalíticos e transferir esses dados para outros serviços e aplicativos para análise, armazenamento ouemissão de relatórios adicionais. Elas fazem isso em parte usando a mesma estrutura de resposta JSONe o mesmo esquema para todos os dados analíticos que você pode consultar programaticamente paramétricas de aplicativos, métricas de campanha e métricas de engajamento de jornada.

Este tópico explica a estrutura, os objetos e os campos em uma resposta JSON a uma consulta parauma métrica de aplicativo, métrica de campanha ou métrica de engajamento de jornada. Para obterinformações sobre os campos em uma resposta JSON a uma consulta para uma métrica de execução dejornada ou métrica de execução de atividade de jornada, consulte Métricas de análise padrão do AmazonPinpoint (p. 266).

Estrutura do JSONPara ajudá-lo a analisar e usar os resultados da consulta, as APIs do Amazon Pinpoint Analytics usama mesma estrutura de resposta JSON para todos os dados analíticos do Amazon Pinpoint que vocêpode consultar programaticamente para métricas de aplicativos, métricas de campanha e métricas deengajamento de jornada. Cada resposta JSON especifica os valores que definiram a consulta, como o IDdo projeto (ApplicationId). A resposta também inclui um (e apenas um) objeto KpiResult. O objetoKpiResult contém o conjunto geral de resultados para uma consulta.

Cada objeto KpiResult contém um objeto Rows. Esta é uma matriz de objetos que contêm resultadosde consulta e metadados relevantes sobre os valores nesses resultados. A estrutura e o conteúdo de umobjeto Rows têm as seguintes características gerais:

• Cada linha de resultados da consulta é um objeto JSON separado, chamado Values, no objeto Rows.Por exemplo, se uma consulta retornar três valores, o objeto Rows conterá três objetos Values. Cadaobjeto Values contém um resultado individual para a consulta.

• Cada coluna de resultados de consulta é uma propriedade do objeto Values ao qual ela se aplica. Onome da coluna é armazenado no campo Key do objeto Values.

• Para resultados de consulta agrupados, cada objeto Values tem um objeto GroupedBys associado.O objeto GroupedBys indica qual campo foi usado para agrupar os resultados. Ele também fornece ovalor de agrupamento para o objeto Values associado.

• Se os resultados da consulta para uma métrica forem nulos, o objeto Rows estará vazio.

Além dessas características gerais, a estrutura e o conteúdo do objeto Rows variam dependendo damétrica. Isso ocorre porque o Amazon Pinpoint oferece suporte a dois tipos de métrica: métricas de valorúnico e métricas de vários valores.

312

Page 320: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEstrutura do JSON

Uma métrica de valor único fornece apenas um valor cumulativo. Um exemplo é a porcentagem demensagens que foram entregues aos destinatários por todas as execuções de uma campanha. Umamétrica de vários valores fornece mais de um valor e agrupa esses valores por um campo relevante. Umexemplo é a porcentagem de mensagens que foram entregues aos destinatários para cada execução deuma campanha, agrupadas por execução de campanha.

Você pode determinar rapidamente se uma métrica é uma métrica de valor único ou uma métrica devários valores referindo-se ao nome da métrica. Se o nome não contiver grouped-by, será uma métricade valor único. Se isso acontecer, é uma métrica de vários valores. Para obter uma lista completa dasmétricas que você pode consultar programaticamente, consulte Métricas de análise padrão do AmazonPinpoint (p. 266).

Métricas de valor únicoPara uma métrica de valor único, o objeto Rows contém um objeto Values que:

• Especifica o nome amigável da métrica que foi consultada.• Fornece o valor para a métrica que foi consultada.• Identifica o tipo de dados do valor retornado.

Por exemplo, a seguinte resposta JSON contém os resultados da consulta para uma métrica de valorúnico. Essa métrica registra o número de endpoints exclusivos aos quais as mensagens foram entreguespor todas as campanhas associadas a um projeto, de 1 de agosto de 2019 a 31 de agosto de 2019:

{ "ApplicationDateRangeKpiResponse":{ "ApplicationId":"1234567890123456789012345example", "EndTime":"2019-08-31T23:59:59Z", "KpiName":"unique-deliveries", "KpiResult":{ "Rows":[ { "Values":[ { "Key":"UniqueDeliveries", "Type":"Double", "Value":"1368.0" } ] } ] }, "StartTime":"2019-08-01T00:00:00Z" }}

Neste exemplo, a resposta indica que todas as campanhas do projeto entregaram mensagens para 1.368endpoints exclusivos de 1 de agosto de 2019 a 31 de agosto de 2019, onde:

• Key é o nome amigável da métrica cujo valor é especificado no campo Value (UniqueDeliveries).• Type é o tipo de dados do valor especificado no campo Value (Double).• Value é o valor real para a métrica que foi consultada, incluindo quaisquer filtros que foram aplicados

(1368.0).

Se os resultados da consulta para uma métrica de valor único forem nulos (não maiores ou iguais a zero),o objeto Rows estará vazio. O Amazon Pinpoint retornará um valor nulo para uma métrica se não houvernenhum dado para retornar para a métrica. Por exemplo:

313

Page 321: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEstrutura do JSON

{ "ApplicationDateRangeKpiResponse":{ "ApplicationId":"2345678901234567890123456example", "EndTime":"2019-08-31T23:59:59Z", "KpiName":"unique-deliveries", "KpiResult":{ "Rows":[

] }, "StartTime":"2019-08-01T00:00:00Z" }}

Métricas de vários valoresA estrutura e o conteúdo do objeto Rows para uma métrica de vários valores são principalmente osmesmos que uma métrica de valor único. O objeto Rows para uma métrica de vários valores tambémcontém um objeto Values. O objeto Values especifica o nome amigável da métrica que foi consultada,fornece o valor para essa métrica e identifica o tipo de dados desse valor.

No entanto, o objeto Rows para uma métrica de vários valores também contém um ou mais objetosGroupedBy. Há um objeto GroupedBy para cada objeto Values nos resultados da consulta. O objetoGroupedBy indica qual campo foi usado para agrupar os dados nos resultados e o tipo de dados dessecampo. Ele também indica o valor de agrupamento para esse campo (para o objeto Values associado).

Por exemplo, a seguinte resposta JSON contém os resultados da consulta para uma métrica de váriosvalores que relata o número de endpoints exclusivos aos quais as mensagens foram entregues, para cadacampanha associada a um projeto, de 1 de agosto de 2019 a 31 de agosto de 2019:

{ "ApplicationDateRangeKpiResponse":{ "ApplicationId":"1234567890123456789012345example", "EndTime":"2019-08-31T23:59:59Z", "KpiName":"unique-deliveries-grouped-by-campaign", "KpiResult":{ "Rows":[ { "GroupedBys":[ { "Key":"CampaignId", "Type":"String", "Value":"80b8efd84042ff8d9c96ce2f8example" } ], "Values":[ { "Key":"UniqueDeliveries", "Type":"Double", "Value":"123.0" } ] }, { "GroupedBys":[ { "Key":"CampaignId", "Type":"String", "Value":"810c7aab86d42fb2b56c8c966example" } ], "Values":[

314

Page 322: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorEstrutura do JSON

{ "Key":"UniqueDeliveries", "Type":"Double", "Value":"456.0" } ] }, { "GroupedBys":[ { "Key":"CampaignId", "Type":"String", "Value":"42d8c7eb0990a57ba1d5476a3example" } ], "Values":[ { "Key":"UniqueDeliveries", "Type":"Double", "Value":"789.0" } ] } ] }, "StartTime":"2019-08-01T00:00:00Z" }}

Neste exemplo, a resposta indica que três das campanhas do projeto entregaram mensagens paraendpoints exclusivos de 1 de agosto de 2019 a 31 de agosto de 2019. Para cada uma dessas campanhas,a repartição das contagens de entregas é:

• Campanha 80b8efd84042ff8d9c96ce2f8example entregou mensagens para 123 endpointsexclusivos.

• Campanha 810c7aab86d42fb2b56c8c966example entregou mensagens para 456 endpointsexclusivos.

• Campanha 42d8c7eb0990a57ba1d5476a3example entregou mensagens para 789 endpointsexclusivos.

Onde a estrutura geral dos objetos e campos é:

• GroupedBys.Key – o nome da propriedade ou campo que armazena o valor de agrupamentoespecificado no campo GroupedBys.Value (CampaignId).

• GroupedBys.Type – o tipo de dados do valor especificado no campo GroupedBys.Value (String).• GroupedBys.Value – o valor real para o campo que foi usado para agrupar os dados, conforme

especificado no campo GroupedBys.Key (ID da campanha).• Values.Key – o nome amigável da métrica cujo valor é especificado no campo Values.Value

(UniqueDeliveries).• Values.Type – o tipo de dados do valor especificado no campo Values.Value (Double).• Values.Value – o valor real para a métrica que foi consultada, incluindo quaisquer filtros que foram

aplicados.

Se os resultados da consulta para uma métrica de vários valores forem nulos (não maiores ou iguais azero) para um projeto específico, campanha ou outro recurso, o Amazon Pinpoint não retornará nenhumobjeto ou campo para o recurso. Se os resultados da consulta para uma métrica de vários valores foremnulos para todos os recursos, o Amazon Pinpoint retornará um objeto Rows vazio.

315

Page 323: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorObjetos e campos JSON

Objetos e campos JSONAlém de especificar os valores que definiram uma consulta, como o ID do projeto (ApplicationId),cada resposta JSON a uma consulta para uma métrica de aplicativo, métrica de campanha ou métrica deengajamento de jornada inclui um objeto KpiResult. Este objeto contém o conjunto de resultados geralde uma consulta, que você pode analisar para enviar dados analíticos para outro serviço ou aplicativo.Cada objeto KpiResult contém alguns ou todos os seguintes objetos e campos padrão, dependendo damétrica.

Objeto ou campo Descrição

Rows Uma matriz de objetos que contém o conjunto deresultados para uma consulta.

Rows.GroupedBys Para uma métrica de vários valores, uma matrizde campos que define o campo e os valores queforam usados para agrupar dados nos resultadosda consulta.

Rows.GroupedBys.Key Para uma métrica de vários valores, o nome dapropriedade ou campo que armazena o valorespecificado no campo GroupedBys.Value.

Rows.GroupedBys.Type Para uma métrica de vários valores, o tipode dados do valor especificado no campoGroupedBys.Value.

Rows.GroupedBys.Value Para uma métrica de vários valores, o valorreal para o campo que foi usado para agrupardados nos resultados da consulta. Esse valor secorrelaciona a um objeto Values associado.

Rows.Values Uma matriz de campos que contém resultados deconsulta.

Rows.Values.Key O nome amigável da métrica que foi consultada.O valor da métrica é especificado no campoValues.Value.

Rows.Values.Type O tipo de dados do valor especificado no campoValues.Value.

Rows.Values.Value O valor real para a métrica que foi consultada,incluindo quaisquer filtros que foram aplicados.

Para obter informações sobre os campos em uma resposta JSON a uma consulta para uma métrica deexecução de jornada ou métrica de execução de atividade de jornada, consulte Métricas de análise padrãodo Amazon Pinpoint (p. 266).

316

Page 324: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorInformações sobre o Amazon Pinpoint no CloudTrail

Registro em log de chamadas daAPI do Amazon Pinpoint com o AWSCloudTrail

O Amazon Pinpoint é integrado ao AWS CloudTrail, que é um serviço que fornece um registro das açõesexecutadas por um usuário, uma função ou um serviço da AWS no Amazon Pinpoint. O CloudTrailcaptura as chamadas de API para o Amazon Pinpoint como eventos. As chamadas capturadas incluemas chamadas do console do Amazon Pinpoint e as chamadas de código para as operações da API doAmazon Pinpoint.

Se você criar uma trilha, poderá habilitar a entrega contínua de eventos do CloudTrail a um bucketdo Amazon Simple Storage Service (Amazon S3), incluindo eventos para o Amazon Pinpoint. Se nãoconfigurar uma trilha, você ainda poderá visualizar os eventos mais recentes no Event history (Histórico deeventos) do console do CloudTrail. Com as informações coletadas pelo CloudTrail, é possível determinara solicitação feita ao Amazon Pinpoint, o endereço IP do qual a solicitação foi feita, quem fez a solicitação,quando ela foi feita e detalhes adicionais.

Para saber mais sobre o CloudTrail, incluindo como configurá-lo e habilitá-lo, consulte o AWS CloudTrailUser Guide.

Informações sobre o Amazon Pinpoint noCloudTrail

O CloudTrail está habilitado na sua conta da AWS ao criá-la. Quando ocorre a atividade do evento comsuporte no Amazon Pinpoint, ela é registrada em um evento do CloudTrail junto com outros eventos deserviços da AWS no Event history (Histórico de eventos). Você pode visualizar, pesquisar e fazer downloadde eventos recentes em sua conta da AWS. Para obter mais informações, consulte Visualizar eventos como histórico de eventos do CloudTrail.

Para obter um registro contínuo de eventos em sua conta da AWS, incluindo eventos para o AmazonPinpoint, crie uma trilha. Uma trilha permite CloudTrail para fornecer arquivos de log a um bucket doAmazon S3. Por padrão, quando você cria uma trilha no console, ela é aplicada a todas as regiões daAWS. A trilha registra eventos de todas as regiões na partição da AWS e fornece os arquivos de log para obucket do Amazon S3 que você especificar. Além disso, é possível configurar outros serviços da AWS paraanalisar mais profundamente e agir sobre os dados de evento coletados nos logs do CloudTrail. Para obtermais informações, consulte:

• Visão geral da criação de uma trilha• CloudTrail Serviços compatíveis e integrações do• Configuração de notificações do Amazon SNS para o CloudTrail• Receber arquivos de log do CloudTrail de várias regiões e receber arquivos de log do CloudTrail de

várias contas

Cada entrada de log ou evento contém informações sobre quem gerou a solicitação. As informações deidentidade ajudam a determinar:

317

Page 325: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de API do Amazon Pinpoint quepodem ser registradas pelo CloudTrail

• Se a solicitação foi feita com credenciais de usuário da raiz ou do AWS Identity and Access Management(IAM).

• Se a solicitação foi feita com credenciais de segurança temporárias de uma função ou de um usuáriofederado.

• Se a solicitação foi feita por outro serviço da AWS.

Para obter mais informações, consulte Elemento userIdentity do CloudTrail.

Você poder criar uma trilha e armazenar os arquivos de log no bucket do Amazon S3 pelo tempo quequiser. Além disso, você pode definir as regras de ciclo de vida do Amazon S3 para arquivar ou excluirarquivos de log automaticamente. Por padrão, os arquivos de log são criptografados com server-sideencryption (SSE – criptografia server-side) do Amazon S3.

Para ser notificado sobre a entrega do arquivo de log, configure o CloudTrail para publicar notificaçõesdo Amazon SNS quando novos arquivos de log forem entregues. Para obter mais informações, consulteConfiguração de notificações do Amazon SNS para o CloudTrail.

Você também pode agregar arquivos de log do Amazon Pinpoint de Regiões da AWS múltiplas econtas múltiplas da AWS em um único bucket do Amazon S3. Para obter mais informações, consulteRecebimento de arquivos de log do CloudTrail de várias regiões e Recebimento de arquivos de log doCloudTrail de várias contas.

Você pode usar o CloudTrail para registrar ações para as seguintes APIs Amazon Pinpoint:

• API do Amazon Pinpoint (p. 318)• API de e-mail do Amazon Pinpoint (p. 321)• API de voz e SMS do Amazon Pinpoint (p. 322)

Ações de API do Amazon Pinpoint que podem serregistradas pelo CloudTrail

A API do Amazon Pinpoint oferece suporte ao registro das ações a seguir como eventos nos arquivos delog do CloudTrail:

• CreateApp• CreateCampaign• CreateEmailTemplate• CreateImportJob• CreateJourney• CreatePushTemplate• CreateRecommenderConfiguration• CreateSegment• CreateSmsTemplate• CreateVoiceTemplate• DeleteAdmChannel• DeleteApnsChannel• DeleteApnsSandboxChannel• DeleteApnsVoipChannel

318

Page 326: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de API do Amazon Pinpoint quepodem ser registradas pelo CloudTrail

• DeleteApnsVoipSandboxChannel• DeleteApp• DeleteBaiduChannel• DeleteCampaign• DeleteEmailChannel• DeleteEmailTemplate• DeleteEventStream• DeleteGcmChannel• DeleteJourney• DeletePushTemplate• DeleteRecommenderConfiguration• DeleteSegment• DeleteSmsChannel• DeleteSmsTemplate• DeleteVoiceTemplate• GetAdmChannel• GetApnsChannel• GetApnsSandboxChannel• GetApnsVoipChannel• GetApnsVoipSandboxChannel• GetApp• GetApplicationDateRangeKpi• GetApplicationSettings• GetApps• GetBaiduChannel• GetCampaign• GetCampaignActivities• GetCampaignDateRangeKpi• GetCampaignVersion• GetCampaignVersions• GetCampaigns• GetEmailChannel• GetEmailTemplate• GetEventStream• GetGcmChannel• GetImportJob• GetImportJobs• GetJourney• GetJourneyDateRangeKpi• GetJourneyExecutionActivityMetrics• GetJourneyExecutionMetrics• GetPushTemplate

319

Page 327: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de API do Amazon Pinpoint quepodem ser registradas pelo CloudTrail

• GetRecommenderConfiguration• GetRecommenderConfigurations• GetSegment• GetSegmentImportJobs• GetSegmentVersion• GetSegmentVersions• GetSegments• GetSmsChannel• GetSmsTemplate• GetVoiceTemplate• ListJourneys• ListTagsForResource• ListTemplates• ListTemplateVersions• PutEventStream• TagResource• UntagResource• UpdateAdmChannel• UpdateApnsChannel• UpdateApnsSandboxChannel• UpdateApnsVoipChannel• UpdateApnsVoipSandboxChannel• UpdateApplicationSettings• UpdateBaiduChannel• UpdateCampaign• UpdateEmailChannel• UpdateEmailTemplate• UpdateGcmChannel• UpdateJourney• UpdateJourneyState• UpdatePushTemplate• UpdateRecommenderConfiguration• UpdateSegment• UpdateSmsChannel• UpdateSmsTemplate• UpdateTemplateActiveVersion• UpdateVoiceTemplate

As seguintes ações de API do Amazon Pinpoint não estão registradas no CloudTrail:

• GetEndpoint• PutEvents• SendMessages

320

Page 328: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de API de e-mail do Amazon Pinpointque podem ser registradas pelo CloudTrail

• SendUsersMessages• UpdateEndpoint• UpdateEndpointsBatch

Ações de API de e-mail do Amazon Pinpoint quepodem ser registradas pelo CloudTrail

A API de e-mail do Amazon Pinpoint oferece suporte ao registro das ações a seguir como eventos nosarquivos de log do CloudTrail:

• CreateConfigurationSet• CreateConfigurationSetEventDestination• CreateDedicatedIpPool• CreateEmailIdentity• DeleteConfigurationSet• DeleteConfigurationSetEventDestination• DeleteDedicatedIpPool• DeleteEmailIdentity• GetAccount• GetConfigurationSet• GetConfigurationSetEventDestinations• GetDedicatedIp• GetDedicatedIps• GetEmailIdentity• ListConfigurationSets• ListDedicatedIpPools• ListEmailIdentities• PutAccountDedicatedIpWarmupAttributes• PutAccountSendingAttributes• PutConfigurationSetDeliveryOptions• PutConfigurationSetReputationOptions• PutConfigurationSetSendingOptions• PutConfigurationSetTrackingOptions• PutDedicatedIpInPool• PutDedicatedIpWarmupAttributes• PutEmailIdentityDkimAttributes• PutEmailIdentityFeedbackAttributes• PutEmailIdentityMailFromAttributes• UpdateConfigurationSetEventDestination

A seguinte ação da API de e-mail do Amazon Pinpoint não está registrada no CloudTrail:

• SendEmail

321

Page 329: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções da API de SMS e voz do Amazon Pinpoint

que podem ser registradas pelo CloudTrail

Ações da API de SMS e voz do Amazon Pinpointque podem ser registradas pelo CloudTrail

A API de SMS e voz do Amazon Pinpoint oferece suporte ao registro das ações a seguir como eventos nosarquivos de log do CloudTrail:

• CreateConfigurationSet• CreateConfigurationSetEventDestination• DeleteConfigurationSet• DeleteConfigurationSetEventDestination• GetConfigurationSetEventDestinations• UpdateConfigurationSetEventDestination

A seguinte ação da API de SMS e voz do Amazon Pinpoint não está registrada no CloudTrail:

• SendVoiceMessage

Exemplos: entradas de arquivos de log do AmazonPinpoint

Uma trilha é uma configuração que permite a entrega de eventos como arquivos de log em um bucketdo Amazon S3 que você especificar. Os arquivos de log do CloudTrail contêm uma ou mais entradasde log. Um evento representa uma solicitação única de qualquer fonte. Ele inclui informações sobre aação solicitada, a data e hora da ação, parâmetros de solicitação, e assim por diante. arquivos de log doCloudTrail não são um rastreamento de pilha ordenada das chamadas da API pública. Assim, elas não sãoexibidas em nenhuma ordem específica.

O exemplo a seguir mostra uma entrada de log do CloudTrail que demonstra as ações de GetCampaignse CreateCampaign da API do Amazon Pinpoint.

{ "Records": [ { "awsRegion": "us-east-1", "eventID": "example0-09a3-47d6-a810-c5f9fd2534fe", "eventName": "GetCampaigns", "eventSource": "pinpoint.amazonaws.com", "eventTime": "2018-02-03T00:56:48Z", "eventType": "AwsApiCall", "eventVersion": "1.05", "readOnly": true, "recipientAccountId": "123456789012", "requestID": "example1-b9bb-50fa-abdb-80f274981d60", "requestParameters": { "application-id": "example71dfa4c1aab66332a5839798f", "page-size": "1000" }, "responseElements": null, "sourceIPAddress": "192.0.2.0", "userAgent": "Jersey/${project.version} (HttpUrlConnection 1.8.0_144)", "userIdentity": { "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "accountId": "123456789012",

322

Page 330: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos: entradas de arquivos de log do Amazon Pinpoint

"arn": "arn:aws:iam::123456789012:root", "principalId": "123456789012", "sessionContext": { "attributes": { "creationDate": "2018-02-02T16:55:29Z", "mfaAuthenticated": "false" } }, "type": "Root" } }, { "awsRegion": "us-east-1", "eventID": "example0-09a3-47d6-a810-c5f9fd2534fe", "eventName": "CreateCampaign", "eventSource": "pinpoint.amazonaws.com", "eventTime": "2018-02-03T01:05:16Z", "eventType": "AwsApiCall", "eventVersion": "1.05", "readOnly": false, "recipientAccountId": "123456789012", "requestID": "example1-b9bb-50fa-abdb-80f274981d60", "requestParameters": { "Description": "***", "HoldoutPercent": 0, "IsPaused": false, "MessageConfiguration": "***", "Name": "***", "Schedule": { "Frequency": "ONCE", "IsLocalTime": true, "StartTime": "2018-02-03T00:00:00-08:00", "Timezone": "utc-08" }, "SegmentId": "exampleda204adf991a80281aa0e591", "SegmentVersion": 1, "application-id": "example71dfa4c1aab66332a5839798f" }, "responseElements": { "ApplicationId": "example71dfa4c1aab66332a5839798f", "CreationDate": "2018-02-03T01:05:16.425Z", "Description": "***", "HoldoutPercent": 0, "Id": "example54a654f80948680cbba240ede", "IsPaused": false, "LastModifiedDate": "2018-02-03T01:05:16.425Z", "MessageConfiguration": "***", "Name": "***", "Schedule": { "Frequency": "ONCE", "IsLocalTime": true, "StartTime": "2018-02-03T00:00:00-08:00", "Timezone": "utc-08" }, "SegmentId": "example4da204adf991a80281example", "SegmentVersion": 1, "State": { "CampaignStatus": "SCHEDULED" }, "Version": 1 }, "sourceIPAddress": "192.0.2.0", "userAgent": "aws-cli/1.14.9 Python/3.4.3 Linux/3.4.0+ botocore/1.8.34", "userIdentity": { "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "accountId": "123456789012",

323

Page 331: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos: entradas de arquivos de log do Amazon Pinpoint

"arn": "arn:aws:iam::123456789012:user/userName", "principalId": "AIDAIHTHRCDA62EXAMPLE", "type": "IAMUser", "userName": "userName" } } ]}

O exemplo a seguir mostra uma entrada de log do CloudTrail que demonstra as ações deCreateConfigurationSet e CreateConfigurationSetEventDestination da API de SMS e vozdo Amazon Pinpoint.

{ "Records": [ { "eventVersion":"1.05", "userIdentity":{ "type":"IAMUser", "principalId":"AIDAIHTHRCDA62EXAMPLE", "arn":"arn:aws:iam::111122223333:user/SampleUser", "accountId":"111122223333", "accessKeyId":"AKIAIOSFODNN7EXAMPLE", "userName":"SampleUser" }, "eventTime":"2018-11-06T21:45:55Z", "eventSource":"sms-voice.amazonaws.com", "eventName":"CreateConfigurationSet", "awsRegion":"us-east-1", "sourceIPAddress":"192.0.0.1", "userAgent":"PostmanRuntime/7.3.0", "requestParameters":{ "ConfigurationSetName":"MyConfigurationSet" }, "responseElements":null, "requestID":"56dcc091-e20d-11e8-87d2-9994aexample", "eventID":"725843fc-8846-41f4-871a-7c52dexample", "readOnly":false, "eventType":"AwsApiCall", "recipientAccountId":"123456789012" }, { "eventVersion":"1.05", "userIdentity":{ "type":"IAMUser", "principalId":"AIDAIHTHRCDA62EXAMPLE", "arn":"arn:aws:iam::111122223333:user/SampleUser", "accountId":"111122223333", "accessKeyId":"AKIAIOSFODNN7EXAMPLE", "userName":"SampleUser" }, "eventTime":"2018-11-06T21:47:08Z", "eventSource":"sms-voice.amazonaws.com", "eventName":"CreateConfigurationSetEventDestination", "awsRegion":"us-east-1", "sourceIPAddress":"192.0.0.1", "userAgent":"PostmanRuntime/7.3.0", "requestParameters":{ "EventDestinationName":"CloudWatchEventDestination", "ConfigurationSetName":"MyConfigurationSet", "EventDestination":{ "Enabled":true, "MatchingEventTypes":[ "INITIATED_CALL",

324

Page 332: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos: entradas de arquivos de log do Amazon Pinpoint

"INITIATED_CALL" ], "CloudWatchLogsDestination":{ "IamRoleArn":"arn:aws:iam::111122223333:role/iamrole-01", "LogGroupArn":"arn:aws:logs:us-east-1:111122223333:log-group:clientloggroup-01" } } }, "responseElements":null, "requestID":"81de1e73-e20d-11e8-b158-d5536example", "eventID":"fcafc21f-7c93-4a3f-9e72-fca2dexample", "readOnly":false, "eventType":"AwsApiCall", "recipientAccountId":"111122223333" } ]}

325

Page 333: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorGerenciamento de tags

Marcar recursos do Amazon PinpointTag é um rótulo que definido e associado opcionalmente a recursos da AWS, incluindo certos tipos derecurso do Amazon Pinpoint. As tags podem ajudar a categorizar e gerenciar recursos de diferentesmaneiras, como por finalidade, proprietário, ambiente ou outros critérios. Por exemplo, você pode usartags para aplicar políticas ou automação ou para identificar recursos sujeitos a determinados requisitos deconformidade. Você pode adicionar tags aos seguintes tipos de recurso do Amazon Pinpoint:

• Campanhas• Modelos de mensagens• Projetos (aplicativos)• Segmentos

Um recurso pode ter até 50 tags.

Gerenciamento de tagsCada tag consiste em uma chave de tag obrigatória e um valor de tag associado, ambos definidos porvocê. Uma chave de tag é um rótulo geral que atua como uma categoria para valores de tags maisespecíficos. Um valor de tag age como um descritor de uma chave de tag. Por exemplo, se você tiverduas versões de um projeto do Amazon Pinpoint (uma para testes internos e outra para uso externo) vocêpoderá atribuir uma chave de tag Stack aos dois projetos. O valor da chave de Stack tag pode ser umTest para uma versão do projeto e um Production para outra versão.

Uma chave de tag podem conter até 128 caracteres. Um valor de tag podem conter até 256 caracteres. Oscaracteres podem ser letras Unicode, números, espaços em branco ou um dos seguintes símbolos: _ . : / =+ -. As seguintes restrições adicionais se aplicam a tags:

• As chaves e os valores de tags diferenciam maiúsculas de minúsculas.• Para cada recurso associado, cada chave de tag deve ser exclusiva e pode ter apenas um valor.• O prefixo aws: é reservado para uso pela AWS; você não pode usá-lo em nenhuma chave de tag ou

valores definidos por você. Além disso, você não pode editar ou remover chaves de tag ou valores queusam esse prefixo. As tags que usam esse prefixo não contam com a cota de 50 tags por recurso.

• Você não pode atualizar ou excluir um recurso com base apenas em suas tags. Você também deveespecificar o nome de recurso da Amazon (ARN) ou o ID do recurso, dependendo da operação usada.

• Você pode associar tags a recursos públicos ou compartilhados. No entanto, as tags estão disponíveisapenas para sua conta da AWS, e não para nenhuma outra conta que compartilhe o recurso. Alémdisso, as tags estão disponíveis apenas para recursos localizados na região da AWS especificada parasua conta da AWS.

Para adicionar, exibir, atualizar e remover chaves de tag e valores de recursos do Amazon Pinpoint, vocêpode usar a AWS Command Line Interface (AWS CLI), a API do Amazon Pinpoint, a API de marcação doAWS Resource Groups ou um AWS SDK. Para gerenciar chaves e valores de tags em todos os recursosda AWS localizados em uma região específica da AWS para sua conta da AWS (incluindo os recursos doAmazon Pinpoint) use a API de tags do AWS Resource Groups.

326

Page 334: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorUso te Tags em políticas do IAM

Uso te Tags em políticas do IAMDepois de começar a implementar tags, você pode aplicar permissões de nível de recurso baseadasem tags para políticas e operações de API do AWS Identity and Access Management (IAM). Isto incluioperações que ão compatíveis com acrescentar tags a recursos quando estes são criados. Usando ostags dessa forma, é possível implementar um controle granular de quais grupos e usuários em sua contada AWS têm permissão para criar e marcar recursos e quais grupos e usuários têm permissão para criar,atualizar e remover tags de maneira mais geral.

Por exemplo, é possível criar uma política que permita que um usuário tenha acesso completo a todos osrecursos do Amazon Pinpoint, no qual o nome é um valor na tag Owner do recurso:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ModifyResourceIfOwner", "Effect": "Allow", "Action": "mobiletargeting:*", "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "aws:ResourceTag/Owner": "${aws:username}" } } } ]}

Se você definir permissões em nível de recurso e baseadas em tag, as permissões entrarão em vigorimediatamente. Isso significa que seus recursos ficam mais seguros assim que são criados, e você podecomeçar a aplicar rapidamente o uso de tags para novos recursos. Você também pode usar permissõesem nível de recurso para controlar quais valores e chaves de tag podem ser associados a recursos novose existentes. Para obter mais informações, consulte Controlar o acesso usando tags no Guia do usuário doIAM da AWS.

Adicionar tags a recursosOs exemplos a seguir mostram como adicionar uma tag a um recurso do Amazon Pinpoint usando aAWS CLI e a API REST do Amazon Pinpoint. Os exemplos da AWS CLI são formatados para o MicrosoftWindows. Para Unix, Linux e macOS, substitua o caractere de continuação de linha circunflexo (^) por umabarra invertida (\). Você também pode usar qualquer SDK da AWS compatível para adicionar uma tag a umrecurso.

Para adicionar uma tag a vários recursos do Amazon Pinpoint em uma única operação, use as operaçõesde marcação dos grupos de recursos da AWS CLI ou da API de tags do AWS Resource Groups.

AWS CLI

Para criar um recurso e adicionar uma tag a ele usando a AWS CLI, use o comando createapropriado para o recurso. Inclua o parâmetro tags e os valores. Por exemplo, o comando a seguircria um projeto chamado ExampleCorp e adiciona uma chave de tag do Stack com um valor de tagde Test ao projeto:

C:\> aws pinpoint create-app ^ --create-application-request ^ --Name=ExampleCorp ^

327

Page 335: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAdicionar tags a recursos

--tags={Stack=Test}

Para obter informações sobre os comandos que podem ser usados para criar um recurso do AmazonPinpoint, consulte a Referência de comandos da AWS CLI.

Para adicionar uma tag a um recurso existente, empregue o comando tag-resource e especifiqueos valores apropriados para os parâmetros necessários:

C:\> aws pinpoint tag-resource ^ --resource-arn resource-arn ^ --tags-model tags={key=value}

Onde:

• resource-arn é o nome de recurso da Amazon (ARN) do recurso ao qual você deseja adicionaruma tag.

• key é a chave da tag que você deseja adicionar ao recurso. O argumento key é obrigatório.• value é o valor de tag opcional que você deseja adicionar para a chave de tag especificada

(key). O argumento value é obrigatório. Se você não quiser que o recurso tenha um valor de tagespecífico, não especifique um valor para o argumento value. O Amazon Pinpoint define o valorpara uma string vazia.

REST API

Para criar um recurso e adicionar uma tag a ele usando a API REST do Amazon Pinpoint, envie umasolicitação POST ao URI do recurso apropriado. No corpo da solicitação, inclua o parâmetro tags eos valores. Por exemplo, o comando a seguir cria um projeto chamado ExampleCorp e adiciona umachave de tag Stack com um valor de tag de Test ao projeto:

POST /v1/apps HTTP/1.1Host: pinpoint.us-east-1.amazonaws.comContent-Type: application/x-www-form-urlencodedAccept: application/jsonCache-Control: no-cache

{ "Name":"ExampleCorp", "tags":{ "Stack":"Test" }}

Para adicionar uma tag a um recurso existente, envie uma solicitação POST ao URI de Tags. Inclua onome de recurso da Amazon (ARN) do recurso no URI. O ARN deve ser codificado por URL. No corpoda solicitação, inclua o parâmetro e os valores de tags. Por exemplo, a solicitação a seguir adicionauma chave de tag do Stack com um valor de tag Test ao projeto especificado (resource-arn):

POST /v1/tags/resource-arn HTTP/1.1Host: pinpoint.us-east-1.amazonaws.comContent-Type: application/jsonAccept: application/jsonCache-Control: no-cache

{ "tags":{ "Stack":"Test" }}

328

Page 336: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExibição de tags para recursos

Como alternativa, você pode enviar uma solicitação POST ao URI de recurso apropriado e incluir oparâmetro tags e os valores no corpo da solicitação. Por exemplo, a solicitação a seguir adicionauma chave de tag do Stack com um valor de tag de Test à campanha especificada:

PUT /v1/apps/application-id/campaigns/campaign-id HTTP/1.1Host: pinpoint.us-east-1.amazonaws.comContent-Type: application/x-www-form-urlencodedAccept: application/jsonCache-Control: no-cache

{ "tags":{ "Stack":"Test" }}

Onde:

• application-id é o ID do projeto que contém a campanha.• campaign-id é o ID da campanha.

Observe que atualmente a API do Amazon Pinpoint não é compatível com solicitações PUT paraprojetos. Portanto, você deve usar o recurso Tags para adicionar uma tag a um projeto existente.

Exibição de tags para recursosOs exemplos a seguir mostram como usar o AWS CLI e a API REST do Amazon Pinpoint para exibir umalista de todas as tags (chaves e valores) que estão associadas a um recurso do Amazon Pinpoint. Osexemplos da AWS CLI são formatados para o Microsoft Windows. Para Unix, Linux e macOS, substituao caractere de continuação de linha circunflexo (^) por uma barra invertida (\). Você também pode usarqualquer SDK a AWS compatível para exibir todas as tags que estão associadas a um recurso.

AWS CLI

Para usar o AWS CLI para exibir uma lista das tags que estão associadas a um recurso específico,execute o comando list-tags-for-resource e especifique o nome de recurso da Amazon (ARN)para o parâmetro resource-arn:

C:\> aws pinpoint list-tags-for-resource ^ --resource-arn resource-arn

Para exibir uma lista de todos os recursos do Amazon Pinpoint que possuem tags, e todas as tags queestão associadas a cada um desses recursos, use o comando get-resources da API de tags doAWS Resource Groups. Defina o parâmetro resource-type-filters como mobiletargeting.Por exemplo:

C:\> aws resourcegroupstaggingapi get-resources ^ --resource-type-filters "mobiletargeting"

A saída do comando é uma lista de ARNs para todos os recursos do Amazon Pinpoint que possuemtags. A lista inclui todas as chaves de tag e valores associados a cada recurso.

REST API

Para usar a API REST do Amazon Pinpoint para exibir todas as tags que estão associadas a umrecurso específico, envie uma solicitação GET ao URI de Tags, incluindo o nome de recurso da

329

Page 337: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtualização de tags para recursos

Amazon (ARN) do recurso no URI. O ARN deve ser codificado por URL. Por exemplo, a solicitação aseguir recupera todas as tags que estão associadas a uma campanha especificada (resource-arn):

GET /v1/tags/resource-arn HTTP/1.1Host: pinpoint.us-east-1.amazonaws.comContent-Type: application/jsonAccept: application/jsonCache-Control: no-cache

A resposta JSON à solicitação inclui um objeto tags. O objeto tags lista todas as chaves de tag evalores que estão associados à campanha.

Para exibir todas as tags que estão associadas a mais de um recurso do mesmo tipo, envie umasolicitação GET ao URI apropriado para aquele tipo de recurso. Por exemplo, a solicitação a seguirrecupera informações sobre todas as campanhas no projeto especificado (application-id):

GET /v1/apps/application-id/campaigns HTTP/1.1Host: pinpoint.us-east-1.amazonaws.comContent-Type: application/jsonAccept: application/jsonCache-Control: no-cache

A resposta JSON à solicitação lista todas as campanhas no projeto. O objeto tags de cada campanhalista todas as chaves e valores de tag associados à campanha.

Atualização de tags para recursosHá várias formas de atualizar (substituir) uma tag para um recurso do Amazon Pinpoint. A melhor maneirade atualizar uma tag depende de:

• O tipo de recurso para o qual você deseja atualizar tags.• Isto se aplica tanto se você quiser atualizar uma tag para um recurso quanto para vários recursos ao

mesmo tempo.• Se você quiser atualizar uma chave de tag e um valor de tag, ou ambos.

Para atualizar uma tag para um projeto do Amazon Pinpoint ou para vários recursos ao mesmo tempo, useas operações de marcação de grupos de recursos da AWS CLI ou a API de marcação do AWS ResourceGroups. Atualmente, a API do Amazon Pinpoint não oferece suporte direto a nenhuma dessas tarefas.

Para atualizar uma chave de tag para um recurso, você pode remover a tag atual (p. 332) e adicionaruma nova tag (p. 327) usando a API do Amazon Pinpoint.

Para atualizar um valor de tag (de uma chave de tag) para apenas um recurso, você pode usar a API doAmazon Pinpoint. Os exemplos a seguir mostram como fazer isso usando a AWS CLI e a API REST doAmazon Pinpoint. Os exemplos da AWS CLI são formatados para o Microsoft Windows. Para Unix, Linuxe macOS, substitua o caractere de continuação de linha circunflexo (^) por uma barra invertida (\). Vocêtambém pode usar qualquer SDK da AWS compatível para atualizar um valor de tag para um recurso.

AWS CLI

A AWS CLI pode ser usada para atualizar um valor de tag para um recurso.

Para fazer isso especificando um ID de recurso, use o comando update apropriado para o tipo derecurso. Inclua o parâmetro tags e os argumentos. Por exemplo, o comando a seguir altera o valor datag de Test para Production para a chave de tag do Stack associada à campanha especificada:

330

Page 338: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtualização de tags para recursos

C:\> aws pinpoint update-campaign ^ --application-id application-id ^ --campaign-id campaign-id ^ --write-campaign-request tags={Stack=Production}

Onde:

• application-id é o ID do projeto que contém a campanha.• campaign-id é o ID da campanha cuja tag você deseja atualizar.

Para obter informações sobre os comandos que podem ser usados para atualizar um recurso doAmazon Pinpoint, consulte a Referência de comandos da AWS CLI.

Para atualizar um valor de tag especificando um nome de recurso da Amazon (ARN), execute ocomando tag-resource e inclua o parâmetro e os argumentos de tags-model:

C:\> aws pinpoint tag-resource ^ --resource-arn resource-arn ^ --tags-model tags={key=value}

Onde:

• resource-arn é o ARN do recurso cuja tag você deseja atualizar. Para obter uma lista de ARNspara recursos do Amazon Pinpoint, você pode exibir uma lista de recursos do Amazon Pinpoint quepossuem tags (p. 329).

• key é a chave de tag. O argumento key é obrigatório.• value é o valor da tag a ser usada para uma chave de tag especificada (key). O argumento value

é obrigatório. Para remover o valor da tag, não especifique um valor para esse argumento. OAmazon Pinpoint define o valor de uma string vazia.

REST API

A API REST do Amazon Pinpoint pode ser usada para atualizar um valor de tag para um recurso.Para fazer isso, envie uma solicitação PUT ao URI apropriado para o tipo de recurso cuja tag vocêdeseja atualizar. No corpo da solicitação, inclua o parâmetro e os valores de tags. Para o parâmetrotags, especifique a chave de tag correspondente para a propriedade tag. Para a propriedade value,execute uma das seguintes ações:

• Para usar um novo valor, especifique o valor.• Para remover o valor, não especifique um valor. O Amazon Pinpoint define o valor como uma string

vazia.

Por exemplo, a solicitação a seguir altera o valor da tag de Test para Production para a chave detag do Stack associada à campanha especificada:

PUT /v1/apps/application-id/campaigns/campaign-id HTTP/1.1Host: pinpoint.us-east-1.amazonaws.comContent-Type: application/jsonAccept: application/jsonCache-Control: no-cache

{ "tags": { "Stack": "Production" }

331

Page 339: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorRemoção de tags de recursos

}

Onde:

• application-id é o ID do projeto que contém a campanha.• campaign-id é o ID da campanha cuja tag você deseja atualizar.

Remoção de tags de recursosOs exemplos a seguir mostram como remover uma tag (a chave e o valor) de um recurso do AmazonPinpoint usando a AWS CLI e a API REST do Amazon Pinpoint. Os exemplos da AWS CLI são formatadospara o Microsoft Windows. Para Unix, Linux e macOS, substitua o caractere de continuação de linhacircunflexo (^) por uma barra invertida (\). Para remover uma tag de um recurso, também é possívelqualquer SDK da AWS compatível.

Para adicionar uma tag a vários recursos do Amazon Pinpoint em uma única operação, use as operaçõesde marcação dos grupos de recursos da AWS CLI ou da API de marcação do AWS Resource Groups.Para remover apenas um valor de tag específico, e não uma chave de tag, de um recurso, atualize a tagpara o recurso (p. 330).

AWS CLI

Para remover uma tag de um recurso usando a AWS CLI, execute o comando untag-resource.Inclua o parâmetro tag-keys e o argumento:

C:\> aws pinpoint untag-resource ^ --resource-arn resource-arn ^ --tag-keys key

Onde:

• resource-arn é o nome de recurso da Amazon (ARN) do recurso do qual você deseja removeruma tag. Para obter uma lista de ARNs para recursos do Amazon Pinpoint, você pode exibir umalista de todos os recursos do Amazon Pinpoint que possuem tags (p. 329).

• key é a tag que você deseja remover do recurso. O argumento key é obrigatório.

Para remover várias tags de um recurso, acrescente cada chave adicional como argumento para oparâmetro tag-keys:

C:\> aws pinpoint untag-resource ^ --resource-arn resource-arn ^ --tag-keys key1 key2

Onde:

• resource-arn é o ARN do recurso do qual você deseja remover as tags.• key# é cada tag que você deseja remover do recurso.

REST API

Para remover uma tag de um recurso usando a API REST do Amazon Pinpoint, envie uma solicitaçãoDELETE para o URI de Tags. No URI, inclua o nome de recurso da Amazon (ARN) do recurso do qualvocê deseja remover uma tag, seguido pelo parâmetro tagKeys e a tag a ser removida. Por exemplo:

332

Page 340: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorInformações relacionadas

https://endpoint/v1/tags/resource-arn?tagKeys=key

Onde:

• endpoint é o endpoint do Amazon Pinpoint da região da AWS que hospeda o recurso.• resource-arn é o ARN do recurso do qual você deseja remover uma tag.• key é a tag que você deseja remover do recurso.

Todos os parâmetros devem ser codificados por URL.

Para remover várias chaves de tags e seus valores associados de um recurso, anexe o parâmetro eargumento de tagKeys para cada tag adicional a ser removida, separada por um E comercial (&). Porexemplo:

https://endpoint/v1/tags/resource-arn?tagKeys=key1&tagKeys=key2

Todos os parâmetros devem ser codificados por URL.

Informações relacionadasPara obter mais informações sobre os comandos da CLI que você pode usar para gerenciar os recursos doAmazon Pinpoint, consulte a seção de Amazon Pinpoint da Referência de comandos da AWS CLI.

Para obter mais informações sobre recursos na API do Amazon Pinpoint, incluindo suporte de métodosHTTP(S), parâmetros e esquemas, consulte a Amazon Pinpoint API Reference.

333

Page 341: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorUsar recomendações em mensagens

Personalizar recomendações com oAWS Lambda

No Amazon Pinpoint, você pode recuperar recomendações personalizadas de um modelo derecomendação e adicioná-las a mensagens enviadas de campanhas e jornadas. Um modelo derecomendação é um tipo de modelo de machine learning (ML) que encontra padrões em dados e geraprevisões e recomendações com base nos padrões encontrados. Ele prevê o que um determinadousuário preferirá de um determinado conjunto de produtos ou itens, e fornece essas informações como umconjunto de recomendações para o usuário.

Usando modelos de recomendação com o Amazon Pinpoint, você pode enviar recomendaçõespersonalizadas para destinatários de mensagens com base nos atributos e no comportamento de cadadestinatário. Com o AWS Lambda, você também pode personalizar e aprimorar essas recomendações.Por exemplo, você pode transformar dinamicamente uma recomendação de um único valor de texto (comoum nome ou ID de produto) para conteúdo mais sofisticado (como nome de produto, descrição e imagem).E você pode fazer isso em tempo real, quando o Amazon Pinpoint envia a mensagem.

Esse recurso está disponível nas seguintes regiões da AWS: Leste dos EUA (Norte da Virgínia); Oeste dosEUA (Oregon); Ásia Pacífico (Mumbai); Ásia-Pacífico (Sydney); e Europa (Irlanda).

Tópicos• Usar recomendações em mensagens (p. 334)• Criar a função Lambda (p. 336)• Atribuição de uma política de função Lambda (p. 341)• Autorizar o Amazon Pinpoint a chamar a função (p. 342)• Configurar o modelo do recomendação (p. 342)

Usar recomendações em mensagensPara usar um modelo de recomendação com o Amazon Pinpoint, você começa criando uma solução doAmazon Personalize e implantando essa solução como uma campanha do Amazon Personalize. Depoisdisso, crie uma configuração para o modelo de recomendação no Amazon Pinpoint. Na configuração,você especifica configurações que determinam como recuperar e processar dados de recomendação dacampanha do Amazon Personalize. Isso inclui se uma função do AWS Lambda deve ser invocada paraexecutar processamento adicional dos dados recuperados.

O Amazon Personalize é um serviço da AWS projetado para ajudar você a criar modelos de ML quefornecem recomendações personalizadas em tempo real para clientes que usam seus aplicativos. OAmazon Personalize orienta você durante o processo de criação e treinamento de um modelo de MLe a preparar e implantar o modelo como uma campanha do Amazon Personalize. Depois, você poderecuperar recomendações personalizadas em tempo real da campanha. Para saber mais sobre o AmazonPersonalize, consulte o Guia do desenvolvedor do Amazon Personalize.

O AWS Lambda é um serviço de computação que pode ser usado para executar código semprovisionamento ou gerenciamento de servidores. Você empacota o código e faz upload dele no AWSLambda como uma função do Lambda. O AWS Lambda então executa a função quando ela é invocada.Uma função pode ser invocada manualmente por você, automaticamente em resposta a eventos ou emresposta a solicitações de aplicativos ou serviços, incluindo o Amazon Pinpoint. Para obter informaçõessobre como criar e invocar funções do Lambda, consulte o AWS Lambda Developer Guide.

334

Page 342: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorUsar recomendações em mensagens

Depois de criar uma configuração do Amazon Pinpoint para um modelo de recomendação, você podeadicionar recomendações do modelo às mensagens enviadas de campanhas e jornadas. Faça issousando modelos de mensagens que contêm variáveis de mensagem para os atributos recomendados. Umatributo recomendado é um endpoint dinâmico ou um atributo de usuário projetado para armazenar dadosde recomendação. Você define esses atributos ao criar a configuração para um modelo de recomendação.

Você pode usar variáveis para atributos recomendados nos seguintes tipos de modelos de mensagens:

• Modelos de e-mail, para mensagens de e-mail que você envia de campanhas ou jornadas.• Modelos de notificação por push, para as notificações por push enviadas de campanhas.• Modelos de SMS, para mensagens de texto SMS enviadas de campanhas.

Para obter mais informações sobre como usar modelos de recomendação com o Amazon Pinpoint,consulte Modelos de machine learning no Guia do usuário do Amazon Pinpoint.

Se você configurar o Amazon Pinpoint para chamar uma função do Lambda que processa dadosde recomendação, o Amazon Pinpoint executará as seguintes tarefas gerais sempre que enviarrecomendações personalizadas em uma mensagem para uma campanha ou jornada:

1. Avalia e processa as definições de configuração e o conteúdo da mensagem e do modelo demensagem.

2. Determina que o modelo de mensagem está conectado a um modelo de recomendação.3. Avalia as definições da configuração de conexão e uso do modelo. Essas são definidas pelo recurso

Modelo de recomendação do modelo.4. Detecta uma ou mais variáveis de mensagem para atributos recomendados definidos pelas definições

de configuração do modelo.5. Recupera dados de recomendação da campanha do Amazon Personalize especificada nas

configurações do modelo. Ele usa a operação GetRecommendations da API do Amazon PersonalizeRuntime para executar essa tarefa.

6. Adiciona os dados de recomendação apropriados a um atributo dinâmico recomendado(RecommendationItems) para cada destinatário da mensagem.

7. Invoca sua função do Lambda e envia os dados de recomendação para cada destinatário para essafunção para processamento.

Os dados são enviados como um objeto JSON que contém a definição do endpoint de cadadestinatário. Cada definição de endpoint inclui um campo RecommendationItems que contémuma matriz ordenada de 1 a 5 valores. O número de valores na matriz depende das definições deconfiguração do modelo.

8. Aguarda que sua função do Lambda processe os dados e retorne os resultados.

Os resultados são um objeto JSON que contém uma definição de endpoint atualizada para cadadestinatário. Cada definição de endpoint atualizada contém um novo objeto RecommendationsEsse objeto contém 1 a 10 campos, um para cada atributo recomendado personalizado definido nasconfigurações do modelo. Cada um desses campos armazena dados de recomendação aprimoradospara o endpoint.

9. Usa a definição do endpoint atualizada para cada destinatário para substituir cada variável demensagem pelo valor apropriado para esse destinatário.

10.Envia uma versão da mensagem que contém as recomendações personalizadas para cada destinatárioda mensagem.

Para personalizar e aprimorar as recomendações dessa maneira, comece criando uma função do Lambdaque processa as definições de endpoint enviadas pelo Amazon Pinpoint e retorna definições de endpointatualizadas. Depois disso, atribua uma política de função do Lambda à função e autorize o Amazon

335

Page 343: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCriar a função Lambda

Pinpoint a invocar a função. Configure o modelo de recomendação no Amazon Pinpoint. Ao configurar omodelo, especifique a função a ser invocada e defina os atributos recomendados a serem usados.

Criar a função LambdaPara saber como criar uma função do Lambda, consulte Conceitos básicos no AWS Lambda DeveloperGuide. Ao projetar e desenvolver sua função, lembre-se dos seguintes requisitos e diretrizes.

Dados de evento de entradaQuando o Amazon Pinpoint invoca uma função do Lambda para um modelo de recomendação, ele enviauma carga útil que contém a configuração e outras definições da campanha ou jornada que está enviandoa mensagem. A carga útil inclui um objeto Endpoints, que é um mapa que associa IDs de endpoint adefinições de endpoint para os destinatários de mensagem.

As definições de endpoint usam a estrutura definida pelo recurso Endpoint da API do Amazon Pinpoint.No entanto, eles também incluem um campo para um atributo recomendado dinâmico chamadoRecommendationItems. O campo RecommendationItems contém um ou mais itens recomendadospara o endpoint, conforme retornado pela campanha do Amazon Personalize. O valor desse campo éuma matriz ordenada de 1 a 5 itens recomendados (como strings). O número de itens na matriz dependedo número de itens recomendados que você configurou o Amazon Pinpoint para recuperar para cadaendpoint ou usuário.

Por exemplo:

"Endpoints": { "endpointIDexample-1":{ "ChannelType":"EMAIL", "Address":"[email protected]", "EndpointStatus":"ACTIVE", "OptOut":"NONE", "EffectiveDate":"2020-02-26T18:56:24.875Z", "Attributes":{ "AddressType":[ "primary" ] }, "User":{ "UserId":"SofiaMartínez", "UserAttributes":{ "LastName":[ "Martínez" ], "FirstName":[ "Sofia" ], "Neighborhood":[ "East Bay" ] } }, "RecommendationItems":[ "1815", "2009", "1527" ], "CreationDate":"2020-02-26T18:56:24.875Z" }, "endpointIDexample-2":{

336

Page 344: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorDados e requisitos de resposta

"ChannelType":"EMAIL", "Address":"[email protected]", "EndpointStatus":"ACTIVE", "OptOut":"NONE", "EffectiveDate":"2020-02-26T18:56:24.897Z", "Attributes":{ "AddressType":[ "primary" ] }, "User":{ "UserId":"AlejandroRosalez", "UserAttributes":{ "LastName ":[ "Rosalez" ], "FirstName":[ "Alejandro" ], "Neighborhood":[ "West Bay" ] } }, "RecommendationItems":[ "1210", "6542", "4582" ], "CreationDate":"2020-02-26T18:56:24.897Z" }}

No exemplo anterior, as configurações relevantes do Amazon Pinpoint são:

• O modelo de recomendação é configurado para recuperar três itens recomendados para cada endpointou usuário. (O valor da propriedade RecommendationsPerMessage é definido como 3.) Com essaconfiguração, o Amazon Pinpoint recupera e adiciona apenas o primeiro, o segundo e o terceiro itensrecomendados para cada endpoint ou usuário.

• O projeto está configurado para usar atributos de usuário personalizados que armazenam o nome, osobrenome e a região em que vivem. (O objeto UserAttributes contém os valores desses atributos.)

• O projeto está configurado para usar um atributo de endpoint personalizado (AddressType) que indicase o endpoint é o endereço preferido do usuário (canal) para receber mensagens do projeto. (O objetoAttributes contém o valor desse atributo.)

Quando o Amazon Pinpoint chama a função do Lambda e envia essa carga útil como os dados do evento,o AWS Lambda passa os dados para a função do Lambda para processamento.

Cada carga pode conter dados para até 50 endpoints. Se um segmento contiver mais de 50 endpoints, oAmazon Pinpoint invocará a função repetidamente, para até 50 endpoints de cada vez, até que a funçãoprocesse todos os dados.

Dados e requisitos de respostaAo projetar e desenvolver sua função do Lambda, lembre-se das cotas de modelos de machinelearning (p. 412). Se a função não atender às condições definidas por essas cotas, o Amazon Pinpointnão poderá processar e enviar a mensagem.

Lembre-se também dos seguintes requisitos:

337

Page 345: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorDados e requisitos de resposta

• A função deve retornar definições de endpoint atualizadas no mesmo formato fornecido pelos dados doevento de entrada.

• Cada definição de endpoint atualizado pode conter de 1 a 10 atributos recomendados personalizadospara o endpoint ou o usuário. Os nomes desses atributos devem corresponder aos nomes de atributosespecificados ao configurar o modelo de recomendação no Amazon Pinpoint.

• Todos os atributos recomendados personalizados devem ser retornados em um único objetoRecommendations para cada endpoint ou usuário. Esse requisito ajuda a garantir que não ocorramconflitos de nomenclatura. Você pode adicionar o objeto Recommendations a qualquer local em umadefinição de endpoint.

• O valor de cada atributo recomendado personalizado precisa ser uma string (valor único) ou umamatriz de strings (vários valores). Se o valor for uma matriz de strings, recomendamos manter aordem dos itens recomendados retornados pelo Amazon Personalize, conforme indicado no campoRecommendationItems. Caso contrário, seu conteúdo pode não refletir as previsões do modelo paraum endpoint ou usuário.

• A função não deve modificar outros elementos nos dados do evento, incluindo outros valores deatributos para um endpoint ou usuário. Ela deve adicionar e retornar valores apenas para atributosrecomendados personalizados. O Amazon Pinpoint não aceitará atualizações de qualquer outro valor naresposta da função.

• A função deve ser hospedada na mesma região da AWS que o projeto do Amazon Pinpoint que estáchamando a função. Se a função e o projeto não estiverem na mesma região, o Amazon Pinpoint nãopoderá enviar dados de evento para a função.

Se qualquer um dos requisitos anteriores não for atendido, o Amazon Pinpoint não poderá processar eenviar a mensagem para um ou mais endpoints. Isso pode fazer com que uma atividade de campanha oude jornada falhe.

Finalmente, recomendamos reservar 256 execuções simultâneas para a função.

No geral, a função do Lambda deve processar os dados de evento enviados pelo Amazon Pinpointe retornar definições de endpoint modificadas. Ela pode fazer isso percorrendo cada endpoint noobjeto Endpoints e, para cada endpoint, criando e definindo valores para os atributos recomendadospersonalizados que você deseja usar. O manipulador de exemplo a seguir, escrito em Python econtinuando com o exemplo anterior de dados de evento de entrada, mostra o seguinte:

import jsonfrom random import randrangeimport randomimport string def lambda_handler(event, context): print("Received event: " + json.dumps(event)) print("Received context: " + str(context)) segment_endpoints = event["Endpoints"] new_segment = dict() for endpoint_id in segment_endpoints.keys(): endpoint = segment_endpoints[endpoint_id] if supported_endpoint(endpoint): new_segment[endpoint_id] = add_recommendation(endpoint) print("Returning endpoints: " + json.dumps(new_segment)) return new_segment def supported_endpoint(endpoint): return True def add_recommendation(endpoint): endpoint["Recommendations"] = dict() customTitleList = list()

338

Page 346: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorDados e requisitos de resposta

customGenreList = list() for i,item in enumerate(endpoint["RecommendationItems"]): item = int(item) if item = 1210: customTitleList.insert(i, "Hanna") customGenreList.insert(i, "Action") elif item = 1527: customTitleList.insert(i, "Catastrophe") customGenreList.insert(i, "Comedy") elif item = 1815: customTitleList.insert(i, "Fleabag") customGenreList.insert(i, "Comedy") elif item = 2009: customTitleList.insert(i, "Late Night") customGenreList.insert(i, "Drama") elif item = 4582: customTitleList.insert(i, "Agatha Christie\'s The ABC Murders") customGenreList.insert(i, "Crime") elif item = 6542: customTitleList.insert(i, "Hunters") customGenreList.insert(i, "Drama") endpoint["Recommendations"]["Title"] = customTitleList endpoint["Recommendations"]["Genre"] = customGenreList return endpoint

No exemplo anterior, o AWS Lambda passa os dados do evento para o manipulador como o parâmetroevent. O manipulador percorre cada endpoint no objeto Endpoints e define valores para os atributosrecomendados personalizados nomeados Recommendations.Title e Recommendations.Genre. Ainstrução return retorna cada definição de endpoint atualizada para o Amazon Pinpoint.

Continuando com o exemplo anterior de dados de evento de entrada, as definições de endpointatualizadas são:

"Endpoints":{ "endpointIDexample-1":{ "ChannelType":"EMAIL", "Address":"[email protected]", "EndpointStatus":"ACTIVE", "OptOut":"NONE", "EffectiveDate":"2020-02-26T18:56:24.875Z", "Attributes":{ "AddressType":[ "primary" ] }, "User":{ "UserId":"SofiaMartínez", "UserAttributes":{ "LastName":[ "Martínez" ], "FirstName":[ "Sofia" ], "Neighborhood":[ "East Bay" ] } }, "RecommendationItems":[ "1815", "2009",

339

Page 347: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorDados e requisitos de resposta

"1527" ], "CreationDate":"2020-02-26T18:56:24.875Z", "Recommendations":{ "Title":[ "Fleabag", "Late Night", "Catastrophe" ], "Genre":[ "Comedy", "Comedy", "Comedy" ] } }, "endpointIDexample-2":{ "ChannelType":"EMAIL", "Address":"[email protected]", "EndpointStatus":"ACTIVE", "OptOut":"NONE", "EffectiveDate":"2020-02-26T18:56:24.897Z", "Attributes":{ "AddressType":[ "primary" ] }, "User":{ "UserId":"AlejandroRosalez", "UserAttributes":{ "LastName ":[ "Rosalez" ], "FirstName":[ "Alejandro" ], "Neighborhood":[ "West Bay" ] } }, "RecommendationItems":[ "1210", "6542", "4582" ], "CreationDate":"2020-02-26T18:56:24.897Z", "Recommendations":{ "Title":[ "Hanna", "Hunters", "Agatha Christie\'s The ABC Murders" ], "Genre":[ "Action", "Drama", "Crime" ] } }}

No exemplo anterior, a função modificou o objeto Endpoints que recebeu e retornou os resultados. Oobjeto Endpoint de cada endpoint agora contém um novo objeto Recommendations que contém oscampos Title e Genre. Cada um desses campos armazena uma matriz ordenada de três valores (como

340

Page 348: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtribuição de uma política de função Lambda

strings), onde cada valor fornece conteúdo aprimorado para um item recomendado correspondente nocampo RecommendationItems.

Atribuição de uma política de função LambdaAntes de usar a função do Lambda para processar dados de recomendação, você deve autorizar oAmazon Pinpoint a invocar a função. Para conceder permissão de invocação, atribua uma política defunção do Lambda à função. A política de função do Lambda é uma política de permissões baseadaem recursos que designa as entidades que podem usar uma função e quais ações essas entidadespodem executar. Para obter mais informações, consulte Usar politicas baseadas em recursos para o AWSLambda no AWS Lambda Developer Guide.

A política de exemplo a seguir permite que o principal do serviço do Amazon Pinpoint use a açãolambda:InvokeFunction para uma campanha específica do Amazon Pinpoint (campaignId) em umprojeto específico do Amazon Pinpoint (projectId):

{ "Sid": "sid", "Effect": "Allow", "Principal": { "Service": "pinpoint.us-east-1.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "{arn:aws:lambda:us-east-1:accountId:function:function-name}", "Condition": { "ArnLike": { "AWS:SourceArn": "arn:aws:mobiletargeting:us-east-1:accountId:/apps/projectId/campaigns/campaignId" } }}

A política de função requer um bloco Condition que inclua uma chave AWS:SourceArn. Essa chaveespecifica qual recurso tem permissão para invocar a função. No exemplo anterior, a política permite queuma campanha específica chame a função.

Você também pode escrever uma política que permita que o principal do serviço do Amazon Pinpoint usea ação lambda:InvokeFunction para todas as campanhas e jornadas em um projeto específico doAmazon Pinpoint (projectId). A política de exemplo a seguir mostra isso:

{ "Sid": "sid", "Effect": "Allow", "Principal": { "Service": "pinpoint.us-east-1.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "{arn:aws:lambda:us-east-1:accountId:function:function-name}", "Condition": { "ArnLike": { "AWS:SourceArn": "arn:aws:mobiletargeting:us-east-1:accountId:/apps/projectId" } }}

Ao contrário do primeiro exemplo, a chave AWS:SourceArn no bloco Condition deste exemplo permiteque um projeto específico chame a função. Essa permissão aplica-se a todas as campanhas e jornadas doprojeto.

341

Page 349: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAutorizar o Amazon Pinpoint a chamar a função

Para escrever uma política mais genérica, use um caractere curinga (*) que corresponda a várioscaracteres. Por exemplo, você pode usar o seguinte bloco Condition para permitir que qualquer projetodo Amazon Pinpoint chame a função:

"Condition": { "ArnLike": { "AWS:SourceArn": "arn:aws:mobiletargeting:us-east-1:accountId:/apps/*" }}

Para usar a função do Lambda com todos os projetos para sua conta do Amazon Pinpoint, recomendamosconfigurar o bloco Condition da política da maneira anterior. No entanto, para usar melhores práticas,crie políticas que incluem apenas as permissões necessárias para executar uma ação específica em umrecurso específico.

Autorizar o Amazon Pinpoint a chamar a funçãoDepois de atribuir uma política de função do Lambda à função, você pode adicionar permissões quepermitem que o Amazon Pinpoint chame a função para um projeto, campanha ou jornada específico. Façaisso usando a AWS Command Line Interface (AWS CLI) e o comando add-permission do Lambda: Oexemplo a seguir mostra como fazer isso para um projeto específico (projectId):

$ aws lambda add-permission \--function-name function-name \--statement-id sid \--action lambda:InvokeFunction \--principal pinpoint.us-east-1.amazonaws.com \--source-arn arn:aws:mobiletargeting:us-east-1:accountId:/apps/projectId

O exemplo anterior está formatado para Unix, Linux e macOS. Para o Microsoft Windows, substitua ocaractere de continuação de linha de barra invertida (\) por um circunflexo (^).

Se o comando for executado com êxito, você verá um resultado semelhante a este:

{ "Statement": "{\"Sid\":\"sid\", \"Effect\":\"Allow\", \"Principal\":{\"Service\":\"pinpoint.us-east-1.amazonaws.com\"}, \"Action\":\"lambda:InvokeFunction\", \"Resource\":\"arn:aws:lambda:us-east-1:111122223333:function:function-name\", \"Condition\": {\"ArnLike\": {\"AWS:SourceArn\": \"arn:aws:mobiletargeting:us-east-1:111122223333:/apps/projectId\"}}}"}

O valor de Statement é uma versão da string JSON da instrução adicionada à política da função doLambda.

Configurar o modelo do recomendaçãoPara configurar o Amazon Pinpoint para chamar a função do Lambda de um modelo de recomendação,especifique as seguintes definições de configuração específicas ao Lambda para o modelo:

342

Page 350: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorConfigurar o modelo do recomendação

• RecommendationTransformerUri – esta propriedade especifica o nome ou o nome de recurso daAmazon (ARN) da função do Lambda.

• Attributes – este objeto é um mapa que define os atributos recomendados personalizados que afunção adiciona a cada definição de endpoint. Cada um desses atributos pode ser usado como umavariável de mensagem em um modelo de mensagem.

É possível especificar essas configurações usando o recurso Modelos de recomendação da API doAmazon Pinpoint (ao criar a configuração de um modelo) ou o recurso Modelo de recomendação da APIdo Amazon Pinpoint (se você atualizar a configuração de um modelo). Também é possível definir essasconfigurações usando o console do Amazon Pinpoint.

Para obter mais informações sobre como usar modelos de recomendação com o Amazon Pinpoint,consulte Modelos de machine learning no Guia do usuário do Amazon Pinpoint.

343

Page 351: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorComo excluir endpoints

Como excluir dados do AmazonPinpoint

Dependendo de como você o usa, o Amazon Pinpoint pode armazenar determinados dados que podemser considerados pessoais. Por exemplo, um endpoint no Amazon Pinpoint contém informações de contatode um usuário final, como endereço de e-mail ou número de telefone celular dessa pessoa.

Use o console ou a API do Amazon Pinpoint para excluir permanentemente esses dados pessoais. Estetópico inclui procedimentos para excluir vários tipos de dados que podem ser considerados pessoais.

Como excluir endpointsUm endpoint representa um único método de contato com um de seus clientes. Cada endpoint pode sereferir ao endereço de e-mail de cliente, identificador de dispositivo móvel, número de telefone ou outro tipode destino ao qual você pode enviar mensagens. Em várias jurisdições, esse tipo de informação pode serconsiderada pessoal.

Para excluir todos os dados de um endpoint específico, você pode usar a API do Amazon Pinpoint paraexcluir o endpoint. O procedimento a seguir mostra como excluir um endpoint usando a AWS CLI parainteragir com a API do Amazon Pinpoint. Esse procedimento pressupõe que você já tenha instalado econfigurado a AWS CLI. Para obter mais informações, consulte Instalar a AWS CLI no Guia do usuário doAWS Command Line Interface.

Para excluir um endpoint usando a AWS CLI

• Na linha de comando, insira o seguinte comando:

aws pinpoint delete-endpoint --application-id 810c7aab86d42fb2b56c8c966example --endpoint-id ad015a3bf4f1b2b0b82example

No comando anterior, substitua 810c7aab86d42fb2b56c8c966example pelo ID do projeto ao qualo endpoint está associado. Além disso, substitua ad015a3bf4f1b2b0b82example pelo ID exclusivodo próprio endpoint.

Para localizar o ID de um endpoint específico, determine a qual segmento o endpoint pertence e, exporteo segmento do Amazon Pinpoint. Os dados exportados incluem o ID de cada endpoint. Você podeexportar um segmento para um arquivo usando o console do Amazon Pinpoint. Para saber como, consulteExportação de segmentos no Guia do usuário do Amazon Pinpoint. Você também pode exportar umsegmento para um bucket do Amazon Simple Storage Service (Amazon S3) usando a API do AmazonPinpoint. Para saber como, consulte Exportação de endpoints (p. 168) neste guia.

Como excluir dados de segmentos e endpointsarmazenados no Amazon S3

É possível importar segmentos de um arquivo armazenado em um bucket do Amazon S3 usando oconsole ou a API do Amazon Pinpoint. Também é possível exportar dados do aplicativo, segmento ou

344

Page 352: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExclusão de todos os dados do projeto

endpoint do Amazon Pinpoint para um bucket do Amazon S3. Os arquivos importados e exportados podemconter dados pessoais, inclusive endereços de e-mail, números de telefone celular e informações sobre alocalização física de um endpoint. Você pode excluir esses arquivos do Amazon S3.

O conteúdo entregue aos buckets do Amazon S3 podem conter conteúdo do cliente. Para obter maisinformações sobre como remover dados confidenciais, consulte Como esvaziar um bucket do S3? ouComo excluir um bucket do S3?.

Exclusão de todos os dados do projetoÉ possível excluir permanentemente todos os dados armazenados para um projeto do Amazon Pinpoint.Você pode fazer isso excluindo o projeto.

Warning

Se você excluir um projeto, o Amazon Pinpoint excluirá todas as configurações e dadosespecíficos do projeto. As informações não podem ser recuperadas.

Quando você exclui um projeto, o Amazon Pinpoint exclui todas as configurações específicas do projetopara os canais de notificação por push e de sistema de mensagens SMS bidirecionais, além de todos ossegmentos, campanhas, jornadas e análises específicas do projeto armazenados no Amazon Pinpoint,como a seguir:

• Segmentos – Todas as configurações e dados do segmento. Para segmentos dinâmicos, isso inclui osgrupos de segmentos e os filtros que você definiu. Para segmentos importados, isso inclui endpoints, IDsde usuários e outros dados importados e quaisquer filtros aplicados.

• Campanhas – todas as mensagens, tratamentos e variáveis de mensagens, programações, análises eoutras configurações.

• Jornadas – todas as atividades, dados de análise, programações e outras configurações.• Análise – dados de todas as métricas de engajamento, como o número de mensagens enviadas e

entregues para campanhas e jornadas, e todas as métricas de execução de jornada. Para aplicativosmóveis e web, todos os dados de eventos que não foram transmitidos para outro serviço da AWS, comoo Amazon Kinesis, todos os funis e dados para uso de aplicativos e métricas demográficas. Antes deexcluir um projeto, recomendamos que você exporte esses dados para outro local.

É possível excluir um projeto usando o console do Amazon Pinpoint. Para saber mais, consulteExclusão de um projeto no Guia do usuário do Amazon Pinpoint. Você também pode excluir um projetoprogramaticamente usando o recurso App da API do Amazon Pinpoint.

Exclusão de todos os dados da AWS fechando suaconta da AWS

Também é possível excluir todos os dados armazenados no Amazon Pinpoint fechando sua conta daAWS. No entanto, essa ação também exclui todos os outros dados — pessoais ou não pessoais —armazenados em qualquer outro serviço da AWS.

Ao encerrar sua conta da AWS, mantemos os dados dela por 90 diasAWS. No fim do período de retenção,excluímos esses dados de forma permanente e irreversível.

Warning

O procedimento a seguir remove completamente todos os dados armazenados em sua conta daAWS em todos os serviços e as regiões da AWS.

345

Page 353: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExclusão de todos os dados da AWS

Você pode encerrar sua conta da AWS usando o Console de gerenciamento da AWS.

Para fechar sua conta AWS

1. Abra o Console de gerenciamento da AWS em https://console.aws.amazon.com.2. Acesse a página Configurações da conta em https://console.aws.amazon.com/billing/home?#/account.

Warning

As etapas a seguir excluem permanentemente todos os dados armazenados em todos osserviços da AWS em todas as regiões da AWS.

3. Em Encerrar conta, leia o aviso de isenção que descreve as consequências de encerrar sua conta daAWS. Se concordar com os termos, marque a caixa de seleção e selecione Encerrar conta.

4. Na caixa de diálogo de confirmação, selecione Encerrar conta.

346

Page 354: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorProteção de dados

Segurança no Amazon PinpointA segurança da nuvem na AWS é a nossa maior prioridade. Como cliente da AWS, você se beneficiaráde um datacenter e de uma arquitetura de rede criados para atender aos requisitos das empresas com asmaiores exigências de segurança.

A segurança é uma responsabilidade compartilhada entre a AWS e você. O modelo de responsabilidadecompartilhada descreve isso como segurança da nuvem e segurança na nuvem:

• Segurança da nuvem – A AWS é responsável pela proteção da infraestrutura que executa serviçosda AWS na nuvem da AWS. A AWS também fornece serviços que você pode usar com segurança.Auditores de terceiros testam e verificam regularmente a eficácia da nossa segurança como parte dosProgramas de conformidade da AWS. Para saber mais sobre os programas de conformidade que seaplicam ao Amazon Pinpoint, consulte Serviços da AWS no escopo por programa de conformidade.

• Segurança na nuvem – Sua responsabilidade é determinada pelo serviço da AWS que você usa. Vocêtambém é responsável por outros fatores, incluindo a confidencialidade de seus dados, os requisitos dasua empresa e as leis e regulamentos aplicáveis.

Esta documentação ajuda você a entender como aplicar o modelo de responsabilidade compartilhada aousar o Amazon Pinpoint. Os tópicos a seguir mostram como configurar o Amazon Pinpoint para atenderaos seus objetivos de segurança e de conformidade. Você também aprende como usar outros serviços daAWS que ajudam a monitorar e proteger os recursos do Amazon Pinpoint.

Tópicos• Proteção de dados no Amazon Pinpoint (p. 347)• Identity and Access Management para o Amazon Pinpoint (p. 350)• Registrar e monitorar no Amazon Pinpoint (p. 402)• Validação de conformidade do Amazon Pinpoint (p. 403)• Resiliência no Amazon Pinpoint (p. 404)• Segurança da infraestrutura no Amazon Pinpoint (p. 404)• Análise de configuração e vulnerabilidade no Amazon Pinpoint (p. 405)

Proteção de dados no Amazon PinpointO Amazon Pinpoint está em conformidade com o modelo de responsabilidade compartilhada da AWS, queinclui regulamentos e diretrizes de proteção de dados. A AWS é responsável por proteger a infraestruturaglobal que executa todos os serviços da AWS. A AWS mantém controle dos dados hospedados nessainfraestrutura, incluindo os controles de configuração de segurança para lidar com o conteúdo e os dadospessoais do cliente. Os clientes da AWS e os parceiros do AWS Partner Network (APN), que atuam comocontroladores ou processadores de dados, são responsáveis por todos os dados pessoais que colocam naNuvem AWS.

Dependendo de como você configura e usa o serviço, o Amazon Pinpoint pode armazenar os seguintestipos de dados pessoais para você ou sobre seus clientes:

Dados de configuração

Isso inclui os dados de configuração do projeto, como credenciais e configurações que definem comoe quando o Amazon Pinpoint envia mensagens por meio de canais compatíveis, e os segmentosdo usuário para os quais envia mensagens. Para enviar mensagens, esses dados podem incluir

347

Page 355: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorProteção de dados

endereços IP dedicados para mensagens de e-mail, códigos curtos e IDs de remetentes paramensagens de texto SMS, além de credenciais para a comunicação com serviços de notificação porpush, como o Serviço de notificação por push da Apple (APNs) e o Firebase Cloud Messaging (FCM).

Dados do usuário e do endpoint

Isso inclui atributos padrão e personalizados que você usa para armazenar e gerenciar dados deusuários e endpoints de um projeto do Amazon Pinpoint. Um atributo pode armazenar informaçõesde um usuário específico (como o nome de um usuário) ou de um endpoint de usuário específico(como o endereço de e-mail, o número do celular ou o token do dispositivo móvel do usuário). Essesdados também podem incluir IDs de usuários externos que correlacionam usuários de um projetodo Amazon Pinpoint com usuários em um sistema externo, como um sistema de gerenciamento derelacionamento com o cliente. Para obter mais informações sobre o que esses dados podem incluir,consulte os esquemas de Usuário e Endpoint no Amazon Pinpoint API Reference.

Dados de análise

Isso inclui dados de métricas, também referidos como principais indicadores de desempenho (KPIs),que oferecem informações sobre o desempenho de um projeto do Amazon Pinpoint para áreas comoenvolvimento de usuários e atividades de compra. Isso também inclui dados de métricas que ofereceminformações sobre dados demográficos do usuário para um projeto. Os dados podem derivar deatributos padrão ou personalizados para usuários e endpoints, como a cidade em que o usuário mora.Eles também podem derivar de eventos, como abrir e clicar, para mensagens de e-mail que vocêenvia para um projeto.

Dados importados

Isso inclui todos os dados de usuário, segmentação e análise que você adiciona ou importa de fontesexternas e usa no Amazon Pinpoint. Um exemplo é um arquivo JSON que você importa para oAmazon Pinpoint (diretamente do console ou de um bucket do Amazon S3) para criar um segmentoestático. Outros exemplos são dados de endpoints que você adiciona programaticamente para criarum segmento dinâmico, endereços de endpoint para os quais você envia mensagens diretas eeventos que você configura um aplicativo para relatar para o Amazon Pinpoint.

Para ajudar a proteger esses dados, recomendamos que você proteja as credenciais da conta da AWSe configure contas de usuário individuais com o AWS Identity and Access Management (IAM), de modoque cada usuário receba somente as permissões necessárias para cumprir suas funções. Recomendamostambém que você proteja seus dados das seguintes formas:

• Use uma autenticação multifator (MFA) com cada conta.• Use SSL/TLS para se comunicar com os recursos da AWS.• Configure a API e o registro em log das atividades do usuário com o AWS CloudTrail.• Use as soluções de criptografia da AWS, juntamente com todos os controles de segurança padrão nos

serviços da AWS.• Use serviços de segurança gerenciados avançados, como o Amazon Macie, que ajuda a localizar e

proteger dados pessoais armazenados no Amazon S3.

É altamente recomendável que você nunca coloque informações de identificação confidenciais, comonúmeros de conta dos seus clientes em campos de formato livre, como um campo Name (Nome) ou umcampo identificador. Isso também vale para quando você trabalha com o Amazon Pinpoint ou com outrosserviços da AWS usando o console, as APIs, a AWS CLI ou os AWS SDKs. Todos os dados inseridos noAmazon Pinpoint ou em outros serviços podem ser adicionados ou incluídos em logs de diagnóstico. Aofornecer um URL para um servidor externo, não inclua informações de credenciais no URL para validar asolicitação a esse servidor.

Para obter mais informações sobre proteção de dados, consulte a publicação AWS Shared ResponsibilityModel and GDPR (Modelo de responsabilidade compartilhada da AWS e GDPR) no Blog de segurança daAWS.

348

Page 356: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCriptografia de dados

Tópicos• Criptografia de dados (p. 349)• Privacidade do tráfego entre redes (p. 349)

Criptografia de dadosOs dados do Amazon Pinpoint são criptografados em trânsito e em repouso. Quando você envia dadospara o Amazon Pinpoint, ele criptografa os dados conforme os recebe e os armazena. Quando vocêrecupera dados do Amazon Pinpoint, ele transmite os dados para você usando os protocolos de segurançaatuais.

Criptografia em repousoO Amazon Pinpoint criptografa todos os dados e o armazena para você. Isso inclui os dados deconfiguração, os dados de usuário e do endpoint, dados de análise e todos os dados que você adicionarou importar para o Amazon Pinpoint. Para criptografar os dados, o Amazon Pinpoint usa chaves internasdo AWS Key Management Service (AWS KMS) que o serviço possui e mantém em seu nome. Nósmudamos essas chaves regularmente. Para obter informações sobre o AWS KMS, consulte o AWS KeyManagement Service Developer Guide.

Criptografia em trânsitoO Amazon Pinpoint usa HTTPS e Transport Layer Security (TLS) 1.0 ou posterior para se comunicar comclientes e aplicativos. Para se comunicar com outros serviços da AWS, o Amazon Pinpoint usa HTTPSe TLS 1.2. Além disso, quando você cria e gerencia recursos do Amazon Pinpoint usando o console, umAWS SDK ou a AWS Command Line Interface, todas as comunicações são protegidas usando HTTPS eTLS 1.2.

Gerenciamento de chavesPara criptografar os dados do Amazon Pinpoint, o Amazon Pinpoint usa chaves internas do AWS KMSque o serviço possui e mantém em seu nome. Nós mudamos essas chaves regularmente. Não é possívelprovisionar e usar as suas próprias chaves do AWS KMS ou outras chaves para criptografar os dadosarmazenados no Amazon Pinpoint.

Privacidade do tráfego entre redesA privacidade de tráfego de Internetwork se refere à proteção de conexões e tráfego entre o AmazonPinpoint e clientes e aplicativos locais, e entre o Amazon Pinpoint e outros recursos da AWS na mesmaregião da AWS. Os seguintes recursos e práticas podem ajudar você a garantir a privacidade de tráfego deInternetwork para o Amazon Pinpoint.

Tráfego entre clientes do Amazon Pinpoint e no local e osaplicativosPara estabelecer uma conexão privada entre o Amazon Pinpoint e clientes e aplicativos na rede no local,é possível usar o AWS Direct Connect. Isso permite vincular a rede a um local do AWS Direct Connectusando um cabo Ethernet de fibra ótica padrão. Uma extremidade do cabo é conectada ao roteador. Aoutra extremidade é conectada a um roteador do AWS Direct Connect. Para obter mais informações,consulte O que é o AWS Direct Connect? no Guia do usuário do AWS Direct Connect.

Para ajudar a proteger o acesso ao Amazon Pinpoint por meio de APIs publicadas, recomendamos atenderaos requisitos do Amazon Pinpoint para chamadas de API. O Amazon Pinpoint exige que os clientes usem

349

Page 357: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorIdentity and Access Management

o Transport Layer Security (TLS) 1.0 ou posterior. (Recomendamos TLS 1.2 ou posterior.) Os clientestambém devem oferecer suporte a pacotes de criptografia com sigilo de encaminhamento perfeito (PFS),como Ephemeral Diffie-Hellman (DHE) ou Ephemeral Elliptic Curve Diffie-Hellman (ECDHE). A maioria dossistemas modernos como Java 7 e versões posteriores oferece suporte a esses modos.

Além disso, as solicitações devem ser assinadas usando um ID de chave de acesso e uma chave deacesso secreta associada a um principal do AWS Identity and Access Management (IAM) da conta daAWS. Como alternativa, você pode usar o AWS Security Token Service (AWS STS) para gerar credenciaisde segurança temporárias para assinar solicitações.

Tráfego entre o Amazon Pinpoint e outros recursos da AWSPara proteger as comunicações entre o Amazon Pinpoint e outros recursos da AWS na mesma região daAWS, o Amazon Pinpoint usa HTTPS e TLS 1.2 por padrão.

Identity and Access Management para o AmazonPinpoint

O AWS Identity and Access Management (IAM) é um serviço da AWS que ajuda um administrador acontrolar com segurança o acesso aos recursos da AWS. Os administradores do IAM controlam quempode ser autenticado (conectado) e autorizado (ter permissões) para usar os recursos do Amazon Pinpoint.O IAM é um serviço da AWS que pode ser usado sem custo adicional.

Tópicos• Público (p. 350)• Autenticação com identidades (p. 351)• Gerenciamento do acesso usando políticas (p. 353)• Como o Amazon Pinpoint funciona com o IAM (p. 354)• Ações do Amazon Pinpoint para políticas do IAM (p. 358)• Exemplos de políticas baseadas em identidade do Amazon Pinpoint (p. 378)• Amazon Pinpoint Exemplos de política baseada em recursos (p. 385)• Funções do IAM para tarefas comuns do Amazon Pinpoint (p. 386)• Solução de problemas de Identity and Access Management do Amazon Pinpoint (p. 400)

PúblicoO uso do AWS Identity and Access Management (IAM) varia, dependendo do trabalho que você realiza noAmazon Pinpoint.

Usuário do serviço – se você usar o Amazon Pinpoint para fazer sua tarefa, o administrador forneceráas credenciais e as permissões de que você precisa. À medida que usar mais recursos do AmazonPinpoint para fazer seu trabalho, você poderá precisar de permissões adicionais. Entender como oacesso é gerenciado pode ajudar você a solicitar as permissões corretas ao seu administrador. Se não forpossível acessar um recurso no Amazon Pinpoint, consulte Solução de problemas de Identity and AccessManagement do Amazon Pinpoint (p. 400).

Administrador do serviço – se você for o responsável pelos recursos do Amazon Pinpoint em sua empresa,você provavelmente terá acesso total ao Amazon Pinpoint. Seu trabalho é determinar quais recursosdo Amazon Pinpoint seus funcionários devem acessar. Assim, é necessário enviar solicitações aoadministrador do IAM para alterar as permissões dos usuários de seu serviço. Revise as informações

350

Page 358: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAutenticação com identidades

nesta página para entender os conceitos básicos do IAM. Para saber mais sobre como sua empresa podeusar o IAM com o Amazon Pinpoint, consulte Como o Amazon Pinpoint funciona com o IAM (p. 354).

Administrador do IAM – se você é um administrador do IAM, talvez queira saber detalhes sobre como podeescrever políticas para gerenciar o acesso ao Amazon Pinpoint. Para visualizar exemplos de políticasbaseadas em identidade do Amazon Pinpoint que podem ser usadas no IAM, consulte Exemplos depolíticas baseadas em identidade do Amazon Pinpoint (p. 378).

Autenticação com identidadesA autenticação é a forma como você faz login na AWS usando suas credenciais de identidade. Para obtermais informações sobre como fazer login usando o Console de gerenciamento da AWS, consulte A páginade login e do console do IAM no Guia do usuário do IAM.

Você deve ser autenticado (fazer login na AWS) como o Usuário raiz da conta da AWS, um usuário doIAM, ou assumindo uma função do IAM. Também é possível usar a autenticação de logon único da suaempresa, ou até mesmo fazer login usando o Google ou o Facebook. Nesses casos, seu administradorconfigurou anteriormente a federação de identidades usando funções do IAM. Ao acessar a AWS usandocredenciais de outra empresa, você estará assumindo uma função indiretamente.

Para fazer login diretamente no Console de gerenciamento da AWS, use sua senha com o e-mail dousuário raiz ou seu nome de usuário do IAM. É possível acessar a AWS de maneira programática usandoseu usuário raiz ou as chaves de acesso do usuário do IAM. A AWS fornece ferramentas do SDK ou dalinha de comando para assinar sua solicitação de forma criptográfica usando suas credenciais. Se vocênão utilizar ferramentas da AWS, cadastre a solicitação você mesmo. Faça isso usando o Signature versão4, um protocolo para autenticação de solicitações de API de entrada. Para obter mais informações sobre aautenticação de solicitações, consulte Processo de cadastramento do Signature versão 4 na AWS GeneralReference.

Independentemente do método de autenticação usado, também pode ser exigido que você forneçainformações adicionais de segurança. Por exemplo, a AWS recomenda o uso da autenticação multifator(MFA) para aumentar a segurança de sua conta. Para saber mais, consulte Usar a autenticação multifator(MFA) na AWS no Guia do usuário do IAM.

Usuário raiz da conta da AWSAo criar uma conta da AWS, você começa com uma única identidade de login que tenha acesso total atodos os recursos e serviços da AWS na conta. Essa identidade é chamada de AWS da conta da usuárioraiz e é acessada pelo login com o endereço de e-mail e a senha que você usou para criar a conta.Recomendamos que não use o usuário raiz para suas tarefas diárias, nem mesmo as administrativas.Em vez disso, siga as melhores práticas de uso do usuário raiz somente para criar seu primeiro usuáriodo IAM. Depois, armazene as credenciais usuário raiz com segurança e use-as para executar apenasalgumas tarefas de gerenciamento de contas e de serviços.

Grupos e usuários do IAMUm usuário do IAM é uma identidade em sua conta da AWS que tem permissões específicas para umaúnica pessoa ou um único aplicativo. Um usuário do IAM pode ter credenciais de longo prazo, como umnome de usuário e uma senha ou um conjunto de chaves de acesso. Para saber como gerar chaves deacesso, consulte Gerenciar chaves de acesso para usuários do IAM no Guia do usuário do IAM. Ao gerarchaves de acesso para um usuário do IAM, visualize e salve o par de chaves de maneira segura. Não serápossível recuperar a chave de acesso secreta futuramente. Em vez disso, você deverá gerar outro par dechaves de acesso.

Um grupo do IAM é uma identidade que especifica uma coleção de usuários do IAM. Não é possívelfazer login como um grupo. É possível usar grupos para especificar permissões para vários usuários deuma vez. Os grupos facilitam o gerenciamento de permissões para grandes conjuntos de usuários. Por

351

Page 359: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAutenticação com identidades

exemplo, você pode ter um grupo chamado Administradores do IAM e atribuir a esse grupo permissõespara administrar recursos do IAM.

Usuários são diferentes de funções. Um usuário é exclusivamente associado a uma pessoa ou a umaplicativo, mas uma função pode ser assumida por qualquer pessoa que precisar dela. Os usuários têmcredenciais permanentes de longo prazo, mas as funções fornecem credenciais temporárias. Para sabermais, consulte Quando criar um usuário do IAM (em vez de uma função) no Guia do usuário do IAM.

Funções do IAMUma função do IAM é uma identidade dentro de sua conta da AWS que tem permissões específicas.Ela é semelhante a um usuário do IAM, mas não está associada a uma pessoa específica. É possívelassumir temporariamente uma função do IAM no Console de gerenciamento da AWS alternando funções.É possível assumir uma função chamando uma operação de API da AWS CLI ou da AWS, ou usando umURL personalizado. Para obter mais informações sobre os métodos para o uso de funções, consulte Usarfunções do IAM no Guia do usuário do IAM.

As funções do IAM com credenciais temporária são úteis nas seguintes situações:

• Permissões temporárias para usuários do IAM – um usuário do IAM pode assumir uma função do IAMpara obter temporariamente permissões diferentes para uma tarefa específica.

• Acesso de usuário federado – Em vez de criar um usuário do IAM, você pode usar identidadesexistentes do AWS Directory Service, do diretório de usuário da sua empresa ou de um provedor deidentidades da Web. Estes são conhecidos como usuários federados. A AWS atribui uma função a umusuário federado quando o acesso é solicitado por meio de um provedor de identidades. Para obter maisinformações sobre usuários federados, consulte Usuários federados e funções no Guia do usuário doIAM.

• Acesso entre contas – é possível usar uma função do IAM para permitir que alguém (um principalconfiável) em outra conta acesse recursos em sua conta. As funções são a principal forma de concederacesso entre contas. No entanto, alguns serviços da AWS permitem que você anexe uma políticadiretamente a um recurso (em vez de usar uma função como proxy). Para saber a diferença entrefunções e políticas baseadas em recurso para acesso entre contas, consulte Como as funções do IAMdiferem das políticas baseadas em recurso no Guia do usuário do IAM.

• Acesso a serviços da AWS – Uma função de serviço é uma função do IAM que um serviço assumepara realizar ações em seu nome na sua conta. Ao configurar alguns ambientes de serviço da AWS,você deve definir uma função a ser assumida pelo serviço. Essa função de serviço deve incluir todasas permissões necessárias para o serviço acessar os recursos da AWS de que precisa. As funções deserviço variam de acordo com o serviço, mas muitas permitem que você escolha as permissões, desdeque atenda aos requisitos documentados para esse serviço. As funções de serviço fornecem acessoapenas dentro de sua conta e não podem ser usadas para conceder acesso a serviços em outrascontas. Você pode criar, modificar e excluir uma função de serviço no IAM. Por exemplo, você podecriar uma função que permita que Amazon Redshift acesse um bucket do Amazon S3 em seu nome ecarregue dados desse bucket em um cluster Amazon Redshift. Para obter mais informações, consulteCriar uma função para delegar permissões a um serviço da AWS no Guia do usuário do IAM.

• Aplicativos em execução no Amazon EC2 –Você pode usar uma função do IAM para gerenciarcredenciais temporárias para aplicativos que estão sendo executados em uma instância do EC2 e quefazem solicitações de API da AWS CLI ou AWS. É preferível fazer isso do que armazenar chaves deacesso na instância do EC2. Para atribuir uma função da AWS a uma instância do EC2 e disponibilizá-la para todos os seus aplicativos, crie um perfil de instância que esteja anexado à instância. Um perfilde instância contém a função e permite que programas que estão em execução na instância do EC2obtenham credenciais temporárias. Para mais informações, consulte Uso de uma função do IAM paraconceder permissões aos aplicativos em execução nas instâncias do Amazon EC2 no Guia do usuáriodo IAM.

Para saber se você deve usar funções do IAM, consulte Quando criar uma função do IAM (em vez de umusuário) no Guia do usuário do IAM.

352

Page 360: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorGerenciamento do acesso usando políticas

Gerenciamento do acesso usando políticasVocê controla o acesso na AWS criando políticas e anexando-as às identidades do IAM ou aos recursosda AWS. Uma política é um objeto na AWS que, quando associado a uma identidade ou a um recurso,define suas permissões. A AWS avalia essas políticas quando uma entidade (usuário raiz, usuário doIAM ou função do IAM) faz uma solicitação. As permissões nas políticas determinam se a solicitação serápermitida ou negada. A maioria das políticas são armazenadas na AWS como documentos JSON. Paraobter mais informações sobre a estrutura e o conteúdo de documentos de políticas JSON, consulte Visãogeral de políticas JSON no Guia do usuário do IAM.

Um administrador do IAM pode usar políticas para especificar quem tem acesso aos recursos da AWS equais ações essas pessoas podem executar nesses recursos. Cada entidade do IAM (usuário ou função)começa sem permissões. Em outras palavras, por padrão, os usuários não podem fazer nada, nem mesmoalterar sua própria senha. Para dar permissão a um usuário para fazer algo, um administrador deve anexaruma política de permissões ao usuário. Ou o administrador pode adicionar o usuário a um grupo que tenhaas permissões pretendidas. Quando um administrador concede permissões a um grupo, todos os usuáriosdesse grupo recebem essas permissões.

As políticas do IAM definem permissões para uma ação, independentemente do método usadopara executar a operação. Por exemplo, suponha que você tenha uma política que permite a açãoiam:GetRole. Um usuário com essa política pode obter informações de funções do Console degerenciamento da AWS, da AWS CLI ou da API da AWS.

Políticas baseadas em identidadeAs políticas baseadas em identidade são documentos JSON de políticas de permissões que você podeanexar a uma entidade, como um usuário, função ou grupo do IAM. Essas políticas controlam quais açõescada identidade pode realizar, em quais recursos e em que condições. Para saber como criar uma políticabaseada em identidade, consulte Criar políticas do IAM no Guia do usuário do IAM.

As políticas baseadas em identidade podem ser categorizadas ainda mais como políticas em linha oupolíticas gerenciadas. As políticas em linha são anexadas diretamente a um único usuário, grupo oufunção. As políticas gerenciadas são políticas independentes que podem ser anexadas a vários usuários,grupos e funções em sua conta da AWS. As políticas gerenciadas incluem políticas gerenciadas pela AWSe políticas gerenciadas pelo cliente. Para saber como escolher entre uma política gerenciada ou umapolítica em linha, consulte Escolher entre políticas gerenciadas e políticas em linha no Guia do usuário doIAM.

O Amazon Pinpoint oferece suporte ao uso de políticas baseadas em identidade para controlar o acessoaos recursos do Amazon Pinpoint.

Políticas com base em recursoPolíticas baseadas em recursos são documentos de política JSON que você anexa a um recurso, comoum bucket do Amazon S3. Os administradores do serviço podem usar essas políticas para definir quaisações um principal especificado (função, usuário ou membro da conta) pode executar nesse recurso e sobquais condições. As políticas baseadas em recurso são políticas em linha. Não há políticas baseadas emrecurso gerenciadas.

O Amazon Pinpoint oferece suporte ao uso de políticas baseadas em recursos para controlar o acesso aosrecursos do Amazon Pinpoint.

Listas de controle de acesso (ACLs)As listas de controle de acesso (ACLs) são um tipo de política que controla quais principais (membros,usuários ou funções da conta) têm permissões para acessar um recurso. As ACLs são semelhantes às

353

Page 361: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorComo o Amazon Pinpoint funciona com o IAM

políticas baseadas em recurso, embora não usem o formato de documento de política JSON. O AmazonS3, o AWS WAF e a Amazon VPC são exemplos de serviços que oferecem suporte a ACLs. Para sabermais sobre as ACLs, consulte Visão geral da lista de controle de acesso (ACL) no Guia do desenvolvedordo Amazon Simple Storage Service.

O Amazon Pinpoint não oferece suporte ao uso de ACLs para controlar o acesso aos recursos do AmazonPinpoint.

Outros tipos de políticaA AWS oferece suporte a tipos de política menos comuns. Esses tipos de política podem definir o máximode permissões concedidas a você pelos tipos de política mais comuns.

• Limites de permissões – um limite de permissões é um recurso avançado no qual você define omáximo de permissões que uma política baseada em identidade pode conceder a uma entidade doIAM (usuário ou função do IAM). É possível definir um limite de permissões para uma entidade. Aspermissões resultantes são a interseção das políticas baseadas em identidade da entidade e seuslimites de permissões. As políticas baseadas em recurso que especificam o usuário ou a função nocampo Principal não são limitadas pelo limite de permissões. Uma negação explícita em qualqueruma dessas políticas substitui a permissão. Para obter mais informações sobre limites de permissões,consulte Limites de permissões para entidades do IAM no Guia do usuário do IAM.

• Políticas de controle de serviço (SCPs – Service control policies) – SCPs são políticas JSON queespecificam o máximo de permissões para uma organização ou unidade organizacional (UO) noAWS Organizations. O AWS Organizations é um serviço para agrupamento e gerenciamento centraldas várias contas da AWS que sua empresa possui. Se você habilitar todos os recursos em umaorganização, poderá aplicar políticas de controle de serviço (SCPs) a qualquer uma ou a todas ascontas. O SCP limita as permissões para entidades em contas-membro, incluindo cada Usuário raizda conta da AWS. Para obter mais informações sobre Organizações e SCPs, consulte Como SCPsfuncionam no Guia do usuário do AWS Organizations.

• Políticas de sessão – as políticas de sessão são políticas avançadas que você transmite como umparâmetro quando cria de forma programática uma sessão temporária para uma função ou um usuáriofederado. As permissões da sessão resultante são a interseção das políticas baseadas em identidadedo usuário ou da função e das políticas de sessão. As permissões também podem ser provenientes deuma política baseada em recurso. Uma negação explícita em qualquer uma dessas políticas substitui apermissão. Para obter mais informações, consulte Políticas de sessão no Guia do usuário do IAM.

O Amazon Pinpoint oferece o suporte ao uso desses tipos de políticas para controlar o acesso aosrecursos do Amazon Pinpoint.

Vários tipos de políticaQuando vários tipos de política são aplicáveis a uma solicitação, é mais complicado compreender aspermissões resultantes. Para saber como a AWS determina se deve permitir uma solicitação quandovários tipos de política estão envolvidos, consulte Lógica de avaliação de políticas no Guia do usuário doIAM.

Como o Amazon Pinpoint funciona com o IAMPara usar o Amazon Pinpoint, os usuários em sua conta da AWS precisam de permissões para visualizardados de análises, criar projetos, definir segmentos de usuários, implantar campanhas e muito mais.Se você integrar um aplicativo móvel ou web ao Amazon Pinpoint, os usuários do aplicativo tambémprecisarão acessar o Amazon Pinpoint. Esse acesso permite que o aplicativo registre endpoints erelate dados de uso ao Amazon Pinpoint. Para conceder acesso aos recursos do Amazon Pinpoint, criepolíticas do AWS Identity and Access Management (IAM) que permitam ações do Amazon Pinpoint paraidentidades do IAM ou recursos do Amazon Pinpoint.

354

Page 362: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorComo o Amazon Pinpoint funciona com o IAM

O IAM é um serviço que ajuda os administradores a controlar com segurança o acesso aos recursosda AWS. As políticas do IAM incluem instruções que permitem ou proíbem usuários de executar açõesespecíficas em recursos determinados. O Amazon Pinpoint oferece um conjunto de ações (p. 358) quevocê pode usar em políticas do IAM para especificar permissões granulares a usuários e recursos doAmazon Pinpoint. Isso significa que você pode conceder o nível de acesso apropriado ao Amazon Pinpointsem criar políticas excessivamente permissivas que possam expor dados importantes ou comprometer osrecursos. Por exemplo, você pode conceder acesso irrestrito a um administrador do Amazon Pinpoint econceder acesso somente leitura a indivíduos que precisam de acesso a apenas um projeto específico.

Antes de usar o IAM para gerenciar o acesso ao Amazon Pinpoint, entenda quais recursos do IAM estãodisponíveis para uso com o Amazon Pinpoint. Para obter uma visão de alto nível de como o AmazonPinpoint e outros serviços da AWS trabalham com o IAM, consulte AWS Serviços compatíveis com o IAMno Guia do usuário do IAM.

Tópicos• Políticas baseadas em identidade do Amazon Pinpoint (p. 355)• Políticas baseadas em recursos do Amazon Pinpoint (p. 357)• Autorização baseada em tags do Amazon Pinpoint (p. 358)• Funções do IAM do Amazon Pinpoint (p. 358)

Políticas baseadas em identidade do Amazon PinpointCom as políticas baseadas em identidade do IAM, você pode especificar ações permitidas ou negadas erecursos, bem como as condições sob as quais as ações são permitidas ou negadas. O Amazon Pinpointoferece suporte a ações, recursos e chaves de condição específicos. Para saber mais sobre todos oselementos que você pode usar em uma política JSON, consulte Referência de elementos da política JSONdo IAM no Guia do usuário do IAM.

AçõesO elemento Action de uma política baseada em identidade do IAM descreve a ação ou ações específicasque serão permitidas ou negadas pela política. As ações de política geralmente têm o mesmo nome quea operação de API da AWS associada. A ação é usada em uma política para conceder permissões paraexecutar a operação associada.

Isso significa que as ações de políticas controlam o que os usuários podem fazer no console do AmazonPinpoint. Elas também controlam o que os usuários podem fazer programaticamente ao usar os AWSSDKs, a AWS Command Line Interface (AWS CLI) ou as APIs do Amazon Pinpoint diretamente.

As ações de políticas no Amazon Pinpoint usam os seguintes prefixos:

• mobiletargeting – para ações que derivam da API do Amazon Pinpoint, que é a API principal doAmazon Pinpoint.

• sms-voice – para ações que derivam do API de voz e SMS do Amazon Pinpoint, que é uma APIcomplementar que oferece opções avançadas para usar e gerenciar o SMS e os canais de voz noAmazon Pinpoint.

Por exemplo, para conceder a alguém a permissão para visualizar informações sobre todos os segmentosde um projeto, que é uma ação que corresponde à operação GetSegments na API do Amazon Pinpoint,inclua a ação mobiletargeting:GetSegments na política. As declarações de política devem incluir umelemento Action ou NotAction. O Amazon Pinpoint define o próprio conjunto de ações que descrevemas tarefas que os usuários podem executar com ele.

Para especificar várias ações em uma única declaração, separe-as com vírgulas:

"Action": [

355

Page 363: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorComo o Amazon Pinpoint funciona com o IAM

"mobiletargeting:action1", "mobiletargeting:action2"

Você também pode especificar várias ações usando caracteres curinga (*). Por exemplo, para especificartodas as ações que começam com a palavra Get, inclua a seguinte ação.

"Action": "mobiletargeting:Get*"

No entanto, como prática recomendada, você deve criar políticas que sigam o princípio de privilégiomínimo. Em outras palavras, você deve criar políticas que incluem somente as permissões necessáriaspara executar uma ação específica.

Para obter uma lista de ações do Amazon Pinpoint que você pode usar nas políticas do IAM, consulteAções do Amazon Pinpoint para políticas do IAM (p. 358).

RecursosO elemento Resource especifica o objeto ou os objetos aos quais a ação se aplica. As instruções devemincluir um elemento Resource ou um elemento NotResource. Você especifica um recurso usando umARN ou usando o caractere curinga (*) para indicar que a instrução se aplica a todos os recursos.

Por exemplo, a ação mobiletargeting:GetSegments recupera informações sobre todos os segmentosque estão associados a um projeto do Amazon Pinpoint específico. Identifique um projeto com um ARN noseguinte formato:

arn:aws:mobiletargeting:${Region}:${Account}:apps/${projectId}

Para obter mais informações sobre o formato de ARNs, consulte Nomes de recursos da Amazon (ARNs)no AWS General Reference.

Nas políticas do IAM, especifique os ARNs para os seguintes tipos de recursos do Amazon Pinpoint:

• Campanhas• Jornadas• Modelos de mensagens (referidos como modelos em alguns contextos)• Projetos (referidos como apps ou aplicativos em alguns contextos)• Modelos de recomendação (conhecidos como recomendações em alguns contextos)• Segmentos

Por exemplo, para criar uma declaração de política para o projeto que tem o ID do projeto810c7aab86d42fb2b56c8c966example, use o seguinte ARN:

"Resource": "arn:aws:mobiletargeting:us-east-1:123456789012:apps/810c7aab86d42fb2b56c8c966example"

Para especificar todos os projetos que pertencem a uma conta específica, use o caractere curinga (*):

"Resource": "arn:aws:mobiletargeting:us-east-1:123456789012:apps/*"

Algumas ações do Amazon Pinpoint, como determinadas ações para criar recursos, não podem serrealizadas em um recurso específico. Nesses casos, você deve usar o caractere curinga (*):

"Resource": "*"

356

Page 364: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorComo o Amazon Pinpoint funciona com o IAM

Algumas ações da API do Amazon Pinpoint envolvem vários recursos. Por exemplo, a ação TagResourcepode adicionar uma tag a vários projetos. Para especificar vários recursos em uma única instrução, separeos ARNs com vírgulas:

"Resource": [ "resource1", "resource2"

Para ver uma lista de tipos de recurso do Amazon Pinpoint e seus ARNs, consulte Recursos definidos peloAmazon Pinpoint no Guia do usuário do IAM. Para saber quais ações você pode especificar com o ARN decada tipo de recurso, consulte Ações definidas pelo Amazon Pinpoint no Guia do usuário do IAM.

Chaves de condiçãoO elemento Condition (ou bloco de Condition) permite que você especifique condições nas quaisuma instrução está em vigor. O elemento Condition é opcional. É possível criar expressões condicionaisque usam operadores de condição, como "igual a" ou "menor que", para fazer a condição da políticacorresponder aos valores na solicitação.

Se você especificar vários elementos Condition em uma instrução ou várias chaves em um únicoelemento Condition, a AWS os avaliará usando uma operação lógica AND. Se você especificar váriosvalores para uma única chave de condição, a AWS avaliará a condição usando uma operação lógica OR.Todas as condições devem ser atendidas para que as permissões da instrução sejam concedidas.

Você também pode usar variáveis de espaço reservado ao especificar as condições. Por exemplo, vocêpode conceder a um usuário do IAM permissão para acessar um recurso somente se ele estiver marcadocom seu nome de usuário do IAM. Para obter mais informações, consulte Elementos de política do IAM:variáveis e tags no Guia do usuário do IAM.

O Amazon Pinpoint define o próprio conjunto de chaves de condição e também oferece suporte paraalgumas chaves de condição globais. Para obter uma lista de todas as chaves de condição globais daAWS, consulte Chaves de contexto de condição globais da AWS no Guia do usuário do IAM. Para ver umalista de chaves de condição do Amazon Pinpoint, consulte Chaves de condição do Amazon Pinpoint noGuia do usuário do IAM. Para saber com quais ações e recursos você pode usar uma chave de condição,consulte Ações definidas pelo Amazon Pinpoint no Guia do usuário do IAM.

Exemplos

Para visualizar exemplos de políticas baseadas em identidade do Amazon Pinpoint, consulte Exemplos depolíticas baseadas em identidade do Amazon Pinpoint (p. 378).

Políticas baseadas em recursos do Amazon PinpointAs políticas baseadas em recursos são documentos de políticas JSON que especificam quais ações umprincipal especificado pode executar em um recurso do Amazon Pinpoint e em quais condições. O AmazonPinpoint oferece suporte a políticas de permissões baseadas em recursos para campanhas, jornadas,modelos de mensagens (modelos), modelos de recomendação (recomendações), projetos (aplicativos)e segmentos. As políticas baseadas em recursos permitem conceder permissão de uso a outras contaspor recurso. Você também pode usar uma política baseada em recursos para permitir que outro serviço daAWS acesse esses tipos de recursos do Amazon Pinpoint.

Para permitir o acesso entre contas, você pode especificar uma conta inteira ou as entidades do IAM emoutra conta como o principal em uma política baseada em recurso. Adicionar um principal entre contasà política baseada em recurso é apenas metade da tarefa de estabelecimento da relação de confiança.Quando o principal e o recurso estão em diferentes contas da AWS, você também deve conceder àentidade principal permissão para acessar o recurso. Conceda permissão anexando uma política baseadaem identidade para a entidade. No entanto, se uma política baseada em recurso conceder acesso a um

357

Page 365: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

principal na mesma conta, nenhuma política baseada em identidade adicional será necessária. Para obtermais informações, consulte Como as funções do IAM diferem de políticas baseadas em recursos no Guiado usuário do IAM.

Exemplos

Para visualizar exemplos de políticas baseadas em recursos do Amazon Pinpoint, consulte AmazonPinpoint Exemplos de política baseada em recursos (p. 385).

Autorização baseada em tags do Amazon PinpointÉ possível associar tags a determinados tipos de recursos do Amazon Pinpoint ou passar tags em umasolicitação para o Amazon Pinpoint. Para controlar o acesso baseado em tags, forneça informações sobreas tags no elemento de condição de uma política usando as chaves de condição aws:ResourceTag/${TagKey}, aws:RequestTag/${TagKey} ou aws:TagKeys.

Para obter informações sobre como marcar recursos do Amazon Pinpoint, incluindo uma política deexemplo do IAM, consulte Marcar recursos do Amazon Pinpoint (p. 326).

Funções do IAM do Amazon PinpointUma função do IAM é uma entidade dentro de sua conta da AWS que tem permissões específicas.

Usar credenciais temporárias com o Amazon PinpointVocê pode usar credenciais temporárias para fazer login com federação, assumir uma função doIAM ou assumir uma função entre contas. As credenciais de segurança temporárias são obtidaschamando operações da API do AWS Security Token Service (AWS STS), como AssumeRole ouGetFederationToken.

O Amazon Pinpoint oferece suporte ao uso de credenciais temporárias.

Funções vinculadas ao serviçoFunções vinculadas ao serviço permitem que os serviços da AWS acessem recursos em outros serviçospara concluir uma ação em seu nome. As funções vinculadas ao serviço aparecem em sua conta doIAM e são de propriedade do serviço. Um administrador do IAM pode visualizar, mas não pode editar aspermissões para funções vinculadas ao serviço.

O Amazon Pinpoint não usa funções vinculadas ao serviço.

Funções de serviçoEsse recurso permite que um serviço assuma uma função de serviço em seu nome. A função permite queo serviço acesse recursos em outros serviços para concluir uma ação em seu nome. As funções de serviçoaparecem em sua conta do IAM e são de propriedade da conta. Isso significa que um administrador doIAM pode alterar as permissões para essa função. Porém, fazer isso pode alterar a funcionalidade doserviço.

O Amazon Pinpoint é compatível com o uso de funções de serviço.

Ações do Amazon Pinpoint para políticas do IAMPara gerenciar o acesso aos recursos do Amazon Pinpoint na conta da AWS, é possível adicionar açõesdo Amazon Pinpoint às políticas do AWS Identity and Access Management (IAM). Ao usar ações empolíticas, é possível controlar o que os usuários podem fazer no console do Amazon Pinpoint. Tambémé possível controlar o que os usuários podem fazer programaticamente ao usar os AWS SDKs, a AWSCommand Line Interface (AWS CLI) ou as APIs do Amazon Pinpoint diretamente.

358

Page 366: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

Em uma política, deve-se especificar cada ação com o namespace apropriado do Amazon Pinpoint,seguido de dois-pontos e do nome da ação, como GetSegments. A maioria dessas ações correspondea uma solicitação ao API Amazon Pinpoint usando um método URI e HTTP específico. Por exemplo, sevocê permitir a ação mobiletargeting:GetSegments na política de um usuário, ele terá permissãopara recuperar informações sobre todos os segmentos de um projeto ao enviar uma solicitação HTTP GETpara o URI /apps/projectId/segments. Essa política também permite visualizar essas informaçõesno console e recuperá-las usando um AWS SDK ou a AWS CLI.

Cada ação é executada em um recurso Amazon Pinpoint específico, que é identificado emuma declaração de política pelo seu nome de recurso da Amazon (ARN). Por exemplo, a açãomobiletargeting:GetSegments é executada em um projeto específico, identificado com o ARN,arn:aws:mobiletargeting:region:accountId:apps/projectId.

Este tópico identifica as ações do Amazon Pinpoint que você pode adicionar às políticas do IAM paraa conta da AWS. Para ver exemplos que demonstram como você pode usar as ações nas políticaspara gerenciar o acesso aos recursos do Amazon Pinpoint, consulte Exemplos de políticas baseadasem identidade do Amazon Pinpoint (p. 378) e Amazon Pinpoint Exemplos de política baseada emrecursos (p. 385).

Tópicos• Ações da API do Amazon Pinpoint (p. 359)• Ações da API de SMS e voz do Amazon Pinpoint (p. 377)

Ações da API do Amazon PinpointEsta seção identifica ações para recursos disponíveis na API do Amazon Pinpoint, que é a API principal doAmazon Pinpoint. Para saber mais sobre a API, consulte Referência de API do Amazon Pinpoint.

Categorias:• Análises e métricas (p. 359)• Campanhas (p. 361)• Canais (p. 362)• Endpoints (p. 366)• Streams de eventos (p. 367)• Trabalhos de exportação (p. 367)• Trabalhos de importação (p. 368)• Jornadas (p. 368)• Modelos de mensagens (p. 369)• Mensagens (p. 372)• Validação do número de telefone (p. 373)• Projetos (p. 373)• Modelos de recomendação (p. 374)• Segmentos (p. 375)• Tags (p. 376)• Usuários (p. 377)

Análises e métricas

As permissões a seguir estão relacionadas à exibição de dados analíticos no console do AmazonPinpoint. Elas também estão relacionadas à recuperação (consulta) de dados agregados para métricas

359

Page 367: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

padrão, também chamados de principais indicadores de desempenho (KPIs), que se aplicam a projetos,campanhas e jornadas.

mobiletargeting:GetReports

Visualizar dados de análise no console do Amazon Pinpoint.• URI – Não aplicável• Método – Não aplicável• ARN do recurso – arn:aws:mobiletargeting:region:accountId:reports

mobiletargeting:GetApplicationDateRangeKpi

Recupere (consulte) dados agregados para uma métrica de aplicativo padrão. Esta é uma métrica quese aplica a todas as campanhas ou mensagens transacionais associadas a um projeto.• URI – /apps/projectId/kpis/daterange/kpi-name• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/kpis/daterange/kpi-name

mobiletargeting:GetCampaignDateRangeKpi

Recupere (consulte) dados agregados para uma métrica de campanha padrão. Esta é uma métricaque se aplica a uma campanha individual.• URI – /apps/projectId/campaigns/campaignId/kpis/daterange/kpi-name• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/campaigns/campaignId/kpis/daterange/kpi-name

mobiletargeting:GetJourneyDateRangeKpi

Recupere (consulte) dados agregados para uma métrica de engajamento de jornada padrão. Estaé uma métrica de engajamento que se aplica a uma jornada individual, por exemplo, o número demensagens abertas pelos participantes para todas as atividades em uma jornada.• URI – /apps/projectId/journeys/journeyId/kpis/daterange/kpi-name• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/journeys/journeyId/kpis/daterange/kpi-name

mobiletargeting:GetJourneyExecutionMetrics

Recupere (consulte) dados agregados para métricas de execução padrão que se aplicam a umajornada individual, por exemplo, o número de participantes que estão ativamente seguindo todas asatividades em uma jornada.• URI – /apps/projectId/journeys/journeyId/execution-metrics• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/journeys/journeyId/execution-metrics

mobiletargeting:GetJourneyExecutionActivityMetrics

Recupere (consulte) dados agregados para métricas de execução padrão que se aplicam a umaatividade individual em uma jornada, por exemplo, o número de participantes que iniciaram ouconcluíram uma atividade.• URI – /apps/projectId/journeys/journeyId/activities/journey-activity-id/execution-metrics

• Método – GET

360

Page 368: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/journeys/journeyId/activities/journey-activity-id/execution-metrics

Campanhas

As permissões a seguir estão relacionadas ao gerenciamento de campanhas em sua conta do AmazonPinpoint.

mobiletargeting:CreateCampaign

Crie uma campanha para um projeto.• URI – /apps/projectId/campaigns• Método – POST• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/campaigns

mobiletargeting:DeleteCampaign

Excluir uma determinada campanha.• URI – /apps/projectId/campaigns/campaignId• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/campaigns/campaignId

mobiletargeting:GetCampaign

Recuperar informações sobre uma campanha específica.• URI – /apps/projectId/campaigns/campaignId• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/campaigns/campaignId

mobiletargeting:GetCampaignActivities

Recuperar informações sobre as atividades executadas por uma campanha.• URI – /apps/projectId/campaigns/campaignId/activities• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/campaigns/campaignId

mobiletargeting:GetCampaigns

Recupere informações sobre todas as campanhas para um projeto.• URI – /apps/projectId/campaigns• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId

mobiletargeting:GetCampaignVersion

Recuperar informações sobre uma versão de campanha específica.• URI – /apps/projectId/campaigns/campaignId/versions/versionId• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/campaigns/campaignId

361

Page 369: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

mobiletargeting:GetCampaignVersions

Recuperar informações sobre as versões atual e anteriores de uma campanha.• URI – /apps/projectId/campaigns/campaignId/versions• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/campaigns/campaignId

mobiletargeting:UpdateCampaign

Atualizar uma determinada campanha.• URI – /apps/projectId/campaigns/campaignId• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/campaigns/campaignId

Canais

As permissões a seguir estão relacionadas ao gerenciamento de canais em sua conta do AmazonPinpoint. No Amazon Pinpoint, os canais se referem aos métodos que você usa para entrar em contatocom seus clientes, como enviando e-mail, mensagens SMS ou notificações por push.

mobiletargeting:DeleteAdmChannel

Desabilite o canal Amazon Device Messaging (ADM) de um projeto.• URI – /apps/projectId/channels/adm• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/adm

mobiletargeting:GetAdmChannel

Recupere informações sobre o canal ADM de um projeto.• URI – /apps/projectId/channels/adm• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/adm

mobiletargeting:UpdateAdmChannel

Ative ou atualize o canal ADM de um projeto.• URI – /apps/projectId/channels/adm• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/adm

mobiletargeting:DeleteApnsChannel

Desabilite o canal do Serviço de notificação por push da Apple (APNs) de um projeto.• URI – /apps/projectId/channels/apns• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/apns

362

Page 370: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

mobiletargeting:GetApnsChannel

Recupere informações sobre o canal do APNs para um projeto.• URI – /apps/projectId/channels/apns• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/apns

mobiletargeting:UpdateApnsChannel

Ative ou atualize o canal do APNs de um projeto.• URI – /apps/projectId/channels/apns• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/apns

mobiletargeting:DeleteApnsSandboxChannel

Desabilite o canal sandbox do APNs de um projeto.• URI – /apps/projectId/channels/apns_sandbox• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/apns_sandbox

mobiletargeting:GetApnsSandboxChannel

Recupere informações sobre o canal sandbox do APNs de um projeto.• URI – /apps/projectId/channels/apns_sandbox• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/apns_sandbox

mobiletargeting:UpdateApnsSandboxChannel

Ative ou atualize o canal sandbox do APNs para um projeto.• URI – /apps/projectId/channels/apns_sandbox• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/apns_sandbox

mobiletargeting:DeleteApnsVoipChannel

Desabilite o canal VoIP do APNs de um projeto.• URI – /apps/projectId/channels/apns_voip• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/apns_voip

mobiletargeting:GetApnsVoipChannel

Recupere informações sobre o canal VoIP do APNs de um projeto.• URI – /apps/projectId/channels/apns_voip• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/apns_voip

363

Page 371: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

mobiletargeting:UpdateApnsVoipChannel

Ative ou atualize o canal VoIP do APNs de um projeto.• URI – /apps/projectId/channels/apns_voip• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/apns_voip

mobiletargeting:DeleteApnsVoipChannel

Desabilite o canal sandbox VoIP do APNs de um projeto.• URI – /apps/projectId/channels/apns_voip_sandbox• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/apns_voip_sandbox

mobiletargeting:GetApnsVoipChannel

Recupere informações sobre o canal sandbox VoIP do APNs de um projeto.• URI – /apps/projectId/channels/apns_voip_sandbox• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/apns_voip_sandbox

mobiletargeting:UpdateApnsVoipChannel

Ative ou atualize o canal sandbox VoIP do APNs para um projeto.• URI – /apps/projectId/channels/apns_voip_sandbox• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/apns_voip_sandbox

mobiletargeting:DeleteBaiduChannel

Desabilite o canal Baidu Cloud Push de um projeto.• URI – /apps/projectId/channels/baidu• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/baidu

mobiletargeting:GetBaiduChannel

Recupere informações sobre o canal Baidu Cloud Push de um projeto.• URI – /apps/projectId/channels/baidu• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/baidu

mobiletargeting:UpdateBaiduChannel

Ative ou atualize o canal Baidu Cloud Push de um projeto.• URI – /apps/projectId/channels/baidu• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/baidu

364

Page 372: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

mobiletargeting:DeleteEmailChannel

Desabilite o canal de e-mail de um projeto.• URI – /apps/projectId/channels/email• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/email

mobiletargeting:GetEmailChannel

Recupere informações sobre o canal de e-mail de um projeto.• URI – /apps/projectId/channels/email• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/email

mobiletargeting:UpdateEmailChannel

Ative ou atualize o canal de e-mail para um projeto.• URI – /apps/projectId/channels/email• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/email

mobiletargeting:DeleteGcmChannel

Desabilite o canal do Firebase Cloud Messaging (FCM) de um projeto. Este canal permite ao AmazonPinpoint enviar notificações push para um aplicativo Android por meio do serviço FCM, que substitui oserviço Google Cloud Messaging (GCM).• URI – /apps/projectId/channels/gcm• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/gcm

mobiletargeting:GetGcmChannel

Recupere informações sobre o canal do FCM para um projeto. Este canal permite ao Amazon Pinpointenviar notificações push para um aplicativo Android por meio do serviço FCM, que substitui o serviçoGoogle Cloud Messaging (GCM).• URI – /apps/projectId/channels/gcm• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/gcm

mobiletargeting:UpdateGcmChannel

Ative ou atualize o canal do FCM de um projeto. Este canal permite ao Amazon Pinpoint enviarnotificações push para um aplicativo Android por meio do serviço FCM, que substitui o serviço GoogleCloud Messaging (GCM).• URI – /apps/projectId/channels/gcm• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/gcm

mobiletargeting:DeleteSmsChannel

Desabilite o canal de SMS de um projeto.

365

Page 373: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

• URI – /apps/projectId/channels/sms• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/sms

mobiletargeting:GetSmsChannel

Recupere informações sobre o canal de SMS para um projeto.• URI – /apps/projectId/channels/sms• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/sms

mobiletargeting:UpdateSmsChannel

Ative ou atualize o canal de SMS para um projeto.• URI – /apps/projectId/channels/sms• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/channels/sms

Endpoints

As permissões a seguir estão relacionadas ao gerenciamento de endpoints em sua conta do AmazonPinpoint. No Amazon Pinpoint, um endpoint é um destino único para suas mensagens. Por exemplo, umendpoint pode ser um endereço de e-mail do cliente, número de telefone ou token de dispositivo móvel.

mobiletargeting:DeleteEndpoint

Exclua um endpoint.• URI – /apps/projectId/endpoints/endpointId• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/endpoints/endpointId

mobiletargeting:GetEndpoint

Recuperar informações sobre um endpoint específico.• URI – /apps/projectId/endpoints/endpointId• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/endpoints/endpointId

mobiletargeting:UpdateEndpoint

Criar um endpoint ou atualizar as informações de um endpoint.• URI – /apps/projectId/endpoints/endpointId• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/endpoints/endpointId

mobiletargeting:UpdateEndpointsBatch

Criar ou atualizar endpoints como uma operação em lote.• URI – /apps/projectId/endpoints

366

Page 374: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId

Streams de eventos

As permissões a seguir estão relacionadas ao gerenciamento de fluxos de eventos para sua conta doAmazon Pinpoint.

mobiletargeting:DeleteEventStream

Exclua o fluxo de eventos de um projeto.• URI – /apps/projectId/eventstream/• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/eventstream

mobiletargeting:GetEventStream

Recupere informações sobre o fluxo de eventos de um projeto.• URI – /apps/projectId/eventstream/• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/eventstream

mobiletargeting:PutEventStream

Crie ou atualize um fluxo de eventos de um projeto.• URI – /apps/projectId/eventstream/• Método – POST• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/eventstream

Trabalhos de exportação

As permissões a seguir estão relacionadas ao gerenciamento de trabalhos de exportação em sua conta doAmazon Pinpoint. No Amazon Pinpoint, você cria trabalhos de exportação para enviar informações sobreendpoints para um bucket do Amazon S3 para armazenamento ou análise.

mobiletargeting:CreateExportJob

Crie um trabalho de exportação para exportar definições de endpoint para o Amazon S3.• URI – /apps/projectId/jobs/export• Método – POST• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/jobs/export

mobiletargeting:GetExportJob

Recupere informações sobre um trabalho de exportação específico de um projeto.• URI – /apps/projectId/jobs/export/jobId• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/jobs/export/jobId

367

Page 375: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

mobiletargeting:GetExportJobs

Recupere uma lista de todos os trabalhos de exportação de um projeto.• URI – /apps/projectId/jobs/export• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/jobs/export

Trabalhos de importação

As permissões a seguir estão relacionadas ao gerenciamento de trabalhos de importação em sua conta doAmazon Pinpoint. No Amazon Pinpoint, você cria trabalhos de importação para criar segmentos com basenas definições de endpoint armazenadas em um bucket do Amazon S3.

mobiletargeting:CreateImportJob

Importar definições de endpoint de Amazon S3 para criar um segmento.• URI – /apps/projectId/jobs/import• Método – POST• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId

mobiletargeting:GetImportJob

Recupere informações sobre um trabalho de importação específico de um projeto.• URI – /apps/projectId/jobs/import/jobId• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/jobs/import/jobId

mobiletargeting:GetImportJobs

Recupere informações sobre todas as tarefas de importação de um projeto.• URI – /apps/projectId/jobs/import• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId

Jornadas

As permissões a seguir estão relacionadas ao gerenciamento de jornadas em sua conta do AmazonPinpoint.

mobiletargeting:CreateJourney

Crie uma jornada para um projeto.• URI – /apps/projectId/journeys• Método – POST• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/journeys

mobiletargeting:GetJourney

Recuperar informações sobre uma jornada específica.• URI – /apps/projectId/journeys/journeyId• Método – GET

368

Page 376: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/journeys/journeyId

mobiletargeting:ListJourneys

Recupere informações sobre todas as jornadas de um projeto.• URI – /apps/projectId/journeys• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/journeys

mobiletargeting:UpdateJourney

Atualize a configuração e outras configurações para uma jornada específica.• URI – /apps/projectId/journeys/journeyId• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/journeys/journeyId

mobiletargeting:UpdateJourneyState

Cancele uma jornada ativa.• URI – /apps/projectId/journeys/journeyId/state• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/journeys/journeyId/state

mobiletargeting:DeleteJourney

Excluir uma jornada específica.• URI – /apps/projectId/journeys/journeyId• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/journeys/journeyId

Modelos de mensagens

As permissões a seguir estão relacionadas à criação e ao gerenciamento de modelos de mensagem parasua conta do Amazon Pinpoint. Um modelo de mensagem é um conjunto de conteúdo e configuraçõesque você pode definir, salvar e reutilizar em mensagens enviadas para qualquer um dos seus projetos doAmazon Pinpoint.

mobiletargeting:ListTemplates

Recupere informações sobre todos os modelos de mensagem associados à sua conta do AmazonPinpoint.• URI – /templates• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:templates

mobiletargeting:ListTemplateVersions

Recuperar informações sobre todas as versões de um modelo de mensagem específico.• URI – /templates/template-name/template-type/versions

369

Page 377: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

• Método – GET• ARN do recurso – não aplicável

mobiletargeting:UpdateTemplateActiveVersion

Designe uma versão específica de um modelo de mensagem como a versão ativa do modelo.• URI – /templates/template-name/template-type/active-version• Método – GET• ARN do recurso – não aplicável

mobiletargeting:GetEmailTemplate

Recupere informações sobre um modelo de mensagem para mensagens enviadas por meio do canalde e-mail.• URI – /templates/template-name/email• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:templates/template-name/EMAIL

mobiletargeting:CreateEmailTemplate

Crie um modelo de mensagem para mensagens enviadas por meio do canal de e-mail.• URI – /templates/template-name/email• Método – POST• ARN do recurso – arn:aws:mobiletargeting:region:accountId:templates/template-name/EMAIL

mobiletargeting:UpdateEmailTemplate

Atualize um modelo de mensagem existente para mensagens enviadas pelo canal de e-mail.• URI – /templates/template-name/email• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:templates/template-name/EMAIL

mobiletargeting:DeleteEmailTemplate

Exclua um modelo de mensagem para mensagens enviadas pelo canal de e-mail.• URI – /templates/template-name/email• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:templates/template-name/EMAIL

mobiletargeting:GetPushTemplate

Recupere informações sobre um modelo de mensagem para mensagens enviadas por meio de umcanal de notificação por push.• URI – /templates/template-name/push• Método – GET

370

Page 378: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

• ARN do recurso – arn:aws:mobiletargeting:region:accountId:templates/template-name/PUSH

mobiletargeting:CreatePushTemplate

Crie um modelo de mensagem para mensagens enviadas por meio de um canal de notificação porpush.• URI – /templates/template-name/push• Método – POST• ARN do recurso – arn:aws:mobiletargeting:region:accountId:templates/template-name/PUSH

mobiletargeting:UpdatePushTemplate

Atualize um modelo de mensagem existente para mensagens enviadas por meio de um canal denotificação por push.• URI – /templates/template-name/push• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:templates/template-name/PUSH

mobiletargeting:DeletePushTemplate

Exclua um modelo de mensagem para mensagens enviadas por meio de um canal de notificação porpush.• URI – /templates/template-name/push• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:templates/template-name/PUSH

mobiletargeting:GetSmsTemplate

Recupere informações sobre um modelo de mensagem para mensagens enviadas por meio do canalSMS.• URI – /templates/template-name/sms• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:templates/template-name/SMS

mobiletargeting:CreateSmsTemplate

Crie um modelo de mensagem para mensagens enviadas por meio do canal SMS.• URI – /templates/template-name/sms• Método – POST• ARN do recurso – arn:aws:mobiletargeting:region:accountId:templates/template-name/SMS

mobiletargeting:UpdateSmsTemplate

Atualize um modelo de mensagem existente para mensagens enviadas por meio do canal SMS.

371

Page 379: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

• URI – /templates/template-name/sms• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:templates/template-name/SMS

mobiletargeting:DeleteSmsTemplate

Exclua um modelo de mensagem para mensagens enviadas por meio do canal SMS.• URI – /templates/template-name/sms• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:templates/template-name/SMS

mobiletargeting:GetVoiceTemplate

Recupere informações sobre um modelo de mensagem para mensagens enviadas por meio do canalde voz.• URI – /templates/template-name/voice• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:templates/template-name/VOICE

mobiletargeting:CreateVoiceTemplate

Crie um modelo de mensagem para mensagens enviadas por meio do canal de voz.• URI – /templates/template-name/voice• Método – POST• ARN do recurso – arn:aws:mobiletargeting:region:accountId:templates/template-name/VOICE

mobiletargeting:UpdateVoiceTemplate

Atualize um modelo de mensagem existente para mensagens enviadas por meio do canal de voz.• URI – /templates/template-name/voice• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:templates/template-name/VOICE

mobiletargeting:DeleteVoiceTemplate

Exclua um modelo de mensagem para mensagens enviadas por meio do canal de voz.• URI – /templates/template-name/voice• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:templates/template-name/VOICE

Mensagens

As permissões a seguir são relacionadas ao envio de mensagens e notificações por push de sua contado Amazon Pinpoint. Você pode usar as operações SendUsersMessages e SendMessages para enviarmensagens para endpoints específicos sem criar segmentos e campanhas primeiro.

mobiletargeting:SendMessages

Envie uma mensagem ou notificação por push para endpoints específicos.

372

Page 380: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

• URI – /apps/projectId/messages• Método – POST• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/messages

mobiletargeting:SendUsersMessages

Envie uma mensagem ou notificação por push para todos os endpoints associados a um ID de usuárioespecífico.• URI – /apps/projectId/users-messages• Método – POST• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/users-messages

Validação do número de telefone

As permissões a seguir são relacionadas ao uso do serviço de validação do número de telefone noAmazon Pinpoint.

mobiletargeting:PhoneNumberValidate

Recupere informações sobre um número de telefone.• URI – /phone/number/validate• Método – POST• ARN do recurso – arn:aws:mobiletargeting:region:accountId:phone/number/validate

Projetos

As permissões a seguir estão relacionadas ao gerenciamento de projetos em sua conta do AmazonPinpoint. Inicialmente, os projetos eram chamados de aplicações. Para essas operações, um aplicativo doAmazon Pinpoint é o mesmo que um projeto do Amazon Pinpoint.

mobiletargeting:CreateApp

Crie um projeto do Amazon Pinpoint.• URI – /apps• Método – POST• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps

mobiletargeting:DeleteApp

Exclua um projeto do Amazon Pinpoint.• URI – /apps/projectId• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId

mobiletargeting:GetApp

Recupere informações sobre um projeto do Amazon Pinpoint.• URI – /apps/projectId• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId

373

Page 381: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

mobiletargeting:GetApps

Recupere informações sobre todos os projetos associados à sua conta do Amazon Pinpoint.• URI – /apps• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps

mobiletargeting:GetApplicationSettings

Recupere as configurações padrão de um projeto do Amazon Pinpoint.• URI – /apps/projectId/settings• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId

mobiletargeting:UpdateApplicationSettings

Atualize as configurações padrão de um projeto do Amazon Pinpoint.• URI – /apps/projectId/settings• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId

Modelos de recomendação

As permissões a seguir estão relacionadas ao gerenciamento das configurações do Amazon Pinpoint pararecuperação e processamento de dados de recomendação de modelos de recomendação. Um modelo derecomendação é um tipo de modelo de machine learning que prevê e gera recomendações personalizadasencontrando padrões em dados.

mobiletargeting:CreateRecommenderConfiguration

Crie uma configuração do Amazon Pinpoint para um modelo de recomendação.• URI – /recommenders• Método – POST• ARN do recurso – arn:aws:mobiletargeting:region:accountId:recommenders

mobiletargeting:GetRecommenderConfigurations

Recupere informações sobre todas as configurações do modelo de recomendação associadas a umaconta do Amazon Pinpoint.• URI – /recommenders• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:recommenders

mobiletargeting:GetRecommenderConfiguration

Recupere informações sobre uma configuração individual do Amazon Pinpoint para um modelo derecomendação.• URI – /recommenders/recommenderId• Método – GET• ARN do recurso –arn:aws:mobiletargeting:region:accountId:recommenders/recommenderId

mobiletargeting:UpdateRecommenderConfiguration

Atualize uma configuração do Amazon Pinpoint para um modelo de recomendação.

374

Page 382: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

• URI – /recommenders/recommenderId• Método – PUT• ARN do recurso –arn:aws:mobiletargeting:region:accountId:recommenders/recommenderId

mobiletargeting:DeleteRecommenderConfiguration

Excluir uma configuração do Amazon Pinpoint para um modelo de recomendação.• URI – /recommenders/recommenderId• Método – DELETE• ARN do recurso –arn:aws:mobiletargeting:region:accountId:recommenders/recommenderId

Segmentos

As permissões a seguir estão relacionadas ao gerenciamento de segmento em sua conta do AmazonPinpoint. No Amazon Pinpoint, os segmentos são grupos de destinatários para suas campanhas quecompartilham determinados atributos que você define.

mobiletargeting:CreateSegment

Crie um segmento. Para permitir que um usuário crie segmento importando dados de endpointexternos a Amazon Pinpoint permita a ação mobiletargeting:CreateImportJob.• URI – /apps/projectId/segments• Método – POST• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId

mobiletargeting:DeleteSegment

Exclua um segmento.• URI – /apps/projectId/segments/segmentId• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/segments/segmentId

mobiletargeting:GetSegment

Recuperar informações sobre um segmento específico.• URI – /apps/projectId/segments/segmentId• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/segments/segmentId

mobiletargeting:GetSegmentExportJobs

Recupere informações sobre tarefas que exportam definições de endpoint de um segmento.• URI – /apps/projectId/segments/segmentId/jobs/export• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/segments/segmentId/jobs/export

mobiletargeting:GetSegments

Recupere informações sobre todos os segmentos de um projeto.

375

Page 383: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

• URI – /apps/projectId/segments• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId

mobiletargeting:GetSegmentImportJobs

Recuperar informações sobre trabalhos que criem segmentos importando definições de endpoint deAmazon S3.• URI – /apps/projectId/segments/segmentId/jobs/import• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/segments/segmentId

mobiletargeting:GetSegmentVersion

Recuperar informações sobre uma versão de segmento específica.• URI – /apps/projectId/segments/segmentId/versions/versionId• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/segments/segmentId

mobiletargeting:GetSegmentVersions

Recuperar informações sobre as versões atual e anteriores de um segmento.• URI – /apps/projectId/segments/segmentId/versions• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/segments/segmentId

mobiletargeting:UpdateSegment

Atualizar um segmento específico.• URI – /apps/projectId/segments/segmentId• Método – PUT• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/segments/segmentId

Tags

As permissões a seguir estão relacionadas à visualização e ao gerenciamento de tags de recursos doAmazon Pinpoint.

mobiletargeting:ListTagsforResource

Recupere informações sobre as tags associadas a um projeto, campanha, modelo de mensagem ousegmento.• URI – /tags/resource-arn• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:*

mobiletargeting:TagResource

Adicione uma ou mais tags a um projeto, campanha, modelo de mensagem ou segmento.

376

Page 384: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAções de políticas do Amazon Pinpoint

• URI – /tags/resource-arn• Método – POST• ARN do recurso – arn:aws:mobiletargeting:region:accountId:*

mobiletargeting:UntagResource

Remova uma ou mais tags de um projeto, campanha, modelo de mensagem ou segmento.• URI – /tags/resource-arn• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:*

Usuários

As permissões a seguir estão relacionadas ao gerenciamento de usuários. No Amazon Pinpoint, osusuários correspondem às pessoas que recebem mensagens de sua parte. Um único usuário pode estarassociado a mais de um endpoint.

mobiletargeting:DeleteUserEndpoints

Exclua todos os endpoints associados a um ID de usuário.• URI – /apps/projectId/users/userId• Método – DELETE• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/users/userId

mobiletargeting:GetUserEndpoints

Recupere informações sobre todos os endpoints associados a um ID de usuário.• URI – /apps/projectId/users/userId• Método – GET• ARN do recurso – arn:aws:mobiletargeting:region:accountId:apps/projectId/users/userId

Ações da API de SMS e voz do Amazon PinpointEsta seção identifica ações de recursos disponíveis do API de voz e SMS do Amazon Pinpoint. Esta é umaAPI complementar que oferece opções avançadas para uso e gerenciamento de canais de SMS e voz noAmazon Pinpoint. Para saber mais sobre essa API, consulte Referência da API de SMS e voz do AmazonPinpoint.

sms-voice:CreateConfigurationSet

Crie um conjunto de configurações para envio de mensagens de voz.• URI – /sms-voice/configuration-sets• Método – POST• ARN do recurso – Não disponível. Use *.

sms-voice:DeleteConfigurationSet

Exclua um conjunto de configurações para envio de mensagens de voz.

377

Page 385: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos de políticas baseadas em identidade

• URI – /sms-voice/configuration-sets/ConfigurationSetName• Método – DELETE• ARN do recurso – Não disponível. Use *.

sms-voice:GetConfigurationSetEventDestinations

Recupere informações sobre um conjunto de configuração e os destinos de eventos que ele contém.• URI – /sms-voice/configuration-sets/ConfigurationSetName/event-destinations• Método – GET• ARN do recurso – Não disponível. Use *.

sms-voice:CreateConfigurationSetEventDestination

Crie um destino de evento para eventos de voz.• URI – /sms-voice/configuration-sets/ConfigurationSetName/event-destinations• Método – POST• ARN do recurso – Não disponível. Use *.

sms-voice:UpdateConfigurationSetEventDestination

Atualize um destino de evento para eventos de voz.• URI – /sms-voice/configuration-sets/ConfigurationSetName/event-

destinations/EventDestinationName• Método – PUT• ARN do recurso – Não disponível. Use *.

sms-voice:DeleteConfigurationSetEventDestination

Exclua um destino de evento para eventos de voz.• URI – /sms-voice/configuration-sets/ConfigurationSetName/event-

destinations/EventDestinationName• Método – DELETE• ARN do recurso – Não disponível. Use *.

sms-voice:SendVoiceMessage

Crie e envie mensagens de voz.• URI – /sms-voice/voice/message• Método – POST• ARN do recurso – Não disponível. Use *.

Exemplos de políticas baseadas em identidade doAmazon PinpointPor padrão, os usuários do IAM não têm permissão para criar ou modificar recursos do Amazon Pinpoint.Eles também não podem executar tarefas usando o Console de gerenciamento da AWS, a AWS CLI ou

378

Page 386: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos de políticas baseadas em identidade

uma API da AWS. Um administrador do IAM deve criar políticas do IAM que concedam aos usuários e àsfunções permissão para executarem operações específicas da API nos recursos especificados de queprecisam. O administrador deve anexar essas políticas aos usuários ou grupos do IAM que exigem essaspermissões.

Para saber como criar uma política baseada em identidade do IAM usando esses exemplos dedocumentos de política JSON, consulte Criar políticas no guia JSON no Guia do usuário do IAM.

Tópicos• Melhores práticas de políticas (p. 379)• Usar o console do Amazon Pinpoint (p. 379)• Exemplo: acessar um único projeto do Amazon Pinpoint (p. 380)• Exemplo: visualizar recursos com base em tags do Amazon Pinpoint (p. 382)• Exemplo: permitir que os usuários visualizem suas próprias permissões (p. 383)• Exemplos: fornecer acesso às ações de API do Amazon Pinpoint (p. 383)• Exemplos: fornecer acesso às ações de API de SMS e de voz no Amazon Pinpoint (p. 384)

Melhores práticas de políticasAs políticas baseadas em identidade são muito eficientes. Elas determinam se alguém pode criar, acessarou excluir recursos do Amazon Pinpoint em sua conta. Essas ações podem incorrer em custos para suaconta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:

• Comece usando políticas gerenciadas pela AWS – para começar a usar o Amazon Pinpointrapidamente, use as políticas gerenciadas pela AWS para conceder a seus funcionários as permissõesde que precisam. Essas políticas já estão disponíveis em sua conta e são mantidas e atualizadas pelaAWS. Para obter mais informações, consulte Conceitos básicos do uso de permissões com políticasgerenciadas pela AWS no Guia do usuário do IAM.

• Conceder privilégio mínimo – ao criar políticas personalizadas, conceda apenas as permissõesnecessárias para executar uma tarefa. Comece com um conjunto mínimo de permissões e concedapermissões adicionais conforme necessário. Fazer isso é mais seguro do que começar com permissõesque são muito lenientes e tentar restringi-las posteriormente. Para obter mais informações, consulteConceder privilégio mínimo, no Guia do usuário do IAM.

• Habilitar o MFA para operações confidenciais – para segurança adicional, exija que os usuários do IAMusem a autenticação multifator (MFA) para acessar recursos ou operações de API confidenciais. Paraobter mais informações, consulte Usar a autenticação multifator (MFA) na AWS no Guia do usuário doIAM.

• Usar condições de política para segurança adicional – na medida do possível, defina as condições sobas quais suas políticas baseadas em identidade permitem o acesso a um recurso. Por exemplo, vocêpode gravar condições para especificar um intervalo de endereços IP permitidos do qual a solicitaçãodeve partir. Você também pode escrever condições para permitir somente solicitações em uma dataespecificada ou período ou para exigir o uso de SSL ou MFA. Para obter mais informações, consulteElementos da política JSON do IAM: condição no Guia do usuário do IAM.

Usar o console do Amazon PinpointPara acessar o console do Amazon Pinpoint, você deve ter um conjunto mínimo de permissões. Essaspermissões devem permitir que você liste e visualize detalhes sobre os recursos do Amazon Pinpointem sua conta da AWS. Se você criar uma política baseada em identidade que seja mais restritiva que aspermissões mínimas necessárias, o console não funcionará como pretendido para entidades (usuários oufunções do IAM) com essa política. Para garantir que essas entidades possam usar o console Amazon

379

Page 387: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos de políticas baseadas em identidade

Pinpoint, anexe a política a elas. Para obter mais informações, consulte Adicionar permissões a um usuáriono Guia do usuário do IAM.

O exemplo a seguir fornece acesso somente leitura ao console do Amazon Pinpoint em uma regiãoespecífica da AWS. Ela inclui acesso somente leitura a outros serviços de que o console Amazon Pinpointdepende, como Amazon Simple Email Service, (Amazon SES), IAM e Amazon Kinesis.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "UseConsole", "Effect": "Allow", "Action": [ "mobiletargeting:Get*", "mobiletargeting:List*" ], "Resource": "arn:aws:mobiletargeting:region:accountId:*" }, { "Effect": "Allow", "Action": [ "firehose:ListDeliveryStreams", "iam:ListRoles", "kinesis:ListStreams", "s3:List*", "ses:Describe*", "ses:Get*", "ses:List*", "sns:ListTopics" ], "Resource": "*" } ]}

No exemplo de política anterior, substitua region pelo nome de uma região da AWS e substituaaccountId por seu ID de conta da AWS.

Não é necessário conceder permissões mínimas do console para usuários que fazem chamadas somenteà AWS CLI ou à API da AWS. Em vez disso, permita o acesso somente às ações que correspondem àoperação da API que estão tentando executar.

Exemplo: acessar um único projeto do Amazon PinpointVocê também pode criar políticas somente leitura que fornecem acesso somente a projetos específicos.O exemplo a seguir permite que os usuários entrem no console e visualizem uma lista de projetos. Eletambém permite visualizar informações sobre recursos relacionados para outros serviços da AWS dosquais o console do Amazon Pinpoint depende, como Amazon SES, IAM e Amazon Kinesis. Contudo, apolítica apenas permite que os usuários visualizem informações adicionais sobre o projeto especificadonela. Você pode modificar essa política para permitir acesso a projetos ou regiões da AWS adicionais.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewProject", "Effect": "Allow", "Action": "mobiletargeting:GetApps", "Resource": "arn:aws:mobiletargeting:region:accountId:*" }, {

380

Page 388: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos de políticas baseadas em identidade

"Effect": "Allow", "Action": [ "mobiletargeting:Get*", "mobiletargeting:List*" ], "Resource": [ "arn:aws:mobiletargeting:region:accountId:apps/projectId", "arn:aws:mobiletargeting:region:accountId:apps/projectId/*", "arn:aws:mobiletargeting:region:accountId:reports" ] }, { "Effect": "Allow", "Action": [ "ses:Get*", "kinesis:ListStreams", "firehose:ListDeliveryStreams", "iam:ListRoles", "ses:List*", "sns:ListTopics", "ses:Describe*", "s3:List*" ], "Resource": "*" } ]}

No exemplo anterior, substitua region pelo nome de uma região da AWS, substitua accountId peloID de conta da AWS e substitua projectId pelo ID do projeto do Amazon Pinpoint ao qual você desejafornecer acesso.

Da mesma forma, é possível criar políticas que concedam a um usuário do IAM na conta da AWS acessode gravação limitado a um de seus projetos do Amazon Pinpoint, por exemplo, aquele que contém o ID doprojeto 810c7aab86d42fb2b56c8c966example. Nesse caso, permita que o usuário visualize, adicionee atualize os componentes do projeto, como segmentos e campanhas, mas não exclua os componentes.

Além de conceder permissões para as ações mobiletargeting:Get e mobiletargeting:List,crie uma política que conceda permissões às seguintes ações: mobiletargeting:Create,mobiletargeting:Update e mobiletargeting:Put. Estas são as permissões adicionaisnecessárias para criar e gerenciar a maioria dos componentes do projeto. Por exemplo:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LimitedWriteProject", "Effect": "Allow", "Action": "mobiletargeting:GetApps", "Resource": "arn:aws:mobiletargeting:region:accountId:*" }, { "Effect": "Allow", "Action": [ "mobiletargeting:Get*", "mobiletargeting:List*", "mobiletargeting:Create*", "mobiletargeting:Update*", "mobiletargeting:Put*" ], "Resource": [ "arn:aws:mobiletargeting:region:accountId:apps/810c7aab86d42fb2b56c8c966example",

381

Page 389: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos de políticas baseadas em identidade

"arn:aws:mobiletargeting:region:accountId:apps/810c7aab86d42fb2b56c8c966example/*", "arn:aws:mobiletargeting:region:accountId:reports" ] }, { "Effect": "Allow", "Action": [ "ses:Get*", "kinesis:ListStreams", "firehose:ListDeliveryStreams", "iam:ListRoles", "ses:List*", "sns:ListTopics", "ses:Describe*", "s3:List*" ], "Resource": "*" } ]}

Exemplo: visualizar recursos com base em tags do AmazonPinpointVocê pode usar condições em uma política baseada em identidade para controlar o acesso aos recursosdo Amazon Pinpoint com base em tags. Esta política de exemplo mostra como você pode criar esse tipode política para permitir a visualização dos recursos do Amazon Pinpoint. No entanto, a permissão seráconcedida somente se a tag Owner tiver o valor do nome desse usuário. Essa política também concede aspermissões necessárias concluir essa ação no console.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListResources", "Effect": "Allow", "Action": [ "mobiletargeting:Get*", "mobiletargeting:List*" ], "Resource": "*" }, { "Sid": "ViewResourceIfOwner", "Effect": "Allow", "Action": [ "mobiletargeting:Get*", "mobiletargeting:List*" ], "Resource": "arn:aws:mobiletargeting:*:*:*", "Condition": { "StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"} } } ]}

Você pode anexar esse tipo de política aos usuários do IAM na sua conta. Se um usuário chamadorichard-roe tentar visualizar um recurso do Amazon Pinpoint, o recurso deve ser marcado comoOwner=richard-roe ou owner=richard-roe. Caso contrário, ele terá o acesso negado. A chave da

382

Page 390: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos de políticas baseadas em identidade

tag de condição Owner corresponde a Owner e a owner porque os nomes de chaves de condição nãofazem distinção entre maiúsculas e minúsculas. Para obter mais informações, consulte Elementos depolítica JSON do IAM: condição no Guia do usuário do IAM.

Exemplo: permitir que os usuários visualizem suas própriaspermissõesEste exemplo mostra como você pode criar uma política que permite que os usuários do IAM visualizemas políticas gerenciadas e em linha anexadas a sua identidade de usuário. Essa política inclui permissõespara concluir essa ação no console ou de forma programática usando a AWS CLI ou a API da AWS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ]}

Exemplos: fornecer acesso às ações de API do Amazon PinpointEsta seção fornece políticas de exemplo que permitem o acesso a recursos que estão disponíveis na APIdo Amazon Pinpoint, que é a API principal do Amazon Pinpoint. Para saber mais sobre a API, consulteReferência de API do Amazon Pinpoint.

Acesso somente leituraO exemplo a seguir permite acesso somente leitura a todos os projetos na conta do Amazon Pinpoint emuma região específica da AWS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewAllResources",

383

Page 391: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos de políticas baseadas em identidade

"Effect": "Allow", "Action": [ "mobiletargeting:Get*", "mobiletargeting:List*" ], "Resource": "arn:aws:mobiletargeting:region:accountId:*" } ]}

No exemplo anterior, substitua region pelo nome de uma região da AWS e substitua accountId pelo IDda conta da AWS.

Acesso de administrador

A política de exemplo a seguir permite acesso completo a todas as ações e recursos do Amazon Pinpointna conta do Amazon Pinpoint em todas as regiões da AWS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "FullAccess", "Effect": "Allow", "Action": [ "mobiletargeting:*" ], "Resource": "arn:aws:mobiletargeting:*:accountId:*" } ]}

No exemplo anterior, substitua accountId pelo ID da conta da AWS.

Exemplos: fornecer acesso às ações de API de SMS e de voz noAmazon PinpointEsta seção fornece políticas de exemplo que permitem acesso aos recursos que estão disponíveis noAPI de voz e SMS do Amazon Pinpoint. Esta é uma API complementar que oferece opções avançadaspara uso e gerenciamento de canais de SMS e voz no Amazon Pinpoint. Para saber mais sobre essa API,consulte Referência da API de SMS e voz do Amazon Pinpoint.

Acesso somente leitura

A política de exemplo a seguir permite o acesso somente leitura a todas as ações e recursos do API devoz e SMS do Amazon Pinpoint na conta da AWS em todas as regiões da AWS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewAllResources", "Effect": "Allow", "Action": [ "sms-voice:Get*", "sms-voice:List*" ],

"Resource": "*"

384

Page 392: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorExemplos de política baseada em recursos

} ]}

Acesso de administrador

A política de exemplo a seguir permite acesso completo a todas as ações e recursos do API de voz e SMSdo Amazon Pinpoint na conta da AWS em todas as regiões da AWS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "FullAccess", "Effect": "Allow", "Action": [ "sms-voice:*" ],

"Resource": "*" } ]}

Amazon Pinpoint Exemplos de política baseada emrecursosAs políticas baseadas em recursos são documentos de políticas JSON que especificam quais ações umprincipal especificado pode executar em um recurso do Amazon Pinpoint e sob quais condições podeexecutá-las.

Tópicos• Exemplo: restringir o acesso do projeto do Amazon Pinpoint a endereços IP específicos (p. 385)• Exemplo: restringir o acesso ao Amazon Pinpoint com base em tags (p. 386)

Exemplo: restringir o acesso do projeto do Amazon Pinpoint aendereços IP específicosA política de exemplo a seguir concede permissões a todos os usuários para realizar qualquer ação doAmazon Pinpoint em um projeto especificado (projectId). No entanto, a solicitação deve se originar nointervalo de endereços IP que são especificados na condição.

A condição nesta instrução identifica o intervalo 54.240.143.* de endereços do Internet Protocol versão4 (IPv4), com uma exceção: 54.240.143.188. O bloco da Condition usa as condições IpAddress eNotIpAddress e a chave de condição aws:SourceIp, que é uma chave de condição que abrange todaa AWS. Para obter mais informações sobre essas chaves de condições, consulte Especificar condições emuma política Guia do usuário do IAM. Os valores IPv4 aws:SourceIp usam a notação CIDR padrão. Paraobter mais informações, consulte Operadores de condição de endereço IP no Guia do usuário do IAM.

{ "Version": "2012-10-17", "Id": "AMZPinpointPolicyId1", "Statement": [ { "Sid": "IPAllow",

385

Page 393: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorFunções do IAM para tarefas comuns

"Effect": "Allow", "Principal": "*", "Action": "mobiletargeting:*", "Resource": [ "arn:aws:mobiletargeting:*:*:apps/projectId", "arn:aws:mobiletargeting:*:*:apps/projectId/*" ], "Condition": { "IpAddress": {"aws:SourceIp": "54.240.143.0/24"}, "NotIpAddress": {"aws:SourceIp": "54.240.143.188/32"} } } ]}

Exemplo: restringir o acesso ao Amazon Pinpoint com base emtagsA política de exemplo a seguir concede permissões para executar qualquer ação do Amazon Pinpointem um projeto especificado (projectId). No entanto, as permissões são concedidas somente se asolicitação derivar de um usuário cujo nome seja um valor na tag de recurso Owner do projeto, conformeespecificado na condição.

O bloco Condition usa a condição StringEquals e a chave de condição aws:ResourceTag/${TagKey}. Para obter mais informações sobre as condições e as chaves de condições, consulteEspecificar condições em uma política no Guia do usuário do IAM.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ModifyResourceIfOwner", "Effect": "Allow", "Action": "mobiletargeting:*", "Resource": [ "arn:aws:mobiletargeting:*:*:apps/projectId", "arn:aws:mobiletargeting:*:*:apps/projectId/*" ], "Condition": { "StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"} } } ]}

Funções do IAM para tarefas comuns do AmazonPinpointUma função do IAM é uma identidade do AWS Identity and Access Management (IAM) que você pode criarna conta da AWS e conceder permissões específicas. Uma função do IAM é semelhante a um usuáriodo IAM, pois é uma identidade da AWS com políticas de permissão que determinam o que a identidadepode e não pode fazer na AWS. No entanto, em vez de ser exclusivamente associada a uma pessoa, umafunção destina-se a ser assumida por qualquer pessoa que precisar.

Além disso, uma função não tem credenciais de longo prazo padrão, como uma senha ou chaves deacesso, associadas a ela. Em vez disso, ela fornece credenciais de segurança temporárias para umasessão. Você pode usar funções do IAM para delegar acesso a usuários, aplicativos ou serviços quenormalmente não têm acesso aos seus recursos da AWS.

386

Page 394: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorFunções do IAM para tarefas comuns

Por esses motivos, é possível usar funções do IAM para integrar o Amazon Pinpoint a determinadosserviços e recursos da AWS para sua conta. Por exemplo, pode ser conveniente permitir que o AmazonPinpoint tenha acesso às definições de endpoint que você armazena em um bucket do Amazon SimpleStorage Service (Amazon S3) e deseja usar em segmentos. Ou você pode permitir que o Amazon Pinpointfaça streaming de dados de eventos para um streaming do Amazon Kinesis para a sua conta. Da mesmaforma, você pode usar as funções do IAM para permitir que aplicativos web ou móveis registrem endpointsou relatem o uso de dados de projetos do Amazon Pinpoint, sem incorporar as chaves da AWS nosaplicativos (nos quais pode ser difícil mudá-las e de onde os usuários podem possivelmente extraí-las).

Para esses cenários, é possível delegar acesso ao Amazon Pinpoint ao usar as funções do IAM. Estaseção explica e fornece exemplos de tarefas comuns do Amazon Pinpoint que usam funções do IAMpara operar com outros serviços da AWS. Para obter informações sobre como usar funções do IAMcom aplicativos web ou móveis mais especificamente, consulte Permitir acesso a usuários autenticadosexternamente (federação de identidades) no Guia do usuário do IAM.

Tópicos• Função do IAM para importação de endpoints ou de segmentos (p. 387)• Função do IAM para exportação de endpoints ou de segmentos (p. 388)• Função do IAM para recuperar recomendações do Amazon Personalize (p. 392)• Função IAMpara eventos de streaming para Kinesis (p. 395)• Função do IAM para streaming de eventos de e-mail ao Kinesis Data Firehose (p. 397)

Função do IAM para importação de endpoints ou de segmentosCom o Amazon Pinpoint, você pode definir um segmento de usuário ao importar definições de endpoint deum bucket do Amazon Simple Storage Service (Amazon S3) na conta da AWS. Antes de importar, vocêdeve delegar as permissões necessárias para Amazon Pinpoint. Para fazer isso, crie uma função do AWSIdentity and Access Management (IAM) e anexe as seguintes políticas a ela:

• A política gerenciada pela AWS AmazonS3ReadOnlyAccess. Essa política é criada e gerenciada peloAWS e concede acesso somente leitura ao seu bucket do Amazon S3.

• Uma política de confiança que permita que Amazon Pinpoint assuma a função.

Depois de criar a função, você pode usar Amazon Pinpoint para importar segmentos de um bucket doAmazon S3. Para obter informações sobre como criar o bucket, criar arquivos de endpoint e importar umsegmento usando o console, consulte Importação de segmentos no Guia do usuário do Amazon Pinpoint.Para obter um exemplo de como importar um segmento programaticamente usando o AWS SDK for Java,consulte Importação de segmentos (p. 180) neste guia.

Anexação da política de confiança

Para permitir que Amazon Pinpoint assuma a função IAM e execute as ações permitidas pela políticaAmazonS3ReadOnlyAccess, anexe a seguinte política de confiança à função:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUserToImportEndpointDefinitions", "Effect": "Allow", "Principal": { "Service": "pinpoint.amazonaws.com" }, "Action": "sts:AssumeRole" }

387

Page 395: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorFunções do IAM para tarefas comuns

]}

Criação da função do IAM (AWS CLI)

Complete as seguintes etapas para criar a função IAM usando o AWS Command Line Interface (AWS CLI).Se você ainda não tiver instalado a AWS CLI, consulte Instalar a AWS CLI no Guia do usuário do AWSCommand Line Interface.

Para criar a função IAM usando o AWS CLI

1. Crie um arquivo JSON que contenha a política de confiança para a sua função, e salve-o localmente.Você pode copiar a política de confiança fornecida neste tópico.

2. Na linha de comando, use o comando create-role para criar a função e anexar a política deconfiança:

aws iam create-role --role-name PinpointSegmentImport --assume-role-policy-document file://PinpointImportTrustPolicy.json

Seguindo o prefixo file://, especifique o caminho de acesso ao arquivo JSON que contém apolítica de confiança.

Depois de executar este comando, você verá uma saída semelhante à seguinte no terminal:

{ "Role": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "pinpoint.amazonaws.com" } } ] }, "RoleId": "AIDACKCEVSQ6C2EXAMPLE", "CreateDate": "2016-12-20T00:44:37.406Z", "RoleName": "PinpointSegmentImport", "Path": "/", "Arn": "arn:aws:iam::111122223333:role/PinpointSegmentImport" }}

3. Use o comando attach-role-policy para anexar a AmazonS3ReadOnlyAccesspolíticagerenciada pelo AWS à função:

aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess --role-name PinpointSegmentImport

Função do IAM para exportação de endpoints ou de segmentosVocê pode obter uma lista de endpoints criando um trabalho de exportação. Quando você cria um trabalhode exportação, você precisa especificar um ID de projeto, e você pode especificar um ID de segmento.O Amazon Pinpoint, em seguida, exporta uma lista dos endpoints associados ao projeto ou segmento

388

Page 396: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorFunções do IAM para tarefas comuns

para um bucket Amazon Simple Storage Service (Amazon S3). O arquivo resultante contém uma lista deendpoints formatados por JSON e seus atributos, como canal, endereço, status de inclusão/exclusão, datade criação e ID de endpoint.

Para criar um trabalho de exportação, você precisa configurar uma função do IAM que permita que oAmazon Pinpoint grave em um bucket do Amazon S3. O processo de configuração da função consiste emduas etapas:

1. Crie uma política do IAM que permite que uma entidade (neste caso, o Amazon Pinpoint) grave em umbucket específico do Amazon S3.

2. Crie uma função do IAM e anexe a política à ela.

Este tópico contém procedimentos para concluir as duas etapas. Esses procedimentos pressupõem quevocê já criou um bucket do Amazon S3 e uma pasta nesse bucket para armazenar segmentos exportados.Para obter informações sobre como criar buckets, consulte Criar um bucket no Guia de conceitos básicosdo Amazon Simple Storage Service.

Esses procedimentos também pressupõem que você já instalou e configurou a AWS Command LineInterface (AWS CLI). Para obter mais informações sobre como configurar a AWS CLI, consulte Instalaçãoda AWS CLI no Guia do usuário do AWS Command Line Interface.

Etapa 1: Crie a política do IAM

Uma política do IAM define as permissões de uma entidade, como uma identidade ou recurso. Para criaruma função para exportar os endpoints do Amazon Pinpoint, você precisa criar uma política que concedapermissão para gravar em uma pasta específica em um bucket específico do Amazon S3. O exemplo depolítica a seguir segue a prática de segurança de concessão de privilégio mínimo — ou seja, apenas aspermissões necessárias são concedidas para a execução de uma única tarefa.

Para criar a política IAM

1. Em um editor de texto, crie um novo arquivo. Cole o seguinte código no arquivo:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUserToSeeBucketListInTheConsole", "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::*" ] }, { "Sid": "AllowRootAndHomeListingOfBucket", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::example-bucket" ], "Condition": { "StringEquals": { "s3:delimiter": [ "/" ], "s3:prefix": [ "", "Exports/" ] }

389

Page 397: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorFunções do IAM para tarefas comuns

} }, { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::example-bucket" ], "Condition": { "StringLike": { "s3:prefix": [ "Exports/*" ] } } }, { "Sid": "AllowAllS3ActionsInUserFolder", "Action": [ "s3:*" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::example-bucket/Exports/*" ] } ]}

No código anterior, substitua todas as ocorrências de example-bucket pelo nome do bucket doAmazon S3 que contém a pasta para onde você deseja exportar as informações do segmento. Alémdisso, substitua todas as ocorrências de Exports (Exportações) pelo nome da pasta em si.

Ao concluir, salve o arquivo como s3policy.json.2. Ao usar a AWS CLI, navegue até o diretório no qual o arquivo s3policy.json está localizado. Insira

o seguinte comando para criar a política:

aws iam create-policy --policy-name s3ExportPolicy --policy-document file://s3policy.json

Se a criação da política for bem-sucedida, você verá um resultado semelhante a este:

{ "Policy": { "CreateDate": "2018-04-11T18:44:34.805Z", "IsAttachable": true, "DefaultVersionId": "v1", "AttachmentCount": 0, "PolicyId": "ANPAJ2YJQRJCG3EXAMPLE", "UpdateDate": "2018-04-11T18:44:34.805Z", "Arn": "arn:aws:iam::123456789012:policy/s3ExportPolicy", "PolicyName": "s3ExportPolicy", "Path": "/" }}

Copie o nome de recurso da Amazon (ARN) da política (arn:aws:iam::123456789012:policy/s3ExportPolicy no exemplo anterior). Na próxima seção, você deverá fornecer esse ARN quandocriar a função.

Note

Se você receber uma mensagem informando que sua conta não está autorizada a executara operação CreatePolicy, precisará anexar uma política à sua conta de usuário que

390

Page 398: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorFunções do IAM para tarefas comuns

permita a criação de novas políticas e funções do IAM. Para obter mais informações, consulteAdicionar e remover permissões de identidade do IAM no Guia do usuário do IAM.

Etapa 2: Crie a função do IAM

Agora que você criou uma política do IAM, pode criar uma função e anexar a política a ela. Cada funçãodo IAM contém uma política de confiança — um conjunto de regras que especifica quais entidades têmpermissão para assumir a função. Nesta seção, você cria uma política de confiança que permite aoAmazon Pinpoint assumir a função. Em seguida, você cria a função propriamente dita e depois anexa a elaa política que você criou na seção anterior.

Para criar a função IAM

1. Em um editor de texto, crie um novo arquivo. Cole o seguinte código no arquivo:

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":"pinpoint.amazonaws.com" }, "Action":"sts:AssumeRole" } ]}

Salve o arquivo como trustpolicy.json.2. Ao usar a AWS CLI, navegue até o diretório no qual o arquivo trustpolicy.json está localizado.

Insira o seguinte comando para criar uma nova função:

aws iam create-role --role-name s3ExportRole --assume-role-policy-document file://trustpolicy.json

Se o comando for executado com êxito, você verá um resultado semelhante a este:

{ "Role": { "RoleName": "s3ExportRole", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "pinpoint.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }, "RoleId": "AROAICPO353GIPEXAMPLE", "Arn": "arn:aws:iam::123456789012:role/s3ExportRole", "CreateDate": "2018-04-11T18:52:36.712Z", "Path": "/" } }

391

Page 399: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorFunções do IAM para tarefas comuns

3. Na linha de comando, insira o seguinte comando para anexar a política que você criou na seçãoanterior à função que você acabou de criar:

aws iam attach-role-policy --policy-arn arn:aws:iam::123456789012:policy/s3ExportPolicy --role-name s3ExportRole

No comando anterior, substitua arn:aws:iam::123456789012:policy/s3ExportPolicy peloARN da política que você criou na seção anterior.

Função do IAM para recuperar recomendações do AmazonPersonalizeVocê pode configurar o Amazon Pinpoint para recuperar dados de recomendação de uma solução doAmazon Personalize que foi implantada como uma campanha do Amazon Personalize. Você pode usaresses dados para enviar recomendações personalizadas aos destinatários da mensagem com basenos atributos e no comportamento de cada destinatário. Para saber mais, consulte Modelos de machinelearning no Guia do usuário do Amazon Pinpoint.

Antes de recuperar dados de recomendações de uma campanha do Amazon Personalize, é necessáriocriar uma função do AWS Identity and Access Management (IAM) que permita que o Amazon Pinpointrecupere os dados da campanha. O Amazon Pinpoint poderá criar essa função automaticamente quandovocê usar o console para configurar um modelo de recomendação no Amazon Pinpoint. Ou, é possívelcriar essa função manualmente.

Para criar a função manualmente, use a API do IAM para concluir as seguintes etapas:

1. Crie uma política do IAM que permita que uma entidade (neste caso, o Amazon Pinpoint) recuperedados de recomendação de uma campanha do Amazon Personalize.

2. Crie uma função do IAM e anexe a política do IAM à ela.

Este tópico explica como concluir essas etapas usando a AWS Command Line Interface (AWS CLI). Elepressupõe que você já tenha criado a solução do Amazon Personalize e tenha implantado como umacampanha do Amazon Personalize. Para obter informações sobre como criar e implantar uma campanha,consulte Criar uma campanha no Guia do desenvolvedor do Amazon Personalize.

Esse tópico também pressupõe que você já instalou e configurou a AWS CLI. Para obter mais informaçõessobre como configurar a AWS CLI, consulte Instalação da AWS CLI no Guia do usuário do AWS CommandLine Interface.

Etapa 1: Crie a política do IAM

Uma política do IAM define as permissões de uma entidade, como uma identidade ou recurso. Para criaruma função que permita que o Amazon Pinpoint recupere dados de recomendação de uma campanha doAmazon Personalize, primeiro crie uma política do IAM para a função. Essa política deve permitir que oAmazon Pinpoint:

• Recupere informações de configuração para a solução que é implantada pela campanha(DescribeSolution).

• Verifique o status da campanha (DescribeCampaign).• Recupere dados de recomendação da campanha (GetRecommendations).

No procedimento a seguir, a política de exemplo permite esse acesso para uma solução específica doAmazon Personalize que foi implantada por uma campanha específica do Amazon Personalize.

392

Page 400: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorFunções do IAM para tarefas comuns

Para criar a política IAM

1. Em um editor de texto, crie um novo arquivo. Cole o seguinte código no arquivo:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RetrieveRecommendationsOneCampaign", "Effect": "Allow", "Action": [ "personalize:DescribeSolution", "personalize:DescribeCampaign", "personalize:GetRecommendations" ], "Resource": [ "arn:aws:personalize:region:accountId:solution/solutionId", "arn:aws:personalize:region:accountId:campaign/campaignId" } ]}

No exemplo anterior, substitua o texto em itálico por suas informações:

• região – o nome da região da AWS que hospeda a solução e a campanha do AmazonPersonalize.

• accountId – o ID de sua conta da AWS.• solutionId – o ID de recurso exclusivo da solução do Amazon Personalize implantada pela

campanha.• campaignId – o ID de recurso exclusivo da Amazon Personalize campanha para recuperar dados

de recomendação.2. Ao concluir, salve o arquivo como RetrieveRecommendationsPolicy.json.3. Usando a interface de linha de comando, navegue até o diretório onde salvou o arquivo

RetrieveRecommendationsPolicy.json.4. Digite o comando a seguir para criar uma política e nomeie-a como

RetrieveRecommendationsPolicy. Para usar outro nome, altereRetrieveRecommendationsPolicy para o nome desejado.

aws iam create-policy --policy-name RetrieveRecommendationsPolicy --policy-document file://RetrieveRecommendationsPolicy.json

Se a criação da política for bem-sucedida, você verá um resultado semelhante a este:

{ "Policy": { "PolicyName": "RetrieveRecommendationsPolicy", "PolicyId": "ANPAJ2YJQRJCG3EXAMPLE", "Arn": "arn:aws:iam::123456789012:policy/RetrieveRecommendationsPolicy", "Path": "/", "DefaultVersionId": "v1", "AttachmentCount": 0, "PermissionBoundaryUsageCount": 0, "IsAttachable": true, "CreateDate": "2020-03-04T22:23:15Z", "UpdateDate": "2020-03-04T22:23:15Z" }}

393

Page 401: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorFunções do IAM para tarefas comuns

Note

Se você receber uma mensagem informando que sua conta não está autorizada a executar aoperação CreatePolicy, será necessário anexar uma política à sua conta de usuário quepermita a criação de novas políticas e funções do IAM. Para obter mais informações, consulteAdicionar e remover permissões de identidade do IAM no Guia do usuário do IAM.

5. Copie o nome de recurso da Amazon (ARN) da política (arn:aws:iam::123456789012:policy/RetrieveRecommendationsPolicy no exemplo anterior). Na próxima seção, você precisará desseARN para criar a função do IAM.

Etapa 2: Crie a função do IAM

Depois de criar a política do IAM, você pode criar uma função do IAM e anexar a política a ela.

Cada função do IAM contém uma política de confiança, que é um conjunto de regras que especifica quaisentidades têm permissão para assumir a função. Nesta seção, você cria uma política de confiança quepermite ao Amazon Pinpoint assumir a função. E também cria a própria função. Depois, você anexa apolítica à função.

Para criar a função IAM

1. Em um editor de texto, crie um novo arquivo. Cole o seguinte código no arquivo:

{ "Version":"2012-10-17", "Statement":[ { "Effect": "Allow", "Principal": { "Service": "pinpoint.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

2. Salve o arquivo como RecommendationsTrustPolicy.json.3. Usando a interface de linha de comando, navegue até o diretório onde salvou o arquivo

RecommendationsTrustPolicy.json.4. Insira o seguinte comando para criar uma função e nomeie-a como

PinpointRoleforPersonalize: Para usar outro nome, altere o nomePinpointRoleforPersonalize para o nome desejado.

aws iam create-role --role-name PinpointRoleforPersonalize --assume-role-policy-document file://RecommendationsTrustPolicy.json

Se o comando for executado com êxito, você verá um resultado semelhante a este:

{ "Role": { "Path": "/", "RoleName": "PinpointRoleforPersonalize", "RoleId": "AKIAIOSFODNN7EXAMPLE", "Arn": "arn:aws:iam::123456789012:role/PinpointRoleforPersonalize", "CreateDate": "2020-03-04T22:29:45Z", "AssumeRolePolicyDocument": { "Version": "2012-10-17",

394

Page 402: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorFunções do IAM para tarefas comuns

"Statement": [ { "Effect": "Allow", "Principal": { "Service": "pinpoint.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } } }

5. Na linha de comando, insira o seguinte comando para anexar a política criada na seção anterior àfunção que você acabou de criar:

aws iam attach-role-policy --policy-arn arn:aws:iam::123456789012:policy/RetrieveRecommendationsPolicy --role-name PinpointRoleforPersonalize

No comando anterior, substitua arn:aws:iam::123456789012:policy/RetrieveRecommendationsPolicy pelo ARN da política criada na seção anterior. Além disso,substitua PinpointRoleforPersonalize pelo nome especificado na etapa 4, caso tenhaespecificado um nome diferente para a função.

Função IAMpara eventos de streaming para KinesisO Amazon Pinpoint pode enviar dados de uso de aplicativos automaticamente ou dados de eventos doseu aplicativo para um fluxo de dados do Amazon Kinesis ou fluxo de entrega do Amazon Kinesis DataFirehose na conta da AWS. Antes que Amazon Pinpoint possa começar a fazer o streaming dos dados deeventos, você terá de delegar as permissões necessárias a Amazon Pinpoint.

Se você usar o console para configurar o streaming de eventos, Amazon Pinpoint criará uma função AWSIdentity and Access Management (IAM) automaticamente com as permissões necessárias. Para obter maisinformações, leia Streaming Amazon Pinpoint Events to Amazon Kinesis no Guia do usuário do AmazonPinpoint.

Se quiser criar a função manualmente, anexe as seguintes políticas a ela:

• Uma política que permite que o Amazon Pinpoint envie dados de eventos para o stream.• Uma política de confiança que permita que Amazon Pinpoint assuma a função.

Após criar a função, você poderá configurar Amazon Pinpoint para enviar eventos ao streamautomaticamente. Para obter mais informações, consulte Streaming de eventos do Amazon Pinpoint paraKinesis (p. 236) neste guia.

Políticas de permissõesPara permitir que Amazon Pinpoint envie dados de eventos a seu stream, anexe uma das seguintespolíticas à função.

Amazon Kinesis Data Streams

A política a seguir permite que o Amazon Pinpoint envie dados de eventos a um fluxo do Kinesis.

{ "Version": "2012-10-17", "Statement": { "Action": [

395

Page 403: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorFunções do IAM para tarefas comuns

"kinesis:PutRecords", "kinesis:DescribeStream" ], "Effect": "Allow", "Resource": [ "arn:aws:kinesis:region:account-id:stream/stream-name" ] }}

Amazon Kinesis Data Firehose

A política a seguir permite que Amazon Pinpoint envie dados de eventos a um fluxo de entrega KinesisData Firehose.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "firehose:PutRecordBatch", "firehose:DescribeDeliveryStream" ], "Resource": [ "arn:aws:firehose:region:account-id:deliverystream/delivery-stream-name" ] }}

Política de confiançaPara permitir que Amazon Pinpoint assuma a função IAM e execute as ações permitidas pela política depermissões, anexe a política de confiança a seguir à função:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "pinpoint.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

Criação da função do IAM (AWS CLI)Complete as seguintes etapas para criar a função IAM usando o AWS Command Line Interface (AWS CLI).Para saber como criar a função usando o console do Amazon Pinpoint, consulte Streaming de eventos doAmazon Pinpoint para o Kinesis no Guia do usuário do Amazon Pinpoint.

Se você ainda não tiver instalado a AWS CLI, consulte Instalar a AWS CLI no Guia do usuário do AWSCommand Line Interface.

Para criar a função IAM usando o AWS CLI

1. Crie um arquivo JSON que contenha a política de confiança para a sua função, e salve-o localmente.Você pode copiar a política de confiança fornecida neste tópico.

2. Use o comando create-role para criar a função e anexar a política de confiança:

396

Page 404: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorFunções do IAM para tarefas comuns

aws iam create-role --role-name PinpointEventStreamRole --assume-role-policy-document file://PinpointEventStreamTrustPolicy.json

Seguindo o prefixo file://, especifique o caminho de acesso ao arquivo JSON que contém apolítica de confiança.

Após executar este comando, a AWS CLI imprime a seguinte saída no terminal:

{ "Role": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "pinpoint.amazonaws.com" } } ] }, "RoleId": "AIDACKCEVSQ6C2EXAMPLE", "CreateDate": "2017-02-28T18:02:48.220Z", "RoleName": "PinpointEventStreamRole", "Path": "/", "Arn": "arn:aws:iam::111122223333:role/PinpointEventStreamRole" }}

3. Crie um arquivo JSON que contenha a política de permissões da função, e salve-o localmente. Vocêpode copiar uma das políticas encontradas na seção Políticas de permissões (p. 395) deste tópico.

4. Use o comando put-role-policy para anexar a política de permissões à função:

aws iam put-role-policy --role-name PinpointEventStreamRole --policy-name PinpointEventStreamPermissionsPolicy --policy-document file://PinpointEventStreamPermissionsPolicy.json

Seguindo o prefixo file://, especifique o caminho até o arquivo JSON que contém a política depermissões.

Função do IAM para streaming de eventos de e-mail ao KinesisData FirehoseNa Amazon Pinpoint Email API, você pode criar conjuntos de configurações que especificam como lidarcom determinados eventos de e-mail. Por exemplo, você pode criar um conjunto de configurações queenvia notificações de entrega para um destino de evento específico, como um tópico do Amazon SNS ouum fluxo de entrega do Kinesis Data Firehose. Quando você envia um e-mail por meio da Amazon PinpointEmail API usando esse conjunto de configurações, o Amazon Pinpoint envia informações sobre eventosrelacionados a e-mail para o destino do evento especificado no conjunto de configurações.

A Amazon Pinpoint Email API pode entregar informações sobre os seguintes tipos de eventos de e-mailpara os destinos de eventos que você especificar:

• Envios – A chamada para o Amazon Pinpoint foi bem-sucedida, e o Amazon Pinpoint tentou entregar oe-mail.

397

Page 405: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorFunções do IAM para tarefas comuns

• Entregas – O Amazon Pinpoint entregou com êxito o e-mail ao servidor de e-mail do destinatário.• Rejeições – O Amazon Pinpoint aceitou o e-mail, determinou que ele continha malware e o rejeitou. O

Amazon Pinpoint não tentou entregar o e-mail ao servidor de e-mail do destinatário.• Falhas de renderização – O e-mail não foi enviado por causa de um problema de renderização do

modelo. Esse tipo de evento ocorre apenas quando você envia um e-mail que inclui tags de substituição.Esse tipo de evento pode ocorrer quando valores de substituição estão ausentes. Ele também podeocorrer quando há uma incompatibilidade entre as tags de substituição usadas no e-mail e os dados desubstituição fornecidos.

Note

Se você usar tags de substituição nos e-mails enviados usando a Amazon Pinpoint EmailAPI, deverá sempre criar um conjunto de configurações que registre os eventos de falha derenderização.

• Devoluções – O servidor de e-mail do destinatário rejeitou definitivamente o e-mail.• Reclamações – O e-mail foi entregue com sucesso ao destinatário, mas o destinatário usou o recurso

"Report Spam" (Reportar spam) (ou equivalente) de seu cliente de e-mail para relatar a mensagem.• Aberturas – O destinatário recebeu a mensagem e a abriu em seu cliente de e-mail.• Cliques – O destinatário clicou em um ou mais links no e-mail.

Note

Toda vez que um destinatário abre ou clica em um e-mail, o Amazon Pinpoint gera eventosexclusivos de abertura ou clique, respectivamente. Em outras palavras, se um destinatárioespecífico abre uma mensagem cinco vezes, o Amazon Pinpoint informa cinco eventos deabertura separados.

Caso você queira enviar dados sobre esses eventos para um fluxo do Kinesis Data Firehose, seránecessário criar uma função do IAM que tenha as permissões apropriadas. A função deve usar as políticasa seguir:

• Uma política de confiança que permite ao Amazon Pinpoint assumir a função.• Uma política de permissões que permite que a Amazon Pinpoint Email API envie registros de entrega e

resposta por e-mail para seu fluxo.

Após criar a função, você poderá configurar Amazon Pinpoint para enviar eventos ao streamautomaticamente. Para obter mais informações, consulte Streaming de eventos do Amazon Pinpoint paraKinesis (p. 236).

Política de confiança

Para permitir que Amazon Pinpoint Email API assuma a função IAM e execute as ações permitidas pelapolítica de permissões, anexe a política de confiança a seguir à função:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": {

398

Page 406: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorFunções do IAM para tarefas comuns

"sts:ExternalId": "accountId" } } } ]}

No exemplo acima, substitua accountId pelo ID da sua conta da AWS.

Política de permissões

Para permitir que a Amazon Pinpoint Email API envie dados de eventos de e-mail para um fluxo de entregado Kinesis Data Firehose, anexe a seguinte política de permissões a uma função.

A política a seguir permite que Amazon Pinpoint envie dados de eventos a um fluxo de entrega KinesisData Firehose.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "firehose:PutRecordBatch", "firehose:DescribeDeliveryStream" ], "Resource": [ "arn:aws:firehose:region:accountId:deliverystream/deliveryStreamName" ] }}

No exemplo acima, substitua region (região) pelo nome da região da AWS em que vocêcriou o fluxo de entrega. Substitua accountId pelo ID da sua conta da AWS. Por fim, substituadeliveryStreamName com o nome do fluxo de entrega.

Criação da função do IAM (AWS CLI)

Complete as seguintes etapas para criar a função IAM usando o AWS Command Line Interface (AWS CLI).Para obter informações sobre a instalação e a configuração da AWS CLI, consulte Instalar a AWS CLI noGuia do usuário do AWS Command Line Interface.

Para criar a função IAM usando o AWS CLI

1. Crie um arquivo JSON que contenha a política de confiança para a sua função, e depois salve-olocalmente. Você pode copiar a política de confiança (p. 398) fornecida anteriormente neste tópico.

2. Use o comando create-role para criar a função e anexar a política de confiança:

aws iam create-role --role-name PinpointEventStreamRole \ --assume-role-policy-document file://PinpointEventStreamTrustPolicy.json

No exemplo anterior, substitua PinpointEventStreamTrustPolicy.json pelo caminho completopara o arquivo que contém a política de confiança.

Após executar esse comando, a AWS CLI retornará a seguinte saída:

{ "Role": { "AssumeRolePolicyDocument": {

399

Page 407: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorSolução de problemas

"Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "ses.amazonaws.com" } } ] }, "RoleId": "AKIAIOSFODNN7EXAMPLE", "CreateDate": "2019-04-10T14:20:42.314Z", "RoleName": "PinpointEventStreamRole", "Path": "/", "Arn": "arn:aws:iam::111122223333:role/PinpointEventStreamRole" }}

3. Crie um arquivo JSON que contenha a política de permissões da função, e depois salve-o localmente.Você pode copiar a política de permissões (p. 399) fornecida anteriormente neste tópico.

4. Use o comando put-role-policy para anexar a política de permissões à função:

aws iam put-role-policy \--role-name PinpointEventStreamRole \--policy-name PinpointEventStreamPermissionsPolicy --policy-document file://PinpointEventStreamPermissionsPolicy.json

No exemplo anterior, substitua PinpointEventStreamPermissionsPolicy.json pelo caminhocompleto para o arquivo que contém a política de permissões.

Solução de problemas de Identity and AccessManagement do Amazon PinpointUse as seguintes informações para ajudar a diagnosticar e corrigir problemas comuns que podem serencontrados ao trabalhar com o Amazon Pinpoint e o IAM.

Tópicos• Não tenho autorização para executar uma ação no Amazon Pinpoint (p. 400)• Não estou autorizado a executar: iam:PassRole (p. 401)• Quero visualizar minhas chaves de acesso (p. 401)• Sou administrador e desejo conceder acesso ao Amazon Pinpoint para outros usuários. (p. 401)• Quero permitir que as pessoas fora da minha conta da AWS acessem meus recursos do Amazon

Pinpoint (p. 402)

Não tenho autorização para executar uma ação no AmazonPinpointSe o Console de gerenciamento da AWS informar que você não está autorizado a executar uma ação,você deverá entrar em contato com o administrador para obter assistência. O administrador é a pessoaque forneceu a você o seu nome de usuário e senha.

O erro de exemplo a seguir ocorre quando o usuário mateojackson do IAM tenta usar o console paravisualizar detalhes sobre um projeto, mas não tem permissões mobiletargeting:GetApp:

400

Page 408: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorSolução de problemas

User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: mobiletargeting:GetApp on resource: my-example-project

Nesse caso, Mateo pede ao administrador para atualizar suas políticas a fim de obter acesso ao recursomy-example-project usando a ação mobiletargeting:GetApp.

Não estou autorizado a executar: iam:PassRoleSe você receber uma mensagem de erro informando que você não está autorizado a executar a açãoiam:PassRole, entre em contato com o administrador para obter assistência. O administrador é a pessoaque forneceu a você o seu nome de usuário e senha. Peça a essa pessoa para atualizar suas políticaspara permitir que você passe uma função para o Amazon Pinpoint.

Alguns serviços da AWS permitem que você passe uma função existente para o serviço, em vez decriar uma nova função de serviço ou função vinculada ao serviço. Para fazer isso, um usuário deve terpermissões para passar a função para o serviço.

O erro de exemplo a seguir ocorre quando uma usuária do IAM chamada marymajor tenta usar o consolepara executar uma ação no Amazon Pinpoint. No entanto, a ação exige que o serviço tenha permissõesconcedidas por uma função de serviço. Mary não tem permissões para passar a função para o serviço.

User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole

Neste caso, Mary pede ao administrador para atualizar suas políticas para permitir que ela execute a açãoiam:PassRole.

Quero visualizar minhas chaves de acessoDepois de criar suas chaves de acesso de usuário do IAM, é possível visualizar seu ID de chave de acessoa qualquer momento. No entanto, você não pode visualizar sua chave de acesso secreta novamente. Sevocê perder sua chave secreta, crie um novo par de chaves de acesso.

As chaves de acesso consistem em duas partes: um ID de chave de acesso (por exemplo,AKIAIOSFODNN7EXAMPLE) e uma chave de acesso secreta (por exemplo, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY). Como um nome de usuário e uma senha, você deve usar o ID da chave deacesso e a chave de acesso secreta em conjunto para autenticar suas solicitações. Gerencie suas chavesde acesso de forma tão segura quanto você gerencia seu nome de usuário e sua senha.

Important

Não forneça as chaves de acesso a terceiros, mesmo que seja para ajudar a encontrar seu ID deusuário canônico. Ao fazer isso, você pode dar a alguém acesso permanente à sua conta.

Ao criar um par de chaves de acesso, você é solicitado a guardar o ID da chave de acesso e a chave deacesso secreta em um local seguro. A chave de acesso secreta só está disponível no momento em que écriada. Se você perder sua chave de acesso secreta, você deverá adicionar novas chaves de acesso paraseu usuário do IAM. Você pode ter no máximo duas chaves de acesso. Se você já tiver duas, você deveráexcluir um par de chaves para poder criar um novo. Para visualizar as instruções, consulte Gerenciarchaves de acesso no Guia do usuário do IAM.

Sou administrador e desejo conceder acesso ao AmazonPinpoint para outros usuários.Para permitir que outros usuários acessem o Amazon Pinpoint, é necessário criar uma entidade do IAM(usuário ou função) para a pessoa ou o aplicativo que precisa do acesso. Eles usarão as credenciais

401

Page 409: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorRegistro e monitoramento

dessa entidade para acessar a AWS. Você deve anexar uma política à entidade que concede a eles aspermissões corretas no Amazon Pinpoint.

Para começar a usar imediatamente, consulte Criar os primeiros usuário e grupo delegados do IAM noGuia do usuário do IAM.

Quero permitir que as pessoas fora da minha conta da AWSacessem meus recursos do Amazon PinpointVocê pode criar uma função que os usuários de outras contas ou pessoas fora da sua organização podemusar para acessar seus recursos. Você pode especificar quem é confiável para assumir a função. Paraserviços que oferecem suporte a políticas baseadas em recursos ou listas de controle de acesso (ACLs),você pode usar essas políticas para conceder às pessoas acesso a seus recursos.

Para saber mais, consulte o seguinte:

• Para saber se o Amazon Pinpoint oferece suporte a esses recursos, consulte Como o Amazon Pinpointfunciona com o IAM (p. 354).

• Para saber como conceder acesso aos seus recursos em todas as contas da AWS pertencentes a você,consulte Conceder acesso a um usuário do IAM em outra conta da AWS pertencente a você no Guia dousuário do IAM.

• Para saber como conceder acesso aos seus recursos para contas da AWS de terceiros, consulteConceder acesso a contas da AWS pertencentes a terceiros no Guia do usuário do IAM.

• Para saber como fornecer acesso por meio de federação de identidades, consulte Fornecer acesso ausuários autenticados externamente (federação de identidades) no Guia do usuário do IAM.

• Para saber a diferença entre usar funções e políticas baseadas em recurso para acesso entre contas,consulte Como as funções do IAM diferem de políticas baseadas em recursos no Guia do usuário doIAM.

Registrar e monitorar no Amazon PinpointO registro e o monitoramento são importantes para manter a confiabilidade, a disponibilidade e odesempenho dos projetos do Amazon Pinpoint e outros tipos de recursos do Amazon Pinpoint. Énecessário registrar e coletar dados de monitoramento de todas as partes de projetos e recursos doAmazon Pinpoint a fim de depurar mais facilmente uma falha de vários pontos que possa ocorrer. A AWSoferece diversas ferramentas que podem ajudar você a registrar e coletar esses dados, além de respondera possíveis incidentes.

AWS CloudTrail

O Amazon Pinpoint é integrado ao AWS CloudTrail, um serviço que fornece um registro de açõesque foram executadas no Amazon Pinpoint por um usuário, uma função ou outro serviço da AWS.Isso inclui ações do console do Amazon Pinpoint e chamadas programáticas às operações de APIdo Amazon Pinpoint. Ao usar as informações coletadas pelo CloudTrail, é possível determinar quaissolicitações foram feitas ao Amazon Pinpoint. Para cada solicitação é possível identificar quando elafoi realizada, o endereço IP do qual foi feita, quem fez a solicitação e detalhes adicionais. Para obtermais informações, consulte Registro em log de chamadas da API do Amazon Pinpoint com o AWSCloudTrail (p. 317) neste guia.

Amazon CloudWatch

É possível usar o Amazon CloudWatch para coletar, visualizar e analisar várias métricas importantesrelacionadas aos seus projetos e conta do Amazon Pinpoint. Você também pode usar o CloudWatchpara criar alarmes que notificam se o valor de uma métrica atende determinadas condições e serespeita ou ultrapassa um limite definido por você. Se você criar um alarme, o CloudWatch enviará

402

Page 410: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorValidação de conformidade

uma notificação para um tópico do Amazon Simple Notification Service (Amazon SNS) especificadopor você. Para obter mais informações, consulte Monitorar o Amazon Pinpoint com o AmazonCloudWatch no Guia do usuário do Amazon Pinpoint.

Painéis do AWS Health

Ao usar os painéis do AWS Health, é possível verificar e monitorar o status do ambiente do AmazonPinpoint. Para verificar o status do serviço do Amazon Pinpoint em geral, use o Painel de statusdos serviços da AWS. Para verificar, monitorar e visualizar dados históricos de todos os eventos ouproblemas que possam afetar o ambiente da AWS mais especificamente, use o Painel de status deintegridade da AWS. Para saber mais sobre esses painéis, consulte Guia do usuário do AWS Health.

AWS Trusted Advisor

O AWS Trusted Advisor inspeciona o ambiente da AWS e fornece recomendações para oportunidadespara abordar falhas de segurança, melhorar o desempenho e a disponibilidade do sistema oueconomizar dinheiro. Todos os clientes da AWS têm acesso a um conjunto principal de verificaçõesdo Trusted Advisor. Os clientes que têm um plano de suporte Business ou Enterprise têm acesso averificações adicionais do Trusted Advisor.

Muitas dessas verificações podem ajudar você a avaliar a postura de segurança de seus recursosdo Amazon Pinpoint como parte da conta da AWS em geral. Por exemplo, o conjunto principal deverificações do Trusted Advisor inclui o seguinte:• As configurações de registro da conta da AWS, para cada região da AWS compatível.• Permissões de acesso aos buckets do Amazon Simple Storage Service (Amazon S3), que podem

conter arquivos que você importa para o Amazon Pinpoint para criar segmentos.• A utilização de usuários, grupos e funções do AWS Identity and Access Management (IAM) para

controlar o acesso aos recursos do Amazon Pinpoint.• As configurações e as definições de política do IAM que podem comprometer a segurança do

ambiente da AWS e dos recursos do Amazon Pinpoint.

Para obter mais informações, consulte AWS Trusted Advisor no Guia do usuário do AWS Support.

Validação de conformidade do Amazon PinpointAuditores externos avaliam a segurança e a conformidade do Amazon Pinpoint como parte de váriosprogramas de conformidade da AWS. Estes incluem AWS System and Organization Controls (SOC),FedRAMP, HIPAA, ISO/IEC 27001:2013 para controles de gerenciamento de segurança, ISO/IEC27017:2015 para controles específicos da nuvem, ISO/IEC 27018:2014 para proteção de dados pessoais,ISO/IEC 9001:2015 para sistemas de gerenciamento de qualidade, entre outros.

Para obter uma lista de serviços da AWS que estão no escopo de programas de conformidade específicos,consulte Serviços da AWS no escopo por programa de conformidade. Para obter informações gerais,consulte Programas de conformidade da AWS.

É possível fazer download de relatórios de auditoria de terceiros usando o AWS Artifact. Para obter maisinformações, consulte Fazer download de relatórios no AWS Artifact.

Sua responsabilidade com relação à conformidade ao usar o Amazon Pinpoint é determinada pelaconfidencialidade dos dados, pelos objetivos de conformidade da empresa e pelos regulamentos e leisaplicáveis. A AWS fornece os seguintes recursos para ajudar com a conformidade:

• Guias Quick Start de segurança e conformidade – esses guias de implantação abordam asconsiderações de arquitetura e fornecem etapas para implantação de ambientes de linha de basefocados em conformidade e segurança na AWS.

• Whitepaper Arquitetura para segurança e conformidade com HIPAA – esse whitepaper descreve comoas empresas podem usar a AWS para criar aplicativos em conformidade com a HIPAA.

403

Page 411: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorResiliência

• Recursos de conformidade da AWS – esta coleção de manuais e guias pode ser aplicada ao seu setor elocal.

• Avaliar recursos com regras no Guia do desenvolvedor do AWS Config – o serviço do AWS Config avaliacomo suas configurações de recursos estão em conformidade com práticas internas, diretrizes do setore regulamentos.

• AWS Security Hub – esse serviço da AWS fornece uma visão abrangente do estado da segurança naAWS que ajuda você a verificar sua conformidade com padrões e melhores práticas de segurança dosetor.

O Amazon Pinpoint é um serviço da AWS elegível para HIPAA quando os clientes usam os canais decomunicação adequados. Se você deseja usar o Amazon Pinpoint para executar cargas de trabalho quecontenham informações de saúde protegidas (PHI – Protected Health Information) conforme definido pelaHIPAA e pela legislação e os regulamentos associados, é necessário usar o canal de e-mail, o canal denotificações por push ou o canal de SMS para enviar mensagens que contenham PHI. Se você usa o canalde SMS para enviar mensagens que contenham PHI, envie-as de um código curto dedicado que vocêsolicitou para a conta da AWS com a finalidade explícita de enviar mensagens que podem ou não conterinformações de saúde protegidas. O canal de voz não é elegível para a AWS HIPAA. Não use o canal devoz para enviar mensagens que contenham informações de saúde protegidas.

Resiliência no Amazon PinpointA infraestrutura global da AWS é criada com base em regiões e zonas de disponibilidade da AWS. Asregiões da AWS fornecem várias zonas de disponibilidade separadas e isoladas fisicamente, que sãoconectadas com baixa latência, altas taxas de transferência e redes altamente redundantes. Com aszonas de disponibilidade, você pode projetar e operar aplicativos e bancos de dados que automaticamenteexecutam o failover entre as zonas sem interrupção. As zonas de disponibilidade são mais altamentedisponíveis, tolerantes a falhas e escaláveis que uma ou várias infraestruturas de data center tradicionais.

Para obter mais informações sobre regiões e zonas de disponibilidade da AWS, consulte Infraestruturaglobal da AWS.

Segurança da infraestrutura no Amazon PinpointComo um serviço gerenciado, o Amazon Pinpoint está protegido pelos procedimentos de segurança darede global da AWS que são descritos no whitepaper Amazon Web Services: visão geral dos processos desegurança.

Use chamadas de API publicadas pela AWS para acessar o Amazon Pinpoint pela rede. Os clientesdevem oferecer suporte a Transport Layer Security (TLS) 1.0 ou posterior. Recomendamos TLS 1.2 ouposterior. Os clientes também devem ter suporte a pacotes de criptografia com sigilo de encaminhamentoperfeito (PFS) como Ephemeral Diffie-Hellman (DHE) ou Ephemeral Elliptic Curve Diffie-Hellman (ECDHE).A maioria dos sistemas modernos como Java 7 e versões posteriores oferece suporte a esses modos.

Além disso, as solicitações devem ser assinadas usando um ID de chave de acesso e uma chave deacesso secreta associada a um principal do AWS Identity and Access Management (IAM) para a conta daAWS. Ou você pode usar o AWS Security Token Service (AWS STS) para gerar credenciais de segurançatemporárias para assinar solicitações.

Embora você possa fazer essas chamadas de API de qualquer lugar da rede, o Amazon Pinpoint oferecesuporte às políticas de acesso baseadas em recursos. Essas políticas podem incluir restrições com baseem endereço IP de origem. Para saber mais sobre esse tipo de política, consulte Gerenciamento doacesso usando políticas (p. 353).

404

Page 412: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAnálise de configuração e vulnerabilidade

Além disso, é possível configurar e usar vários recursos de segurança da AWS para controlar o acessoaos recursos do Amazon Pinpoint de qualquer aplicativo móvel ou da web que você integrar ao AmazonPinpoint. Isso inclui restrições às chamadas de API para tarefas como adicionar endpoints, atualizar dadosde endpoint, enviar dados de eventos e relatar dados de uso.

Para usar esses recursos, recomendamos usar os AWS Mobile SDKs ou as bibliotecas AWS AmplifyJavaScript para integrar aplicativos móveis e da web ao Amazon Pinpoint. Para aplicativos Android ou iOS,recomendamos usar o AWS Mobile SDK para Android ou AWS Mobile SDK for iOS, respectivamente. Paraaplicativos móveis ou da web baseados em JavaScript, recomendamos usar a biblioteca AWS AmplifyJavaScript para a Web ou a biblioteca AWS Amplify JavaScript para o React Native. Para saber mais sobreesses recursos, consulte Conceitos básicos dos AWS Mobile SDKs, Conceitos básicos da biblioteca AWSAmplify para a Web e Conceitos básicos da biblioteca AWS Amplify para o React Native.

Análise de configuração e vulnerabilidade noAmazon Pinpoint

Como um serviço gerenciado, o Amazon Pinpoint está protegido pelos procedimentos de segurança darede global da AWS que são descritos no whitepaper Amazon Web Services: visão geral dos processosde segurança. Isso significa que a AWS gerencia e executa tarefas e procedimentos básicos de segurançapara proteger, corrigir, atualizar e manter a infraestrutura subjacente para a conta e os recursos doAmazon Pinpoint. Esses procedimentos foram revisados e certificados por terceiros certificados.

Para obter mais informações, consulte os recursos a seguir:

• Validação de conformidade do Amazon Pinpoint (p. 403)• Modelo de responsabilidade compartilhada• Amazon Web Services: visão geral do processo de segurança (whitepaper)

405

Page 413: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCotas gerais

Cotas do Amazon PinpointAs seções a seguir listam e descrevem as cotas, anteriormente chamadas de limites, que se aplicam aosrecursos e operações do Amazon Pinpoint. Algumas cotas podem ser aumentadas, enquanto outras nãopodem. Para determinar se é possível solicitar o aumento de uma cota, consulte a coluna ou a instruçãoEligible for Increase (Qualificada para aumento) em cada seção.

Tópicos• Cotas gerais (p. 406)• Cotas de solicitação da API (p. 406)• Cotas de campanhas (p. 407)• Cotas de e-mail (p. 408)• Cotas de endpoint (p. 410)• Cotas de importação de endpoints (p. 411)• Cotas de ingestão de eventos (p. 411)• Cotas de jornadas (p. 412)• Cotas de machine learning (p. 412)• Cotas de modelos de mensagem (p. 413)• Cotas de notificações por push (p. 414)• Cotas de segmentos (p. 415)• Cotas de SMS (p. 415)• Cotas de voz (p. 415)• Solicitar um aumento de cota (p. 417)

Cotas geraisSua conta pode ter até 100 projetos do Amazon Pinpoint. Essa cota não é qualificada para aumento.

Cotas de solicitação da APIO Amazon Pinpoint implementa cotas que restringem o tamanho e o número de solicitações que vocêpode fazer para a API do Amazon Pinpoint de sua conta da AWS. Essas cotas não são qualificadas paraaumento.

O tamanho máximo de uma carga de invocação (solicitação e resposta) é de 7 MB, a menos queespecificado de outra forma para um determinado tipo de recurso. Para determinar se um recurso tem umacota diferente, consulte a seção apropriada deste tópico para esse tipo de recurso.

O número máximo de solicitações varia de acordo com o tipo de cota e a operação da API. O AmazonPinpoint implementa dois tipos de cotas para solicitações de API:

• Cotas de taxa – também conhecidas como limites de taxa, esse tipo de cota define o número máximo desolicitações que você pode fazer por segundo para uma determinada operação. Ela controla a taxa desolicitações que são enviadas ou recebidas.

• Cotas de intermitência – também conhecidas como limites de intermitência ou capacidade deintermitência, esse tipo de cota define o número máximo de solicitações que você pode enviar aomesmo tempo para uma determinada operação. Ela evita picos de uso, garantindo que o númerocompatível de solicitações seja distribuído uniformemente em um determinado período.

406

Page 414: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCotas de campanhas

A tabela a seguir lista as cotas de taxa e de intermitência da API do Amazon Pinpoint.

Operação Cota de taxa padrão (solicitaçõespor segundo)

Cota de intermitência padrão(número de solicitações)

CreateCampaign 25 25

CreateSegment 25 25

DeleteCampaign 25 25

DeleteEndpoint 1.000 1.000

DeleteSegment 25 25

GetEndpoint 7.000 7.000

PhoneNumberValidate 20 20

PutEvents 7.000 7.000

SendMessages 4.000 4.000

SendUsersMessages 6.000 6.000

UpdateCampaign 25 25

UpdateEndpoint 5.000 5.000

UpdateEndpointsBatch 5.000 5.000

UpdateSegment 25 25

Todas as outras operações 300 300

Se você exceder uma dessas cotas, o Amazon Pinpoint limitará a solicitação, ou seja, ele rejeitará umasolicitação válida e retornará um erro TooManyRequests. A limitação é baseada no número total desolicitações que você faz da sua conta para uma operação específica em uma determinada região daAWS. Além disso, as decisões de limitação são calculadas de forma independente para cada operação.Por exemplo, se o Amazon Pinpoint limitar uma solicitação para a operação SendMessages, umasolicitação concorrente para a operação UpdateEndpoint poderá ser concluída com êxito.

Cotas de campanhasAs cotas a seguir se aplicam ao recurso Campanhas da API do Amazon Pinpoint.

Recurso Cota padrão Qualificado para aumento

Campanhas ativas 200 por conta

Note

Uma campanha ativaé uma campanha queainda não foi concluídaou apresentou falha.Campanhas ativas têm

Sim (p. 417)

407

Page 415: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCotas de e-mail

Recurso Cota padrão Qualificado para aumentostatus SCHEDULED,EXECUTING ouPENDING_NEXT_RUN.

Mensagens enviadas 100 milhões por atividade decampanha

Sim (p. 417)

Campanhas baseadas emeventos

Cada projeto pode incluir até 10campanhas que são enviadasquando ocorrem eventos.

As campanhas que usamgatilhos baseados em eventosprecisam usar segmentosdinâmicos. Eles não podem usarsegmentos importados.

Se você integrar seu app como Amazon Pinpoint usandoum SDK móvel da AWS, asmensagens de campanhasbaseadas em eventos serãoenviadas apenas para clientescujos aplicativos estejamexecutando AWS Mobile SDKpara Android versão 2.7.2ou posterior, ou AWS MobileSDK for iOS versão 2.6.30 ouposterior.

Se o Amazon Pinpoint não puderentregar uma mensagem deuma campanha baseada emeventos em cinco minutos, eleinterromperá a mensagem e nãotentará enviá-la novamente.

Não

Cotas de e-mailAs cotas das seções a seguir se aplicam ao canal de e-mail.

Cotas de mensagens de e-mail

Recurso Cota padrão Qualificado para aumento

Tamanho máximo da mensagem,incluindo anexos

10 MB por mensagem Não

Número de identidadesverificadas

10.000 identidades

Note

As identidades referem-se a endereços de e-

Não

408

Page 416: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCotas de remetentes e destinatários de e-mail

Recurso Cota padrão Qualificado para aumentomail ou domínios ou aqualquer combinaçãode ambos. Todos os e-mail enviados usando oAmazon Pinpoint devemser enviados de umaidentidade verificada.

Cotas de remetentes e destinatários de e-mail

Recurso Cota padrão Qualificado para aumento

Endereço do remetente Todos os endereços ou domíniosde envio devem ser verificados.

Não

Endereço do destinatário Se sua conta ainda estiver nasandbox, todos os endereçosou domínios de e-mail dedestinatários devem serverificados.

Se sua conta não estiver nasandbox, você pode enviar aqualquer endereço válido.

Sim (p. 417)

Número de destinatários pormensagem

50 destinatários por mensagem Não

Número de identidades quepodem ser verificadas

10.000 identidades por região daAWS

Note

As identidades referem-se a endereços de e-mail ou domínios ou aqualquer combinaçãode ambos. Todos os e-mail enviados usando oAmazon Pinpoint devemser enviados de umaidentidade verificada.

Não

Cotas de envio de e-mail

Recurso Cota padrão Qualificado para aumento

Número de e-mails que podemser enviados em um período de24 horas (cota de envio)

Se sua conta estiver na sandbox,200 e-mails por período de 24horas.

Sim (p. 417)

409

Page 417: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCotas de endpoint

Recurso Cota padrão Qualificado para aumentoSe sua conta sair da sandbox, acota variará de acordo com seucaso de uso específico.

Note

Essa cota baseia-se no número dedestinatários, e não nonúmero de mensagensexclusivas enviadas. Umdestinatário é qualquerendereço de e-mail nalinha "Para:".

Número de e-mails que podemser enviados por segundo (taxade envio)

Se sua conta estiver na sandbox,1 e-mail por segundo.

Se sua conta sair da sandbox, ataxa variará de acordo com seucaso de uso específico.

Note

Essa taxa baseia-se no número dedestinatários, e não nonúmero de mensagensexclusivas enviadas. Umdestinatário é qualquerendereço de e-mail nalinha "Para:".

Sim (p. 417)

Cotas de endpointAs cotas a seguir se aplicam ao recurso Endpoints da API do Amazon Pinpoint.

Recurso Cota padrão Qualificado para aumento

Atributos conferidoscoletivamente aos parâmetrosAttributes, Metrics eUserAttributes

40 por projeto Não

Atributos conferidos aoparâmetro Attributes

40 por projeto Não

Atributos conferidos aoparâmetro Metrics

40 por projeto Não

Atributos conferidos aoparâmetro UserAttributes

40 por projeto Não

Extensão do nome do atributo 50 caracteres Não

410

Page 418: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCotas de importação de endpoints

Recurso Cota padrão Qualificado para aumento

Extensão do valor do atributo 100 caracteres Não

Objetos EndpointBatchItemem uma cargaEndpointBatchRequest

100 por carga. O tamanho dacarga não deve ser superior a 7MB.

Não

Endpoints com o mesmo ID deusuário

10 endpoints exclusivos por IDde usuário

Não

Valores conferidos aos atributosde parâmetro Attributes

50 por atributo Não

Valores conferidos aos atributosde parâmetro UserAttributes

50 por atributo Não

Cotas de importação de endpointsAs cotas a seguir se aplicam à importação de endpoints para o Amazon Pinpoint.

Recurso Cota padrão Qualificado para aumento

Tarefas de importaçãosimultâneas

2 por conta Sim (p. 417)

Tamanho da importação 1 GB por tarefa de importação

Por exemplo, se cada endpointtiver 4 KB ou menos, vocêpoderá importar 250.000endpoints.

Sim (p. 417)

Cotas de ingestão de eventosAs cotas a seguir se aplicam à ingestão de eventos usando os SDKs do AWS Mobile e o recurso Eventosda API do Amazon Pinpoint.

Recurso Cota padrão Qualificado para aumento

Número máximo de tipos deeventos personalizados

1,500 por aplicativo Não

Número máximo de chaves deatributo personalizado

500 por aplicativo Não

Número máximo de valores deatributos personalizados porchave de atributo

100.000 Não

Número máximo de caracterespor chave de atributo

50 Não

411

Page 419: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCotas de jornadas

Recurso Cota padrão Qualificado para aumento

Número máximo de caracterespor valor de atributo

200 Não

Número máximo de chaves demétricas personalizadas

500 por aplicativo Não

Número máximo de eventos emuma solicitação

100 por solicitação Não

Tamanho máximo de umasolicitação

4 MB Não

Tamanho máximo de um eventoindividual

1,000 KB Não

Número máximo de chaves deatributos e de chaves de métricaspara cada evento

40 por solicitação Não

Cotas de jornadasAs cotas a seguir aplicam-se a jornadas.

Recurso Cota padrão Qualificado para aumento

Número máximo de jornadasativas

50 por conta Sim (p. 417)

Número máximo de atividades dejornada

40 por jornada Sim (p. 417)

Tamanho máximo do segmento Para segmentos importados: 5GB por jornada

Para segmentos dinâmicos:ilimitado

Não

Cotas de machine learningAs cotas a seguir se aplicam às configurações do Amazon Pinpoint para recuperar e processar dados demodelos de machine learning (ML).

Recurso Cota padrão Qualificado para aumento

Número máximo deconfigurações do modelo

1 por modelo de mensagem

100 por conta

Não

Número máximo derecomendações

5 por endpoint ou usuário Não

412

Page 420: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCotas de modelos de mensagem

Recurso Cota padrão Qualificado para aumento

Número máximo de atributosrecomendados por endpoint ouusuário

1, se os valores dos atributosnão forem processados por umafunção do AWS Lambda

10, se os valores dos atributosforem processados por umafunção do AWS Lambda

Não

Comprimento máximo de umnome de atributo recomendado

50 caracteres para um nome deatributo

25 caracteres para um nomede exibição de atributo (o nomeque aparece no Attribute finder(Localizador de atributos) noconsole)

Não

Comprimento máximo de umvalor de atributo recomendadorecuperado do AmazonPersonalize

100 caracteres Não

Tamanho máximo de uma cargaútil de chamada (solicitação eresposta) de uma função doLambda

6 MB Não

Tempo máximo de espera paraque uma função do Lambdaprocesse dados

15 segundos Não

Número máximo de tentativasde invocação de uma função doLambda

3 tentativas Não

Dependendo de como você configurar o Amazon Pinpoint para usar um modelo de ML, cotas adicionaispodem ser aplicadas. Para saber mais sobre as cotas do Amazon Personalize, consulte Cotas no Guia dodesenvolvedor do Amazon Personalize. Para saber mais sobre as cotas do AWS Lambda, consulte Cotasno Guia do desenvolvedor do AWS Lambda.

Cotas de modelos de mensagemAs cotas a seguir se aplicam aos modelos de mensagens de sua conta do Amazon Pinpoint.

Recurso Cota padrão Qualificado para aumento

Número máximo de modelos demensagem

10 mil por conta Sim (p. 417)

Número máximo de versões 5.000 por modelo Não

Número máximo de caracteresem um modelo de e-mail

500.000 caracteres Não

413

Page 421: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCotas de notificações por push

Recurso Cota padrão Qualificado para aumento

Número máximo de caracteresnas partes de modelo padrão deum modelo de notificação porpush

2.000 caracteres Não

Número máximo de caracteresem partes de modelo específicasdo ADM de um modelo denotificação por push

4.000 caracteres Não

Número máximo de caracteresem partes de modelo específicasdo APNs de um modelo denotificação por push

2.000 caracteres Não

Número máximo de caracteresem partes de modelo específicasdo Baidu de um modelo denotificação por push

4.000 caracteres Não

Número máximo de caracteresem partes de modelo específicasdo FCM de um modelo denotificação por push

4.000 caracteres Não

Número máximo de caracteresem um modelo SMS

1.600 caracteres Não

Número máximo de caracteresem um modelo de voz

10,000 caracteres Não

Cotas de notificações por pushAs cotas a seguir se aplicam a mensagens que o Amazon Pinpoint envia por meio dos canais denotificação por push.

Recurso Cota padrão Qualificado para aumento

O número máximo denotificações por push que podemser enviadas por segundo

25.000 notificações por segundo Não

Tamanho da carga damensagem no Amazon DeviceMessaging (ADM)

6 KB por mensagem Não

Tamanho da carga damensagem no Serviço denotificação por push da Apple(APNs)

4 KB por mensagem Não

Tamanho da carga damensagem na sandbox do APNs

4 KB por mensagem Não

414

Page 422: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCotas de segmentos

Recurso Cota padrão Qualificado para aumento

Tamanho da carga damensagem no Baidu Cloud Push

4 KB por mensagem Não

Tamanho da carga damensagem no Firebase CloudMessaging (FCM)

4 KB por mensagem Não

Cotas de segmentosAs cotas a seguir se aplicam ao recurso Segmentos da API do Amazon Pinpoint.

Recurso Cota padrão Qualificado para aumento

Número máximo de dimensõesque podem ser usadas para criarum segmento

100 por segmento Não

Cotas de SMSAs cotas a seguir se aplicam ao canal de SMS.

Recurso Cota padrão Qualificado para aumento

Limite de gastos 1,00 USD por conta Sim (p. 417)

Número de mensagens SMS quepodem ser enviadas por segundo(taxa de envio)

20 mensagens por segundo Não

Número de mensagens SMS quepodem ser enviadas a um únicodestinatário a cada segundo

1 mensagem por segundo Não

Número de tópicos do AmazonSNS para SMS bidirecional

100,000 por conta Sim (p. 417)

Cotas de vozAs cotas a seguir se aplicam ao canal de voz.

Note

Quando a conta é removida da sandbox, você se qualifica automaticamente para as cotasmáximas mostradas na tabela a seguir.

Recurso Cota padrão Qualificado para aumento

O número máximo demensagens de voz que podem

Se sua conta estiver na sandbox:20 mensagens

Não

415

Page 423: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorCotas de voz

Recurso Cota padrão Qualificado para aumentoser enviadas em um período de24 horas

Se sua conta estiver fora dasandbox: ilimitado

O número de mensagens de vozque podem ser enviadas a umúnico destinatário em um períodode 24 horas

5 mensagens Não

Número de mensagens de vozque podem ser enviadas porminuto

Se sua conta estiver na sandbox:5 chamadas por minuto

Se sua conta estiver fora dasandbox: 20 chamadas porminuto

Não

Número de mensagens de vozque podem ser enviadas a partirde um único número de telefonede origem por segundo

1 mensagem por segundo Não

Duração da mensagem de voz Se sua conta estiver na sandbox:30 segundos

Se sua conta estiver fora dasandbox: 5 minutos

Não

416

Page 424: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorSolicitar um aumento de cota

Recurso Cota padrão Qualificado para aumento

Capacidade de enviarmensagens de voz para númerosde telefone internacional

Se sua conta estiver na sandbox,você poderá enviar mensagenspara destinatários somente nosseguintes países:

• Austrália• Canadá• China• Alemanha• Hong Kong• Israel• Japão• México• Cingapura• Suécia• Estados Unidos• Reino Unido

Se sua conta não estiver nasandbox, você poderá enviarmensagens para destinatáriosem qualquer país.

Note

As chamadasinternacionais estãosujeitas a taxasadicionais, que variamde acordo com o país ouregião de destino.

Não

Número de caracteres em umamensagem de voz

3.000 caracteres faturáveis, empalavras que são faladas

Total de 6.000 caracteres,incluindo caracteres faturáveis etags SSML

Não

Número de conjuntos deconfiguração

10.000 conjuntos deconfigurações de voz por regiãoda AWS

Não

Solicitar um aumento de cotaSe o valor na coluna Eligible for Increase (Qualificada para aumento) em qualquer uma das tabelasanteriores for Yes (Sim), você poderá solicitar um aumento dessa cota.

Para solicitar um aumento da cota

1. Faça login no Console de gerenciamento da AWS em https://console.aws.amazon.com/.

417

Page 425: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorSolicitar um aumento de cota

2. Crie um novo caso do AWS Support em https://console.aws.amazon.com/support/home#/case/create.3. Na página Create case (Criar caso), escolha Service quota increase (Aumento da cota de serviço).4. Em Case classification (Classificação de caso), em Quota type (Tipo de cota), escolha uma das

seguintes opções:

• Para solicitar um aumento de cota relacionado ao canal de e-mail, escolha Pinpoint Email (E-mail doPinpoint).

• Para solicitar um aumento de cota relacionado ao canal SMS, escolha Pinpoint SMS (SMS doPinpoint).

• Para solicitar um aumento de cota relacionado ao canal de voz, escolha Pinpoint Voice (Voz doPinpoint).

• Para solicitar um aumento de cota relacionado a qualquer outro recurso do Amazon Pinpoint,escolha Pinpoint.

5. Dependendo da opção escolhida na etapa anterior, insira as informações solicitadas nos camposopcionais e obrigatórios para explicar seu caso de uso.

6. Em Requests (Solicitações), siga um destes procedimentos:

• Se sua solicitação estiver relacionada ao canal SMS, em Resource Type (Tipo de recurso), escolhaGeneral Quotas (Cotas gerais).

• Se sua solicitação estiver relacionada a outro canal ou a qualquer outro recurso do AmazonPinpoint, em Region (Região), escolha a região da AWS para a qual você deseja solicitar o aumentode cota. Para solicitar um aumento da mesma cota em uma região adicional, escolha Add anotherrequest (Adicionar outra solicitação) e escolha a região adicional.

7. Escolha a cota que deseja aumentar e insira o novo valor desejado para a cota.8. Em Case description (Descrição do caso), em Use case description (Descrição do caso de uso),

explique por que você está solicitando o aumento da cota.9. Em Contact options (Opções de contato), em Preferred contact language (Idioma de contato

preferido), escolha o idioma que você prefere usar ao se comunicar com a equipe de suporte da AWS.10. Em Contact method (Método de contato), selecione seu método preferido de comunicação com a

equipe de suporte da AWS.11. Selecione Enviar.

A equipe do AWS Support fornece uma resposta inicial para sua solicitação em 24 horas.

Para evitar que nossos sistemas sejam usados para enviar conteúdo indesejado ou malicioso,consideramos cuidadosamente cada solicitação. Se for possível, atenderemos à sua solicitação dentrodesse período de 24 horas. No entanto, se precisarmos obter informações adicionais sobre você, o tempode resolução poderá ser mais longo.

Se seu caso de uso não estiver alinhado com nossas políticas, talvez não seja possível atender à suasolicitação.

418

Page 426: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedor

Histórico de documentos paraAmazon Pinpoint

A tabela a seguir descreve alterações importantes em cada versão do Guia do desenvolvedor do AmazonPinpoint após dezembro de 2018. Para receber notificações sobre atualizações dessa documentação,você pode se inscrever em um feed RSS.

• Última atualização da documentação: 30 de abril de 2020

update-history-change update-history-description update-history-date

Disponibilidaderegional (p. 419)

Agora, o Amazon Pinpointestá disponível na região AWSGovCloud (US).

April 30, 2020

Canais personalizados (p. 419) Informações atualizadas sobrecomo criar canais personalizadosusando funções do Lambda ouwebhooks.

April 23, 2020

Machine learning (p. 419) Adição de informações sobrecomo recuperar recomendaçõespersonalizadas de modelos derecomendação e, opcionalmente,aprimorar essas recomendaçõesusando funções do AWSLambda.

March 4, 2020

Segurança (p. 419) Capítulo de segurançaadicionado, com informaçõessobre diversos controles desegurança e recursos do AmazonPinpoint.

February 4, 2020

Jornadas (p. 419) Adição de informações sobrecomo usar jornadas do AmazonPinpoint para desenvolver fluxosde trabalho automatizados queexecutam atividades de sistemade mensagens para projetos.Também foram adicionadasinformações sobre comoconsultar dados de análise paraum subconjunto de métricas quese aplicam a jornadas.

October 31, 2019

Análise (p. 419) Foram adicionadosprocedimentos que explicamcomo consultar dados analíticospara campanhas e mensagenstransacionais, além deinformações adicionadas sobre ouso dos resultados da consulta.

October 17, 2019

419

Page 427: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtualizações anteriores

Análise (p. 419) Adição de informações sobrecomo consultar dados deanálise para um subconjuntode métricas que se aplicam a e-mails transacionais e mensagensSMS.

September 6, 2019

Exemplos de código (p. 419) Adição de exemplos de códigoque podem ser usados paraenviar notificações por pushtransacionais usando todos osserviços compatíveis com oAmazon Pinpoint.

July 30, 2019

Análise (p. 419) Informações adicionadas sobrecomo consultar dados de análisepara um subconjunto de métricasque se aplicam a projetos(aplicativos) e campanhas.

July 24, 2019

Segmentos (p. 419) Foi adicionado um tutorial quedescreve uma solução paraimportar dados de clientes noAmazon Pinpoint de sistemasexternos, como o Salesforce ou oMarketo.

May 14, 2019

Disponibilidaderegional (p. 419)

Agora o Amazon Pinpoint estádisponível nas regiões da AWSÁsia Pacífico (Mumbai) e Ásia-Pacífico (Sydney).

April 25, 2019

Como usar o Postman com oAmazon Pinpoint (p. 419)

Foi adicionado um tutorial quedescreve como usar o Postmanpara interagir com a API doAmazon Pinpoint.

April 8, 2019

Registro de SMS (p. 419) Foram adicionados um capítuloTutorials (Tutoriais) e um tutorialque descreve como criar umasolução que lida com o registrodo usuário do SMS.

February 27, 2019

Atribuição de tags(tagging) (p. 419)

Adicionadas informações sobremarcação de recursos doAmazon Pinpoint.

February 27, 2019

Exemplos de código (p. 419) Foram adicionados exemplos decódigo em várias linguagens deprogramação que mostram comoenviar e-mail, SMS e mensagensde voz programaticamente.

February 6, 2019

Atualizações anterioresA tabela a seguir descreve alterações importantes em cada versão do Guia do desenvolvedor do AmazonPinpoint até dezembro de 2018.

420

Page 428: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtualizações anteriores

Alteração Descrição Data

Disponibilidade regional Agora o Amazon Pinpoint estádisponível nas regiões da AWSOeste dos EUA (Oregon) eEuropa (Frankfurt).

21 de dezembro de 2018

Canal de voz Você pode usar o novo canalde voz do Amazon Pinpointpara criar mensagens de voz efornecê-las para seus clientespor telefone. Atualmente, você sópode enviar mensagens de vozusando a API de SMS e voz doAmazon Pinpoint.

15 de novembro de 2018

Disponibilidade do Europa(Irlanda)

Agora o Amazon Pinpoint estádisponível na região da AWSEuropa (Irlanda).

25 de outubro de 2018

API de eventos Use a API do Amazon Pinpointpara registrar eventos (p. 136) eassociá-los aos endpoints.

7 de agosto de 2018

Códigos de exemplo para definire pesquisar endpoints

São adicionados códigosde exemplo que mostramcomo definir, atualizar, excluire pesquisar endpoints. Osexemplos são fornecidospara a AWS CLI, o AWS SDKfor Java e a API do AmazonPinpoint. Para obter maisinformações, consulte Definiçãodo público-alvo do AmazonPinpoint (p. 139) e Acessoaos dados do público-alvo noAmazon Pinpoint (p. 164).

7 de agosto de 2018

Permissões de exportação deendpoint

Configure uma política doIAM (p. 388) que permitaexportar endpoints do AmazonPinpoint para um bucket doAmazon S3.

1 de maio de 2018

Verificação de número detelefone para SMS

Use a API do Amazon Pinpointpara verificar um númerode telefone (p. 192) a fim dedeterminar se ele é um destinoválido para mensagens SMS.

23 de abril de 2018

Tópicos atualizados paraintegração do Amazon Pinpoint

Integre o AmazonPinpoint (p. 132) ao seuaplicativo Android, iOS ouJavaScript usando os SDKs oubibliotecas da AWS.

23 de março de 2018

Registro em log do AWSCloudTrail

Adição de informações sobreregistro de chamadas da

6 de fevereiro de 2018

421

Page 429: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtualizações anteriores

Alteração Descrição DataAPI Amazon Pinpoint com oCloudTrail (p. 317).

Cotas de serviço atualizadas Atualização de Cotas (p. 406)com informações adicionaissobre cotas de e-mail.

19 de janeiro de 2018

Beta público para extensões doAmazon Pinpoint

Use funções AWSLambda para segmentospersonalizados (p. 183) oucrie canais de mensagenspersonalizadas (p. 229).

28 de novembro de 2017

ID externo removido das políticasde confiança do IAM

A chave do ID externo éremovida do exemplo de políticade confiança (p. 387) e doexemplo de código Java (p. 180)para importar segmentos.

26 de outubro de 2017

Cotas de carga de notificação porpush

As cotas incluem tamanhos decarga para mensagens por pushpara dispositivos móveis (p. 414).

25 de outubro de 2017

Cotas de serviço atualizadas Informações sobre canal deSMS e e-mail adicionados aCotas (p. 406).

9 de outubro de 2017

Push para dispositivos móveis doADM e Baidu

Atualize o código de seuaplicativo para lidar comnotificações por push dos canaisde push para dispositivos móveisdo Baidu e ADM.

27 de setembro de 2017

IDs de usuário e eventos deautenticação com grupos deusuários do Amazon Cognito.

Se usar grupos de usuários doAmazon Cognito para gerenciaro acesso de usuários a seusaplicativos móveis, o AmazonCognito atribuirá IDs de usuárioaos endpoints e relatará eventosde autenticação para o AmazonPinpoint.

26 de setembro de 2017

IDs de usuário Atribua IDs de usuário aendpoints para monitorar ouso de aplicativo por usuáriosespecíficos. São fornecidosexemplos para AWS MobileSDKs (p. 134) e SDK paraJava (p. 145).

31 de agosto de 2017

Eventos de autenticação Relate eventos de autenticaçãopara saber com que frequênciaos usuários são autenticadoscom seu aplicativo. Sãofornecidos exemplos em Relatode eventos no aplicativo (p. 135).

31 de agosto de 2017

422

Page 430: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedorAtualizações anteriores

Alteração Descrição Data

Atualização de eventos deexemplo

Os eventos de exemplo (p. 236)incluem eventos que o AmazonPinpoint transmite paraatividades de e-mail e SMS.

08 de junho de 2017

Gerenciamento da sessão doAndroid

Gerencie as sessões dosaplicativos Android usando umaclasse informada pelo aplicativode amostra AWS Mobile Hub.

20 de abril de 2017

Amostras de eventos demonetização atualizadas

O código de exemplo estáatualizado para relatar eventosde monetização.

31 de março de 2017

Streams de eventos É possível configurar oAmazon Pinpoint para enviarseus eventos de aplicativo ecampanha para um fluxo doKinesis (p. 236).

24 de março de 2017

Permissões Consulte Como o AmazonPinpoint funciona com oIAM (p. 354) para obter maisinformações sobre comoconceder acesso ao AmazonPinpoint a usuários da AWS nasua conta e usuários do seuaplicativo móvel.

12 de janeiro de 2017

Disponibilidade geral do AmazonPinpoint

Essa versão apresenta AmazonPinpoint.

1 de dezembro de 2016

423

Page 431: Amazon Pinpoint - Guia do desenvolvedor · Amazon Pinpoint Guia do desenvolvedor Recursos do Amazon Pinpoint Em que consiste o Amazon Pinpoint? O Amazon Pinpoint é um serviço da

Amazon Pinpoint Guia do desenvolvedor

AWS GlossaryFor the latest AWS terminology, see the AWS Glossary in the AWS General Reference.

424