Azure Communication Services: monitorare l’invio delle email

In un articolo precedente ho descritto come è possibile spedire delle email sfruttando Azure, tuttavia dopo aver effettuato qualche invio bulk di posta elettronica ed aver comparato i dati ottenuti con quelli forniti da piattaforme concorrenti è saltato subito all’occhio come gli Email Communication Services siano stati progettati più per l’invio di notifiche applicative tramite API che per la spedizione massiva di email di pubblicitarie.

Limiti imposti e come richiederne la rimozione

Come prima cosa è utile ricordare quali sono le limitazioni attualmente imposte dal servizio alla creazione della risorsa (a questo link è possibile verificare se dalla scrittura dell’articolo ci sono state modifiche):

  • 30 email al minuto e 100 email all’ora, da considerarsi su base subscription e non su base risorsa ECS;
  • Indirizzo email non personalizzabile (fissato a “DoNotReply@<dominio>”).

In modo simile ad altri servizi Azure, anche in questo caso è possibile incrementare la quota di servizio usufruibile aprendo un ticket sul portale, infatti chiedendo un incremento di questi limiti si ottiene automaticamente la possibilità di personalizzare l’indirizzo mittente e di attivare la funzionalità di “User engagement tracking” su base dominio mittente.

La richiesta è stata evasa in meno di una settimana lavorativa, tuttavia il supporto ha inviato una serie di domande a cui è stato necessario rispondere, ad esempio il tipo di email inviate (pubblicitarie e/o di notifica), quante email su base oraria e giornaliera è richiesto inviare, etc.

Strumenti di monitoraggio

Come detto nell’articolo precedente, seppur ci sia una divisione tra la risorsa Azure Communication Services e la Email Communication Services, esse sono strettamente collegate sia per il funzionamento che per il monitoraggio, infatti tutte le metriche e i log generati dalle mail, sono consultabili esclusivamente dalla risorsa ACS.

Metriche: questo strumento è il più indicato per avere una visione quantitativa dell’utilizzo del servizio, per quanto riguarda le email è possibile sapere quante volte vengono chiamate le API, quanti aggiornamenti allo stato della consegna delle email sono stati ricevuti e, se attivo, quante volte il servizio di user engagement tracking è stato richiamato dall’apertura della mail o dal click su un link. Ogni metrica è in grado di fornire dati numerici aggiuntivi in base al tipo di evento che è stato generato.

Immagine di un grafico delle metriche di ACS
Figura 1 – Grafico della metrica “Email Service API Request” con divisione dei valori sulla base dell’API chiamata

Insights

Dopo aver visto come monitorare a grandi linee l’utilizzo del servizio, andiamo ad approfondire la blade “Insights”, questa ci viene in aiuto per ottenere informazioni più dettagliati sull’efficacia delle comunicazioni inviate. Per quanto riguarda la sezione dedicata alle email bisogna sapere che i dati elaborati e riassunti devono essere preventivamente salvati, tramite le impostazioni di diagnostica, all’interno di un Log Analytics Workspace:

Immagine raffigurante la configurazione delle impostazioni di diagnostica dell'Azure Communication Service
Figura 2 – Come configurare le impostazioni di diagnostica per fruire degli Email Insights

Una volta attivate le impostazioni di diagnostica e inviate le mail, la tab Email della blade Insights inizierà a popolarsi con i dati. Nella sezione Email Overview è possibile sapere quante email sono state consegnate con successo, quante non hanno raggiunto la loro destinazione, ed in caso di attivazione del User Engagement Tracking, quante sono state aperte e quanti link sono stati cliccati.

Immagine raffigurante la sezione Overview della tab Email della blade Insight
Figura 3 – Sezione Email overview

Invece nella tab “Email performance” viene fornita una visione più di dettaglio delle mail che non sono state consegnate, andando a consultare la lista messa a disposizione è possibile anche sapere quali sono gli indirizzi a cui non è stato possibile recapitare il messaggio, tuttavia la query effettuata viene limitata a 500 risultati.

Immagine raffigurante la sezione Email performance della blade insights dell'Azure Communication Services
Figura 4 – Sezione Email performance

Come funziona lo user engagement tracking

Come anticipato la funzionalità di user engagement tracking ci da la possibilità di sapere se le mail che inviamo vengono aperte dagli utenti e se questi ultimi cliccano sui link contenuti. Ricordo che per attivare questa funzionalità è necessario un dominio non gestito da Azure e che deve essere accolta la richiesta di incremento limiti di invio. Se soddisfiamo questi requisiti all’interno della blade “Overview” della risorsa che rappresenta il dominio associato all’ECS ci verrà data la possibilità di attivare questi tracciamenti:

Immagine raffigurante l'opzione per attivare lo user engagement tracking
Figura 5 – dove attivare lo user engagement tracking

Apertura email: per notificarci che il destinatario ha aperto la nostra email, Azure aggiungerà alla fine della stessa un’immagine visibile solo andando ad analizzare il codice HTML che compone la mail, l’URL di questa immagine sarà univoco e generato dall’endpoint ACS che stiamo utilizzando, quando verrà fatta una richiesta HTTP a questo URL, Azure genererà l’evento di apertura email.

Click dei link: i link che andremo ad inserire all’interno della mail verranno automaticamente sostituiti da Azure con altri indirizzi, anch’essi univoci e generati dall’endpoint ACS. In questo caso quando l’utente ci cliccherà verrà inviata una richiesta HTTP verso l’URL, che oltre ad effettuare una ridirezione verso la pagina web da noi specificata, genererà un evento di click.

Note importanti: i sistemi descritti potrebbero essere soggetti a falsi negativi / positivi, bisogna infatti considerare che ormai la maggior parte dei client, tra cui Microsoft Outlook, bloccano le richieste HTTP esterne alla mail, ciò potrebbe impedire di ricevere gli eventi di apertura email. Contrarimente, per quanto riguarda i link, essi potrebbero essere aperti dai moderni anti-spam, per condurre un’analisi del contenuto, quindi potrebbe essere generato un evento di click, anche se l’utente effettivamente non ha navigato verso l’URL da noi inserito.

Visualizzazione dettagliata dei dati

Purtroppo al momento non è ancora disponibile una dashboard predisposta per l’analisi dei dati raccolti da questa funzionalità, tuttavia dalla tabella “ACSEmailUserEngagementOperational” sono estraibili, tramite KQL, tutti gli eventi di apertura e click:

Immagine raffigurante i dati contentuti nella riga relativa ad un evento di apertura email
Figura 6 – Dati contenuti nella riga relativa all’apertura di una email
Immagine raffigurante i dati contentuti nella riga relativa ad un evento di click di un link
Figura 7 – Dati contenuti nella riga relativa al click di un link nell’email

Conclusioni

Gli strumenti di monitoraggio degli Azure Communication Services risultano, alla fine dei conti, abbastanza completi. I dati raccolti possono soddisfare le esigenze di chi invia piccole campagne di marketing ed ha il tempo e le capacità per scrivere le query KQL necessarie per riassumere e creare qualche dashboard personalizzata ottimizzando la consultazione e i feedback raccolti.

Riferimenti

Documentazione alle metriche degli Email Communication Services

Documentazione ai logs degli Email Communication Services

Documentazione agli Email Insights