O blog da AWS
Análise de eventos do Amazon SES com o AWS Analytics Services
Por Oscar Mendoza é Arquiteto de Soluções,
Luis Eduardo Torres é Arquiteto de Soluções e
Santiago Benavídez es é Arquiteto de Soluções
Introdução
Nesta postagem, descreveremos o uso de serviços da AWS, como Amazon Kinesis Firehose, Amazon Athena e Amazon QuickSight, para monitorar eventos de envio de e-mail do Amazon SES com a granularidade e o nível de detalhes necessários para obter informações de seus clientes que interagem com os e-mails que recebem.
Hoje, as equipes de marketing que enviam e-mails dependem de aplicativos internos para criar suas campanhas ou quaisquer requisitos de comunicação, como boletins informativos ou conteúdo promocional. A partir dessas atividades, eles precisam reunir o máximo de informações possível para analisar e melhorar seu pipeline para uma melhor interação com o cliente. Dados como e-mails devolvidos, rejeitados, recebidos com sucesso, atrasos na entrega, reclamações ou taxa de abertura podem ser uma ferramenta poderosa para entender os clientes. Normalmente, os aplicativos funcionam com dados agregados ou de alto nível sem registro detalhado ou informações granulares que podem ajudar a melhorar ainda mais a eficácia de suas campanhas.
O Amazon Simple Email Service (SES) é uma ferramenta inteligente para empresas que desejam uma solução de serviço de e-mail econômica, flexível e escalável para se integrar facilmente a seus próprios produtos. O Amazon SES fornece métodos para monitorar sua atividade de envio com integração nativa com o Amazon CloudWatch Metrics e também fornece um mecanismo para coletar dados de eventos de envio de e-mail.
Nesta postagem, propomos uma arquitetura e um guia passo a passo para rastrear suas atividades de envio de e-mail em um nível granular, onde você pode configurar vários tipos de eventos de envio de e-mail, incluindo despachos, entregas, aberturas, cliques, devoluções, reclamações, rejeições e atrasos na entrega. Usaremos o recurso de conjuntos de configurações do Amazon SES para enviar logs detalhados aos nossos serviços de análise para armazenar, consultar e criar painéis para uma visualização detalhada.
Visão geral da solução
Essa arquitetura usa os recursos integrados do Amazon SES e dos serviços de análise da AWS para fornecer uma solução rápida e econômica para atender aos seus requisitos de rastreamento de e-mail. Os seguintes serviços serão implementados ou configurados:
- Amazon Simple Email Service (SES)
- Amazon Simple Storage Service (S3)
- Amazon Kinesis Firehose
- Amazon Athena
- Catálogo de dados AWS Glue
- Amazon QuickSight
O diagrama a seguir mostra a arquitetura da solução:
O fluxo de eventos começa quando um cliente usa o Amazon SES para enviar um e-mail. Cada um desses eventos de envio será capturado usando o recurso de conjunto de configurações e encaminhado para um stream de entrega do Kinesis Firehose para armazenar esses eventos em um bucket do Amazon S3.
Depois de armazenar os eventos, você precisará criar um esquema de tabela de banco de dados e armazená-lo no AWS Glue Data Catalog para que o Amazon Athena possa consultar corretamente esses eventos no S3. Por fim, usaremos o Amazon QuickSight para criar um painel interativo para localizar e visualizar todas as suas atividades de envio de e-mail em um nível detalhado.
Pré-requisitos
Para este passo a passo, você deve ter os seguintes pré-requisitos:
- Uma conta da AWS
- Domínio SES no modo de produção
- Permissões apropriadas de gerenciamento de identidade e acesso para configurar o Amazon S3, o Amazon Athena, o AWS Glue Data Catalog, o Amazon Kinesis Firehose e o Amazon Quicksight.
- Uma instância do Quicksight criada com um usuário Author
Passo a passo
Etapa 1: Usar o AWS CloudFormation para implementar alguns pré-requisitos adicionais
Você pode começar com nosso modelo de amostra do AWS CloudFormation, que inclui alguns pré-requisitos. Esse modelo cria um bucket do Amazon S3, uma função do IAM necessária para acessar o Amazon Kinesis Data Firehose a partir do Amazon SES.
Para baixar o modelo, use um dos seguintes comandos, dependendo do seu sistema operacional:
No Windows:
curl
https://raw.githubusercontent.com/aws-samples/amazon-ses-analytics-blog/main/SES-Blog-PreRequisites.yml
-o SES-Blog-PreRequisites.yml
No macOS:
wget https://raw.githubusercontent.com/aws-samples/amazon-ses-analytics-blog/main/SES-Blog-PreRequisites.yml
Para implantar o modelo, use o seguinte comando na AWS CLI:
aws cloudformation deploy --template-file
./SES-Blog-PreRequisites.yml --stack-name ses-dashboard-prerequisites
--capabilities CAPABILITY_NAMED_IAM
Depois que o modelo terminar de criar os recursos, você verá a função no serviço IAM e o fluxo de entrega do Kinesis Data Firehose na guia Outputs da pilha do CloudFormation. Você usará esses recursos nas próximas etapas.
Etapa 2: Crie um conjunto de configurações no SES e defina o conjunto de configurações padrão para uma identidade verificada
O SES pode rastrear o número de eventos de envio, entrega, abertura, clique, rejeição e reivindicação para cada e-mail enviado. Você pode usar a publicação de eventos para enviar informações sobre esses eventos para outro serviço da AWS. Nesse caso, estamos enviando os eventos para o Kinesis Firehose. Para isso, é necessário um conjunto de configurações.
Para criar um conjunto de configurações, siga estas etapas:
- No console da AWS, escolha Amazon Simple Email Service.
- Escolha Configuration Sets.
- Clique em Create set.
6. Depois que o conjunto de configurações for criado, selecione Event destinations (destino dos eventos)
7. Clique em Add destination (Adicionar destino)
8. Selecione os tipos de eventos que você deseja analisar e clique em Next (Próximo).
9. Selecione Amazon Kinesis Data Firehose como destino, escolha o fluxo de entrega e a função do IAM criada anteriormente, clique em Next (Próximo) e, na página de revisão, clique em Add destination (Adicionar destino).
10. Depois de criar o conjunto de configurações e adicionar o destino do evento, você poderá definir o conjunto de configurações padrão para a identidade verificada (domínio ou endereço de e-mail). No console do SES, escolha Verified Identities (Identidades verificadas).
11.Escolha a identidade verificada da qual você deseja coletar eventos e selecione Configuration set (Conjunto de configurações). Clique em Edit (Editar).
12. Clique na caixa “Assign a default configuration set” (“Atribuir um conjunto de configurações padrão”) e escolha o conjunto de configurações criado anteriormente.
13. Depois de concluir as etapas acima, seus eventos serão enviados para o Amazon S3. Devido à configuração do buffer no stream de entrega do Kinesis, os dados serão carregados a cada 5 minutos ou a cada 5 MiB para o Amazon S3. Você pode verificar a estrutura criada no bucket e visualizar os logs json com os dados do evento SES.
Etapa 3: Usando o Amazon Athena para visualizar logs de eventos do SES
O Amazon SES publica os logs de eventos de envio e-mails para o Amazon Kinesis Data Firehose no formato JSON. O objeto JSON de nível superior contém uma string eventType, um objeto mail e um objeto Bounce, Complaint, Delivery, Send, Reject, Open, Click, Rendering Failure ou DeliveryDelay, dependendo do tipo de evento.
- Para simplificar a análise de eventos de envio de e-mail, crie a tabela sesmaster executando o seguinte script no Amazon Athena. Não se esqueça de alterar o local no script a seguir com seu próprio bucket que contém os dados dos eventos de envio de e-mail.
4. Execute os seguintes scripts no Amazon Athena para nivelar a matriz bounce.bouncedrecipients no tipo de evento BOUNCE:
5. Execute os seguintes scripts no Amazon Athena para nivelar a matriz complaint.complainedrecipients no tipo de evento COMPLAINT
No final, temos uma tabela e quatro visualizações que podem ser usadas no Amazon QuickSight para analisar eventos de envio de e-mail:
- Tabela sesmaster
- Visualização vwSESMaster
- Visualização vwSentMails
- Visualização vwBouncedMails
- Visualização vwComplainedemails
Etapa 4: Analise e visualize dados com o Amazon QuickSight
Nesta publicação, usamos o Amazon QuickSight para analisar e visualizar eventos de envio de e-mail da tabela sesmaster e das quatro visualizações criadas anteriormente. O Amazon QuickSight pode acessar dados diretamente por meio do Athena. Seu preço por sessão permite que você coloque visualizações de análise nas mãos de todos em sua organização.
Primeiro, você precisa selecionar a tabela e as visualizações criadas anteriormente para criar novas fontes de dados no Athena e, em seguida, usar essas fontes de dados para preencher a visualização. Abaixo, descrevemos um exemplo de como visualizar os dados. Sinta-se à vontade para criar sua própria visualização com base em suas necessidades de informação.
Antes de poder usar seus dados no Amazon QuickSight, primeiro você deve conceder acesso ao bucket do S3 subjacente. Se você ainda não fez isso para outra análise, consulte nossa documentação sobre como fazer isso.
- Na página inicial do Amazon QuickSight, escolha Datasets (Conjuntos de dados) no menu do lado esquerdo e, em seguida, escolha New dataset (Novo conjunto de dados) no canto superior direito, defina e escolha Athena como fonte de dados. Na próxima caixa de diálogo, dê à fonte de dados um nome descritivo e escolha “Create data source” (“Criar fonte de dados”).
2. Na próxima caixa de diálogo, selecione o Catálogo (Catalog) e o Banco de Dados (Database) que contêm seu sesmaster e as visualizações selecionadas. Selecione a tabela sesmaster para criar alguns indicadores-chave de desempenho básicos. Selecione a tabela sesmaster e clique no botão Selecionar.
3. A tabela sesmaster agora é uma fonte de dados para o Amazon QuickSight e você poderá visualizar seus dados.
4. Você pode ver a lista de campos à esquerda. A tela à direita ainda está vazia. Antes de preenchê-la com dados, selecione Indicador-chave de desempenho nos tipos visuais disponíveis.
5. Para preencher o gráfico, arraste e solte os campos da lista de campos à esquerda para seus respectivos destinos. No nosso caso, colocamos o campo de send (envio) no campo de valor e usamos count como agregação.
6. Adicione outra visualização do lado superior esquerdo e selecione Indicador-chave de desempenho como o tipo visual.
7. Coloque o campo Delivery (Entrega) no campo de valor e use count como a agregação.
8. Repita o mesmo procedimento (etapas de 1 a 4) para contar o número de eventos de Abertura, Clique, Rejeição, Reclamação e Rejeição. No final, você deve ver algo semelhante à visualização a seguir. Depois de redimensionar e reorganizar os visuais, você deve obter uma análise como a mostrada na imagem abaixo.
9. Adicione outro conjunto de dados clicando no lápis à direita do conjunto de dados atual.
10. Na próxima caixa de diálogo, selecione Add dataset (Adicionar conjunto de dados).
11. Selecione a visualização chamada vwsesmaster e clique em Select (Selecionar).
Agora você pode ver todos os campos disponíveis na visualização vwsesmaster.
12. Crie uma nova visualização e selecione o tipo de visualização Tabela.
13. Arraste e solte os campos da lista de campos à esquerda para seus respectivos destinos. No nosso caso, colocamos os campos eventtype, mailmessageid e mailsubject em Group By (Agrupar), mas você pode adicionar quantos campos precisar.
14. Agora crie um filtro para essa visualização para filtrar por tipo de evento. Certifique-se de selecionar a tabela e, em seguida, clique em Filtrar no menu à esquerda.
15. Clique em Criar um e selecione o campo tipo de evento na janela pop-up. Agora selecione o filtro eventtype para ver as seguintes opções.
16. Clique nos pontos à direita do filtro de tipo de evento e selecione Add to sheet (Adicionar à planilha).
17. Deixe todos os padrões, role para baixo e selecione Apply (Aplicar)
18. Agora você pode filtrar a visualização vwsesmaster por tipo de evento.
19. Você pode continuar a personalizar sua visualização com todos os dados disponíveis na tabela sesmaster, na visualização vwsesmaster e até mesmo adicionar mais conjuntos de dados para incluir dados das visualizações vwSentMails, vwBouncedMails e vwComplainedMails. Abaixo, você pode ver algumas outras visualizações criadas a partir dessas visualizações.
Conclusão
Nesta postagem, mostramos como você pode usar serviços e recursos nativos da AWS para criar rapidamente uma solução de rastreamento de e-mail baseada em eventos do Amazon SES para uma visão mais detalhada de suas atividades de envio. Essa solução usa uma arquitetura serverless completa, na qual você não precisa gerenciar a infraestrutura subjacente e oferece a flexibilidade de usar a solução para uso baixo, médio ou intenso do Amazon SES.
Mostramos alguns exemplos de painéis de controle e análises que podem ser criados para a maioria dos requisitos do cliente, mas é claro que você pode evoluir essa solução e personalizá-la de acordo com suas necessidades, adicionando ou removendo gráficos, filtros ou eventos ao painel. Consulte a documentação a seguir para saber mais sobre os eventos disponíveis do Amazon SES, sua estrutura e também como criar análises e painéis no Amazon QuickSight:
- Conteúdo dos dados de eventos que o Amazon SES publica no Amazon SNS
- Início rápido: Crie uma análise de visualização única usando dados de amostra
Do ponto de vista de desempenho e custo-benefício, ainda existem várias configurações que podem ser feitas para melhorar a solução, por exemplo, usando um formato de arquivo colunar como parquet, compactar com snappy ou configurar sua estratégia de particionamento no S3 de acordo com o uso do envio de e-mail. Outra melhoria pode ser a importação de dados para o SPICE para ler dados no Amazon Quicksight. O uso do SPICE resulta no carregamento de dados do Athena apenas uma vez, até que sejam atualizados manualmente ou automaticamente usando um agendamento.
Você pode usar este passo a passo para configurar seu primeiro painel do SES e começar a visualizar os detalhes do evento. Você pode ajustar os serviços descritos neste blog de acordo com os requisitos da sua empresa.
Este artigo foi traduzido do Blog da AWS em Espanhol
Acerca de los autores
Oscar Mendoza é arquiteto de soluções da AWS em Bogotá, Colômbia. A Oscar trabalha com nossos clientes para fornecer orientação sobre as melhores práticas de arquitetura e para criar soluções na AWS seguindo as recomendações do Well-Architected Framework. Ele gosta de passar tempo com sua família e cachorro, e tocar música.
Luis Eduardo Torres é arquiteto de soluções da AWS em Bogotá, Colômbia. Ele ajuda as empresas a desenvolver seus negócios usando a plataforma de nuvem da AWS. Ele tem um grande interesse em análises e lidera o podcast de análise do AWS Podcast em espanhol.
Santiago Benavídez é arquiteto de soluções da AWS em Buenos Aires, Argentina, com mais de 13 anos de experiência em TI, ajudando atualmente os clientes DNB/ISV a atingir seus objetivos de negócios usando a amplitude e a profundidade dos serviços da AWS, projetando arquiteturas disponíveis, resilientes e econômicas.