Usare il sondaggio di fine chiamata per raccogliere commenti e feedback degli utenti
Questa esercitazione illustra come usare il sondaggio di fine chiamata di Servizi di comunicazione di Azure.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Una risorsa attiva di Servizi di comunicazione. Creare una risorsa di Servizi di comunicazione. I risultati del sondaggio sono associati a singole risorse di Servizi di comunicazione.
- Un'area di lavoro Log Analytics attiva, nota anche come log di Monitoraggio di Azure. Vedere Log del sondaggio di fine chiamata.
- Per eseguire un sondaggio con domande personalizzate e testo in formato libero, è necessaria una risorsa Dati analitici app.
Importante
Sondaggio di fine chiamata è disponibile a partire dalla versione 1.13.1 di Calling SDK. Quando si provano le istruzioni, accertare di usare tale versione o una successiva.
- Node.js sono consigliate le versioni Long Term Support (LTS) attive.
Campione di utilizzo dell'API
La funzionalità Sondaggio di fine chiamata deve essere usata al termine della chiamata. Gli utenti possono valutare qualsiasi tipo di chiamata VoIP: 1:1, gruppo, riunione, uscita e in ingresso. Al termine della chiamata di un utente, l'applicazione può mostrare un'interfaccia utente all'utente finale, consentendo di scegliere un punteggio di classificazione e, se necessario, selezionare dall’elenco predefinito i problemi riscontrati durante la chiamata.
I frammenti di codice seguenti mostrano un esempio di chiamata uno-a-uno. Al termine della chiamata, l'applicazione può mostrare un'interfaccia utente del sondaggio e, una volta che l'utente sceglie una valutazione, l'applicazione deve chiamare l'API della funzionalità per inviare il sondaggio con le scelte dell'utente.
Sebbene sia consigliabile usare la scala di valutazione predefinita, è comunque possibile inviare un sondaggio con una scala di valutazione personalizzata. Per l’utilizzo dell’API campione, è possibile consultare l’applicazione di esempio.
Solo valutazione chiamata: nessuna scala personalizzata
call.feature(Features.CallSurvey).submitSurvey({
overallRating: { score: 5 }, // issues are optional
}).then(() => console.log('survey submitted successfully'));
OverallRating è una categoria obbligatoria per tutti i sondaggi.
Solo valutazione chiamata - con scala e problemi personalizzati
call.feature(Features.CallSurvey).submitSurvey({
overallRating: {
score: 1, // my score
scale: { // my custom scale
lowerBound: 0,
upperBound: 1,
lowScoreThreshold: 0
},
issues: ['HadToRejoin'] // my issues, check the table below for all available issues
}
}).then(() => console.log('survey submitted successfully'));
Valutazione complessiva, audio e video con un problema campione
call.feature(Features.CallSurvey).submitSurvey({
overallRating: { score: 3 },
audioRating: { score: 4 },
videoRating: { score: 3, issues: ['Freezes'] }
}).then(() => console.log('survey submitted successfully'))
Gestire gli errori che l'SDK può inviare
call.feature(Features.CallSurvey).submitSurvey({
overallRating: { score: 3 }
}).catch((e) => console.log('error when submitting survey: ' + e))
Trovare diversi tipi di errori
Errori durante l'invio del sondaggio
Se la convalida dei dati ha esito negativo o non è possibile inviare il sondaggio, l'API restituisce i messaggi di errore seguenti.
È necessaria almeno una valutazione del sondaggio.
Nella scala predefinita X deve essere da 1 a 5. - dove X è uno dei seguenti:
- overallRating.score
- audioRating.score
- videoRating.score
- ScreenshareRating.score
{propertyName}: {rating.score} deve essere compreso tra {rating.scale?.lowerBound} e {rating.scale?.upperBound}.
{propertyName}: {rating.scale?. lowScoreThreshold} deve essere compreso tra {rating.scale?.lowerBound} e {rating.scale?.upperBound}.
{propertyName} lowerBound: {rating.scale?.lowerBound} e upperBound: {rating.scale?.upperBound} deve essere compreso tra 0 e 100.
Riprovare [ACS non è riuscito a inviare un sondaggio, a causa di un errore di rete o di altro tipo].
Verranno restituiti tutti i codici di errore con un messaggio.
- Codice di errore 400 (richiesta non valida) per tutti i messaggi di errore tranne uno.
{ message: validationErrorMessage, code: 400 }
- 408 (timeout) quando l'evento viene rimosso:
{ message: "Please try again.", code: 408 }
Tutti i valori possibili
Configurazione predefinita dell'API del sondaggio
Categorie di classificazione API | Valore cutoff* | Intervallo di input | Commenti |
---|---|---|---|
Chiamata complessiva | 2 | 1 -5 | Esegue un sondaggio sull'esperienza della qualità complessiva di un partecipante chiamante su una scala di 1-5. Una risposta di 1 indica un'esperienza di chiamata imperfetta e 5 indica una chiamata perfetta. Il valore di cutoff 2 indica che una risposta del cliente pari a 1 o 2 indica un'esperienza di chiamata minore di quella perfetta. |
Audio | 2 | 1 -5 | Una risposta di 1 indica un'esperienza audio imperfetta e 5 indica che non sono stati riscontrati problemi audio. |
Video | 2 | 1 -5 | Una risposta di 1 indica un'esperienza video imperfetta e 5 indica che non sono stati riscontrati problemi video. |
Condivisione schermo | 2 | 1 -5 | Una risposta di 1 indica un'esperienza di condivisione schermo imperfetta e 5 indica che non sono stati riscontrati problemi di condivisione schermo. |
Nota
Il valore di cutoff indicato da una domanda nell'API è la soglia usata da Microsoft per l'analisi dei dati del sondaggio. Quando si personalizza il valore cutoff o l’intervallo di input, Microsoft analizza i dati del sondaggio in base alla personalizzazione.
Altri tag del sondaggio
Categorie di valutazione | Tag facoltativi |
---|---|
Chiamata complessiva | CallCannotJoin CallCannotInvite HadToRejoin CallEndedUnexpectedly OtherIssues |
Audio | NoLocalAudio NoRemoteAudio Echo AudioNoise LowVolume AudioStoppedUnexpectedly DistortedSpeech AudioInterruption OtherIssues |
Video | NoVideoReceived NoVideoSent LowQuality Freezes StoppedUnexpectedly DarkVideoReceived AudioVideoOutOfSync OtherIssues |
Condivisione schermo | NoContentLocal NoContentRemote CannotPresent LowQuality Freezes StoppedUnexpectedly LargeDelay OtherIssues |
Opzioni di personalizzazione
È possibile scegliere di raccogliere ognuno dei quattro valori dell'API o solo quelli più importanti. Ad esempio, è possibile scegliere di chiedere ai clienti di valutare solo l'esperienza di chiamata complessiva anziché chiedere loro informazioni sull'esperienza audio, video e condivisione dello schermo. Inoltre è possibile personalizzare gli intervalli di input in base alle proprie esigenze. L'intervallo di input predefinito è da 1 a 5 per Chiamata complessiva, Audio, Video e Condivisione schermo. Tuttavia, ciascun valore API può essere personalizzato da un minimo di 0 a un massimo di 100.
Esempi di personalizzazione
Categorie di classificazione API | Valore cutoff* | Intervallo di input |
---|---|---|
Chiamata complessiva | 0 - 100 | 0 - 100 |
Audio | 0 - 100 | 0 - 100 |
Video | 0 - 100 | 0 - 100 |
Condivisione schermo | 0 - 100 | 0 - 100 |
Nota
Il valore di cutoff indicato da una domanda nell'API è la soglia usata da Microsoft per l'analisi dei dati del sondaggio. Quando si personalizza il valore cutoff o l’intervallo di input, Microsoft analizza i dati del sondaggio in base alla personalizzazione.
Domande personalizzate
Oltre a usare l'API Sondaggio di fine chiamata, è possibile creare domande di sondaggio personalizzate e incorporarle con i risultati del sondaggio di fine chiamata. Di seguito sono riportati i passaggi per incorporare in un sondaggio le proprie domande clienti, ed eseguire query sui risultati dell'API Sondaggio di fine chiamata e sulle proprie domande di sondaggio.
Incorporare AppInsights di Azure nell'applicazione Fare clic qui per altre informazioni sull'inizializzazione di Dati analitici app usando JavaScript normale. In alternativa, è possibile usare Monitoraggio prestazioni rete (NPM) per ottenere le dipendenze di App Insights. Fare clic qui per altre informazioni sull'inizializzazione di Dati analitici app con Monitoraggio prestazioni rete (NPM).
Creare un'interfaccia utente nell'applicazione che fornisce domande personalizzate all'utente e acquisirà l’input, presupponendo che l'applicazione abbia raccolto le risposte come stringa nella variabile
improvementSuggestion
Inviare i risultati del sondaggio ad ACS e inviare la risposta dell’utente usando Insights app:
currentCall.feature(SDK.Features.CallSurvey).submitSurvey(survey).then(res => { // `improvementSuggesstion` contains custom, user response if (improvementSuggestion !== '') { appInsights.trackEvent({ name: "CallSurvey", properties: { // Survey ID to correlate the survey id: res.id, // Other custom properties as key value pair improvementSuggestion: improvementSuggestion } }); } }); appInsights.flush();
Le risposte degli utenti inviate con AppInsights sono disponibili nell'area di lavoro di Insights app. Per eseguire query tra più risorse, correlare le valutazioni delle chiamate e i dati del sondaggio personalizzato è possibile usare Cartelle di lavoro. Passaggi per correlare le valutazioni delle chiamate e i dati del sondaggio personalizzato:
- Creare nuove cartelle di lavoro (risorsa ACS -> Monitoraggio -> Cartelle di lavoro -> Nuovo) ed eseguire query sui dati del sondaggio sulle chiamate dalla risorsa ACS.
- Aggiungere una nuova query (+Aggiungi -> Aggiungi query)
- Accertare che
Data source
siaLogs
eResource type
siaCommunication
- È possibile rinominare la query (Impostazioni avanzate -> Nome passaggio [esempio: sondaggio chiamata])
- Tenere presente che prima che i dati del sondaggio diventino visibili nel portale di Azure potrebbe essere necessario un massimo di 2 ore. Eseguire una query sui dati di valutazione delle chiamate:
ACSCallSurvey | where TimeGenerated > now(-24h)
- Aggiungere un'altra query per ottenere dati da Dati analitici app (+Aggiungi -> Aggiungi query)
- Accertare che
Data source
siaLogs
eResource type
siaApplication Insights
- Eseguire una query sugli eventi personalizzati:
customEvents | where timestamp > now(-24h) | where name == 'CallSurvey' | extend d=parse_json(customDimensions) | project SurveyId = d.id, ImprovementSuggestion = d.improvementSuggestion
- È possibile rinominare la query (Impostazioni avanzate -> Nome passaggio [esempio: sondaggio chiamata personalizzata])
- Unire infine queste due query per surveyId. Creare una nuova query (+Aggiungi -> Aggiungi query).
- Accertarsi che
Data source
sia Merge e selezionareMerge type
, se necessario
titolo: Sondaggio di fine chiamata di Servizi di comunicazione di Azure sottotitolo: Servizi di comunicazione di Azure descrizione dell'esercitazione: Informazioni su come usare il sondaggio di fine chiamata per raccogliere i feedback degli utenti. author: viniciusl-msft ms.author: viniciusl manager: gaobob services: azure-communication-services ms.date: 7/30/2024 ms.topic: tutorial ms.service: azure-communication-services ms.subservice: calling
Importante
Il sondaggio di fine chiamata è disponibile a partire dalla versione 2.10.0 dell’SDK di chiamata Android. Quando si provano le istruzioni, accertare di usare tale versione o una successiva.
Campione di utilizzo dell'API
La funzionalità Sondaggio di fine chiamata deve essere usata al termine della chiamata. Gli utenti possono valutare qualsiasi tipo di chiamata VoIP: 1:1, gruppo, riunione, uscita e in ingresso. Al termine della chiamata di un utente, l'applicazione può mostrare un'interfaccia utente all'utente finale, consentendo di scegliere un punteggio di classificazione e, se necessario, selezionare dall’elenco predefinito i problemi riscontrati durante la chiamata.
I frammenti di codice seguenti mostrano un esempio di chiamata uno-a-uno. Al termine della chiamata, l'applicazione può mostrare un'interfaccia utente del sondaggio e, una volta che l'utente sceglie una valutazione, l'applicazione deve chiamare l'API della funzionalità per inviare il sondaggio con le scelte dell'utente.
È consigliabile usare la scala di classificazione predefinita, ovvero la classificazione a cinque stelle (da 1 a 5). è comunque possibile inviare un sondaggio con una scala di valutazione personalizzata.
Avviare un sondaggio
Avviando un sondaggio si crea un oggetto CallSurvey
. Esso registra la finalità del sondaggio. Se questo particolare oggetto CallSurvey
non viene inviato in seguito, significa che il sondaggio è stato ignorato o saltato dal cliente finale.
SurveyCallFeature surveyCallFeature = call.feature(Features.SURVEY);
try {
CallSurvey survey = surveyCallFeature.startSurvey().get();
} catch (InterruptedException | ExecutionException e) {
// failure to start survey
}
Utilizzo generale
Quando la classificazione chiama, è necessario rispettare i valori definiti nel campo della scala. Il valore lowerBound indica la peggiore esperienza possibile, mentre il valore upperBound indica l'esperienza perfetta. Entrambi i valori sono inclusi nell'intervallo.
OverallRating è una categoria obbligatoria per tutti i sondaggi.
Nota
Il valore di cutoff indicato da una domanda nell'API è la soglia usata da Microsoft per l'analisi dei dati del sondaggio. Quando si personalizza il valore cutoff o l’intervallo di input, Microsoft analizza i dati del sondaggio in base alla personalizzazione.
Per altre informazioni sull'uso consigliato dei sondaggi, vedere Concetti relativi ai sondaggi
Solo valutazione chiamata: nessuna scala personalizzata
SurveyScore overall = new SurveyScore();
overall.setScore(5);
callSurvey.setOverallScore(overall);
Solo valutazione chiamata - con scala e problemi personalizzati
// configuring scale
CallSurveyRatingScale ratingScale = new CallSurveyRatingScale();
ratingScale.setLowerBound(0);
ratingScale.setLowerBound(1);
ratingScale.setLowScoreThreshold(0);
SurveyScore overall = new SurveyScore();
overall.setScale(ratingScale);
// setting score according to scale
overall.setScore(1);
callSurvey.setOverallScore(overall);
// reporting one or more issues
callSurvey.setCallIssues(CallIssues.HAD_TO_REJOIN);
Valutazione complessiva, audio e video con un problema campione
SurveyScore overall = new SurveyScore();
overall.setScore(3);
SurveyScore audio = new SurveyScore();
audio.setScore(4);
SurveyScore video = new SurveyScore();
video.setScore(3);
callSurvey.setOverallScore(overall);
callSurvey.setAudioScore(audio);
callSurvey.setVideoScore(video);
callSurvey.setVideoIssues(VideoIssues.FREEZES);
Inviare un sondaggio e gestire gli errori che l'SDK può inviare
try {
CallSurveyResult survey = surveyCallFeature.submitSurvey(survey).get();
} catch (InterruptedException e) {
// Threading error
} catch (ExecutionException e) {
Log.e("SURVEY", e.getCause().getMessage());
}
Trovare diversi tipi di errori
Errori durante l'invio del sondaggio:
L'API submitSurvey può restituire un errore negli scenari seguenti:
È necessaria una valutazione complessiva del sondaggio.
I limiti
CallSurveyRatingScale
devono essere compresi tra 0 e 100. LowerBound deve essere minore di UpperBound. LowScoreThreshold deve trovarsi entro i limiti.Qualsiasi punteggio deve rispettare i limiti definiti dall'oggetto
CallSurveyRatingScale
. Tutti i valori nell'oggettoCallSurveyRatingScale
sono inclusivi. Usando la scala predefinita, il valore del punteggio deve essere compreso tra 1 e 5.Non è possibile inviare un sondaggio a causa di un errore di rete/servizio.
Tag del sondaggio disponibili
Chiamata complessiva
Tag | Descrizione |
---|---|
CannotJoin |
Il cliente non è riuscito a partecipare a una chiamata |
CannotInvite |
Il cliente non è riuscito ad aggiungere un nuovo partecipante alla chiamata |
HadToRejoin |
Il cliente ha lasciato la chiamata per poi riconnettersi come soluzione alternativa a un problema |
CallEndedUnexpectedly |
La chiamata del cliente è terminata senza alcun motivo apparente |
OtherIssues |
Qualsiasi problema che non rientra nelle descrizioni precedenti |
Problemi audio
Tag | Descrizione |
---|---|
NoLocalAudio |
Assenza di audio chiamata sul computer del cliente, incapacità di sentire i partecipanti alla chiamata |
NoRemoteAudio |
Assenza dell’audio di un partecipante specifico |
Echo |
Eco percepita nella chiamata |
AudioNoise |
Audio ricevuto con rumore imprevisto |
LowVolume |
Audio troppo basso |
AudioStoppedUnexpectedly |
Audio arrestato senza motivo chiaro (ad esempio, nessuno ha l’audio disattivato) |
DistortedSpeech |
La voce di un partecipante è distorta, diversa dalla voce prevista |
AudioInterruption |
I clienti sperimentano interruzioni audio, voci tagliate e così via. |
OtherIssues |
Qualsiasi problema che non rientra nelle descrizioni precedenti |
Problemi video
Tag | Descrizione |
---|---|
NoVideoReceived |
Il cliente non riceve video da parte di un partecipante |
NoVideoSent |
Il cliente avvia il video, ma nessuno nella chiamata è in grado di vederlo |
LowQuality |
Video di bassa qualità |
Freezes |
Blocchi video |
StoppedUnexpectedly |
La condivisione dello schermo si arresta senza un motivo chiaro (ad esempio la fotocamera è attivata e le videochiamate sono attivate) |
DarkVideoReceived |
Il video viene inviato, ma il partecipante vede solo una casella scura (o di un altro colore) |
AudioVideoOutOfSync |
Video e audio non sembrano essere sincronizzati |
OtherIssues |
Qualsiasi problema che non rientra nelle descrizioni precedenti |
Problemi di condivisione dello schermo
Tag | Descrizione |
---|---|
NoContentLocal |
Il cliente non riceve la condivisione dello schermo di un partecipante che lo condivide |
NoContentRemote |
Il cliente sta condividendo lo schermo, ma uno o più partecipanti non riescono a vederlo |
CannotPresent |
Impossibile avviare la condivisione dello schermo |
LowQuality |
Bassa qualità nel video di condivisione dello schermo, ad esempio non è possibile leggere |
Freezes |
La condivisione dello schermo si blocca durante la presentazione |
StoppedUnexpectedly |
La condivisione dello schermo si arresta senza un chiaro (ad esempio, la condivisione dello schermo non è stata arrestata dal cliente) |
LargeDelay |
Ritardo percepito tra ciò che viene mostrato e ciò che viene visto |
OtherIssues |
Qualsiasi problema che non rientra nelle descrizioni precedenti |
Opzioni di personalizzazione
È possibile scegliere di raccogliere ognuno dei quattro valori dell'API o solo quelli più importanti. Ad esempio, è possibile scegliere di chiedere ai clienti di valutare solo l'esperienza di chiamata complessiva anziché chiedere loro informazioni sull'esperienza audio, video e condivisione dello schermo. Inoltre è possibile personalizzare gli intervalli di input in base alle proprie esigenze. L'intervallo di input predefinito è da 1 a 5 per Chiamata complessiva, Audio, Video e Condivisione schermo. Tuttavia, ciascun valore API può essere personalizzato da un minimo di 0 a un massimo di 100.
Nota
Il valore di cutoff indicato da una domanda nell'API è la soglia usata da Microsoft per l'analisi dei dati del sondaggio. Quando si personalizza il valore cutoff o l’intervallo di input, Microsoft analizza i dati del sondaggio in base alla personalizzazione.
Domande personalizzate
Oltre a usare l'API Sondaggio di fine chiamata, è possibile creare domande di sondaggio personalizzate e incorporarle con i risultati del sondaggio di fine chiamata.
Il payload del risultato dell'operazione SubmitSurvey
fornisce dati che è possibile usare per correlare i dati del sondaggio ACS con i dati e l'archiviazione personalizzati. La classe CallSurveyResult
ha il campo SurveyId
che denota un identificatore univoco per il sondaggio e CallId
denota un identificatore per la chiamata in cui è stato generato il sondaggio. Salvare questi identificatori insieme ai dati personalizzati consente di associare i dati in modo univoco.
Importante
Il sondaggio di fine chiamata è disponibile a partire dalla versione 2.10.0 dell’SDK di chiamata iOS. Quando si provano le istruzioni, accertare di usare tale versione o una successiva.
Campione di utilizzo dell'API
La funzionalità Sondaggio di fine chiamata deve essere usata al termine della chiamata. Gli utenti possono valutare qualsiasi tipo di chiamata VoIP: 1:1, gruppo, riunione, uscita e in ingresso. Al termine della chiamata di un utente, l'applicazione può mostrare un'interfaccia utente all'utente finale, consentendo di scegliere un punteggio di classificazione e, se necessario, selezionare dall’elenco predefinito i problemi riscontrati durante la chiamata.
I frammenti di codice seguenti mostrano un esempio di chiamata uno-a-uno. Al termine della chiamata, l'applicazione può mostrare un'interfaccia utente del sondaggio e, una volta che l'utente sceglie una valutazione, l'applicazione deve chiamare l'API della funzionalità per inviare il sondaggio con le scelte dell'utente.
È consigliabile usare la scala di classificazione predefinita, ovvero la classificazione a cinque stelle (da 1 a 5). è comunque possibile inviare un sondaggio con una scala di valutazione personalizzata.
Avviare un sondaggio
Avviando un sondaggio si crea un oggetto CallSurvey
. Esso registra la finalità del sondaggio. Se questo particolare oggetto CallSurvey
non viene inviato in seguito, significa che il sondaggio è stato ignorato o saltato dal cliente finale.
var surveyCallFeature = self.call.feature(Features.survey)
do {
try self.callSurvey = await surveyFeature.startSurvey()
} catch {
print("Failure to start survey")
}
Utilizzo generale
Quando la classificazione chiama, è necessario rispettare i valori definiti nel campo della scala. Il valore lowerBound indica la peggiore esperienza possibile, mentre il valore upperBound indica l'esperienza perfetta. Entrambi i valori sono inclusi nell'intervallo.
OverallRating è una categoria obbligatoria per tutti i sondaggi.
Per altre informazioni sull'uso consigliato dei sondaggi, vedere Concetti relativi ai sondaggi
Nota
Il valore di cutoff indicato da una domanda nell'API è la soglia usata da Microsoft per l'analisi dei dati del sondaggio. Quando si personalizza il valore cutoff o l’intervallo di input, Microsoft analizza i dati del sondaggio in base alla personalizzazione.
Solo valutazione chiamata: nessuna scala personalizzata
let overallScore = SurveyScore()
overallScore.score = Int32(5)
callSurvey.overallScore = overallScore
Solo valutazione chiamata - con scala e problemi personalizzati
// configuring scale
var ratingScale = new CallSurveyRatingScale()
ratingScale.lowerBound = 0;
ratingScale.upperBound = 1;
ratingScale.lowScoreThreshold = 0;
SurveyScore overall = new SurveyScore();
overall.scale = ratingScale;
// setting score according to scale
overall.score = 1;
callSurvey.overallScore = overall;
// reporting one or more issues
callSurvey.callIssues = [ CallIssues.hadToRejoin ];
Valutazione complessiva, audio e video con un problema campione
let overall = SurveyScore();
overall.score = 3;
let audio = SurveyScore();
audio.score = 4;
let video = SurveyScore();
video.score = 3;
callSurvey.overallScore = overall;
callSurvey.audioScore = audio;
callSurvey.videoScore = video;
callSurvey.videoIssues = [ VideoIssues.freezes ];
Inviare un sondaggio e gestire gli errori che l'SDK può inviare
do {
var result = try await self.surveyFeature!.submit(survey: callSurvey)
} catch let error as NSError {
print("==> Survey Not Submitted " + error.localizedDescription)
}
Trovare diversi tipi di errori
Errori durante l'invio del sondaggio:
L'API submitSurvey può restituire un errore negli scenari seguenti:
È necessaria una valutazione complessiva del sondaggio.
I limiti
CallSurveyRatingScale
devono essere compresi tra 0 e 100. LowerBound deve essere minore di UpperBound. LowScoreThreshold deve trovarsi entro i limiti.Qualsiasi punteggio deve rispettare i limiti definiti dall'oggetto
CallSurveyRatingScale
. Tutti i valori nell'oggettoCallSurveyRatingScale
sono inclusivi. Usando la scala predefinita, il valore del punteggio deve essere compreso tra 1 e 5.Non è possibile inviare un sondaggio a causa di un errore di rete/servizio.
Tag del sondaggio disponibili
Chiamata complessiva
Tag | Descrizione |
---|---|
CannotJoin |
Il cliente non è riuscito a partecipare a una chiamata |
CannotInvite |
Il cliente non è riuscito ad aggiungere un nuovo partecipante alla chiamata |
HadToRejoin |
Il cliente ha lasciato la chiamata per poi riconnettersi come soluzione alternativa a un problema |
CallEndedUnexpectedly |
La chiamata del cliente è terminata senza alcun motivo apparente |
OtherIssues |
Qualsiasi problema che non rientra nelle descrizioni precedenti |
Problemi audio
Tag | Descrizione |
---|---|
NoLocalAudio |
Assenza di audio chiamata sul computer del cliente, incapacità di sentire i partecipanti alla chiamata |
NoRemoteAudio |
Assenza dell’audio di un partecipante specifico |
Echo |
Eco percepita nella chiamata |
AudioNoise |
Audio ricevuto con rumore imprevisto |
LowVolume |
Audio troppo basso |
AudioStoppedUnexpectedly |
Audio arrestato senza motivo chiaro (ad esempio, nessuno ha l’audio disattivato) |
DistortedSpeech |
La voce di un partecipante è distorta, diversa dalla voce prevista |
AudioInterruption |
I clienti sperimentano interruzioni audio, voci tagliate e così via. |
OtherIssues |
Qualsiasi problema che non rientra nelle descrizioni precedenti |
Problemi video
Tag | Descrizione |
---|---|
NoVideoReceived |
Il cliente non riceve video da parte di un partecipante |
NoVideoSent |
Il cliente avvia il video, ma nessuno nella chiamata è in grado di vederlo |
LowQuality |
Video di bassa qualità |
Freezes |
Blocchi video |
StoppedUnexpectedly |
La condivisione dello schermo si arresta senza un motivo chiaro (ad esempio la fotocamera è attivata e le videochiamate sono attivate) |
DarkVideoReceived |
Il video viene inviato, ma il partecipante vede solo una casella scura (o di un altro colore) |
AudioVideoOutOfSync |
Video e audio non sembrano essere sincronizzati |
OtherIssues |
Qualsiasi problema che non rientra nelle descrizioni precedenti |
Problemi di condivisione dello schermo
Tag | Descrizione |
---|---|
NoContentLocal |
Il cliente non riceve la condivisione dello schermo di un partecipante che lo condivide |
NoContentRemote |
Il cliente sta condividendo lo schermo, ma uno o più partecipanti non riescono a vederlo |
CannotPresent |
Impossibile avviare la condivisione dello schermo |
LowQuality |
Bassa qualità nel video di condivisione dello schermo, ad esempio non è possibile leggere |
Freezes |
La condivisione dello schermo si blocca durante la presentazione |
StoppedUnexpectedly |
La condivisione dello schermo si arresta senza un chiaro (ad esempio, la condivisione dello schermo non è stata arrestata dal cliente) |
LargeDelay |
Ritardo percepito tra ciò che viene mostrato e ciò che viene visto |
OtherIssues |
Qualsiasi problema che non rientra nelle descrizioni precedenti |
Opzioni di personalizzazione
È possibile scegliere di raccogliere ognuno dei quattro valori dell'API o solo quelli più importanti. Ad esempio, è possibile scegliere di chiedere ai clienti di valutare solo l'esperienza di chiamata complessiva anziché chiedere loro informazioni sull'esperienza audio, video e condivisione dello schermo. Inoltre è possibile personalizzare gli intervalli di input in base alle proprie esigenze. L'intervallo di input predefinito è da 1 a 5 per Chiamata complessiva, Audio, Video e Condivisione schermo. Tuttavia, ciascun valore API può essere personalizzato da un minimo di 0 a un massimo di 100.
Nota
Il valore di cutoff indicato da una domanda nell'API è la soglia usata da Microsoft per l'analisi dei dati del sondaggio. Quando si personalizza il valore cutoff o l’intervallo di input, Microsoft analizza i dati del sondaggio in base alla personalizzazione.
Domande personalizzate
Oltre a usare l'API Sondaggio di fine chiamata, è possibile creare domande di sondaggio personalizzate e incorporarle con i risultati del sondaggio di fine chiamata.
Tuttavia, il payload del risultato dell'operazione SubmitSurvey
fornisce dati che è possibile usare per correlare i dati del sondaggio ACS con i dati e l'archiviazione personalizzati. La classe CallSurveyResult
ha il campo SurveyId
che denota un identificatore univoco per il sondaggio e CallId
denota un identificatore per la chiamata in cui è stato generato il sondaggio. Salvare questi identificatori insieme ai dati personalizzati consente di associare i dati in modo univoco.
Importante
Il sondaggio di fine chiamata è disponibile a partire dalla versione 1.8.0 dell’SDK di chiamata Windows. Quando si provano le istruzioni, accertare di usare tale versione o una successiva.
Campione di utilizzo dell'API
La funzionalità Sondaggio di fine chiamata deve essere usata al termine della chiamata. Gli utenti possono valutare qualsiasi tipo di chiamata VoIP: 1:1, gruppo, riunione, uscita e in ingresso. Al termine della chiamata di un utente, l'applicazione può mostrare un'interfaccia utente all'utente finale, consentendo di scegliere un punteggio di classificazione e, se necessario, selezionare dall’elenco predefinito i problemi riscontrati durante la chiamata.
I frammenti di codice seguenti mostrano un esempio di chiamata uno-a-uno. Al termine della chiamata, l'applicazione può mostrare un'interfaccia utente del sondaggio e, una volta che l'utente sceglie una valutazione, l'applicazione deve chiamare l'API della funzionalità per inviare il sondaggio con le scelte dell'utente.
È consigliabile usare la scala di classificazione predefinita, ovvero la classificazione a cinque stelle (da 1 a 5). è comunque possibile inviare un sondaggio con una scala di valutazione personalizzata.
Avviare un sondaggio
Avviando un sondaggio si crea un oggetto CallSurvey
. Esso registra la finalità del sondaggio. Se questo particolare oggetto CallSurvey
non viene inviato in seguito, significa che il sondaggio è stato ignorato o saltato dal cliente finale.
var surveyCallFeature = call.Features.Survey;
var survey = await surveyCallFeature.StartSurveyAsync();
Utilizzo generale
Quando la classificazione chiama, è necessario rispettare i valori definiti nel campo della scala. Il valore lowerBound indica la peggiore esperienza possibile, mentre il valore upperBound indica l'esperienza perfetta. Entrambi i valori sono inclusi nell'intervallo.
OverallRating è una categoria obbligatoria per tutti i sondaggi.
Per altre informazioni sull'uso consigliato dei sondaggi, vedere Concetti relativi ai sondaggi
Nota
Il valore di cutoff indicato da una domanda nell'API è la soglia usata da Microsoft per l'analisi dei dati del sondaggio. Quando si personalizza il valore cutoff o l’intervallo di input, Microsoft analizza i dati del sondaggio in base alla personalizzazione.
Solo valutazione chiamata: nessuna scala personalizzata
survey.OverallScore = new CallSurveyScore() { Score = 5 };
Solo valutazione chiamata - con scala e problemi personalizzati
// configuring scale and score
survey.OverallScore = new CallSurveyScore() {
Scale = new CallSurveyRatingScale() {
LowerBound = 0,
UpperBound = 1,
LowScoreThreshold = 1,
},
Score = 1
};
// reporting one or more issues
survey.OverallIssues = CallIssues.HadToRejoin;
Valutazione complessiva, audio e video con un problema campione
survey.OverallScore = new CallSurveyScore() {
Score = 5
};
survey.AudioScore = new CallSurveyScore() {
Score = 4
};
survey.VideoScore = new CallSurveyScore() {
Score = 3
};
survey.videoIssues = VideoIssues.Freezes;
Inviare un sondaggio e gestire gli errori che l'SDK può inviare
try
{
CallSurveyResult result = await surveyCallFeature.SubmitSurveyAsync(survey);
Console.WriteLine("Survey submitted" + result.SurveyId);
} catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Trovare diversi tipi di errori
Errori durante l'invio del sondaggio:
L'API submitSurvey può restituire un errore negli scenari seguenti:
È necessaria una valutazione complessiva del sondaggio.
I limiti
CallSurveyRatingScale
devono essere compresi tra 0 e 100. LowerBound deve essere minore di UpperBound. LowScoreThreshold deve trovarsi entro i limiti.Qualsiasi punteggio deve rispettare i limiti definiti dall'oggetto
CallSurveyRatingScale
. Tutti i valori nell'oggettoCallSurveyRatingScale
sono inclusivi. Usando la scala predefinita, il valore del punteggio deve essere compreso tra 1 e 5.Non è possibile inviare un sondaggio a causa di un errore di rete/servizio.
Tag del sondaggio disponibili
Chiamata complessiva
Tag | Descrizione |
---|---|
CannotJoin |
Il cliente non è riuscito a partecipare a una chiamata |
CannotInvite |
Il cliente non è riuscito ad aggiungere un nuovo partecipante alla chiamata |
HadToRejoin |
Il cliente ha lasciato la chiamata per poi riconnettersi come soluzione alternativa a un problema |
EndedUnexpectedly |
La chiamata del cliente è terminata senza alcun motivo apparente |
OtherIssues |
Qualsiasi problema che non rientra nelle descrizioni precedenti |
Problemi audio
Tag | Descrizione |
---|---|
NoLocalAudio |
Assenza di audio chiamata sul computer del cliente, incapacità di sentire i partecipanti alla chiamata |
NoRemoteAudio |
Assenza dell’audio di un partecipante specifico |
Echo |
Eco percepita nella chiamata |
AudioNoise |
Audio ricevuto con rumore imprevisto |
LowVolume |
Audio troppo basso |
AudioStoppedUnexpectedly |
Audio arrestato senza motivo chiaro (ad esempio, nessuno ha l’audio disattivato) |
DistortedSpeech |
La voce di un partecipante è distorta, diversa dalla voce prevista |
AudioInterruption |
I clienti sperimentano interruzioni audio, voci tagliate e così via. |
OtherIssues |
Qualsiasi problema che non rientra nelle descrizioni precedenti |
Problemi video
Tag | Descrizione |
---|---|
NoVideoReceived |
Il cliente non riceve video da parte di un partecipante |
NoVideoSent |
Il cliente avvia il video, ma nessuno nella chiamata è in grado di vederlo |
LowQuality |
Video di bassa qualità |
Freezes |
Blocchi video |
StoppedUnexpectedly |
La condivisione dello schermo si arresta senza un motivo chiaro (ad esempio la fotocamera è attivata e le videochiamate sono attivate) |
DarkVideoReceived |
Il video viene inviato, ma il partecipante vede solo una casella scura (o di un altro colore) |
AudioVideoOutOfSync |
Video e audio non sembrano essere sincronizzati |
OtherIssues |
Qualsiasi problema che non rientra nelle descrizioni precedenti |
Problemi di condivisione dello schermo
Tag | Descrizione |
---|---|
NoContentLocal |
Il cliente non riceve la condivisione dello schermo di un partecipante che lo condivide |
NoContentRemote |
Il cliente sta condividendo lo schermo, ma uno o più partecipanti non riescono a vederlo |
CannotPresent |
Impossibile avviare la condivisione dello schermo |
LowQuality |
Bassa qualità nel video di condivisione dello schermo, ad esempio non è possibile leggere |
Freezes |
La condivisione dello schermo si blocca durante la presentazione |
StoppedUnexpectedly |
La condivisione dello schermo si arresta senza un chiaro (ad esempio, la condivisione dello schermo non è stata arrestata dal cliente) |
LargeDelay |
Ritardo percepito tra ciò che viene mostrato e ciò che viene visto |
OtherIssues |
Qualsiasi problema che non rientra nelle descrizioni precedenti |
Opzioni di personalizzazione
È possibile scegliere di raccogliere ognuno dei quattro valori dell'API o solo quelli più importanti. Ad esempio, è possibile scegliere di chiedere ai clienti di valutare solo l'esperienza di chiamata complessiva anziché chiedere loro informazioni sull'esperienza audio, video e condivisione dello schermo. Inoltre è possibile personalizzare gli intervalli di input in base alle proprie esigenze. L'intervallo di input predefinito è da 1 a 5 per Chiamata complessiva, Audio, Video e Condivisione schermo. Tuttavia, ciascun valore API può essere personalizzato da un minimo di 0 a un massimo di 100.
Nota
Il valore di cutoff indicato da una domanda nell'API è la soglia usata da Microsoft per l'analisi dei dati del sondaggio. Quando si personalizza il valore cutoff o l’intervallo di input, Microsoft analizza i dati del sondaggio in base alla personalizzazione.
Domande personalizzate
Oltre a usare l'API Sondaggio di fine chiamata, è possibile creare domande di sondaggio personalizzate e incorporarle con i risultati del sondaggio di fine chiamata.
Tuttavia, il payload del risultato dell'operazione SubmitSurvey
fornisce dati che è possibile usare per correlare i dati del sondaggio ACS con i dati e l'archiviazione personalizzati. La classe CallSurveyResult
ha il campo SurveyId
che denota un identificatore univoco per il sondaggio e CallId
denota un identificatore per la chiamata in cui è stato generato il sondaggio. Salvare questi identificatori insieme ai dati personalizzati consente di associare i dati in modo univoco.
Raccogliere i dati del sondaggio
Importante
È necessario abilitare un'impostazione di diagnostica in Monitoraggio di Azure per inviare i dati di log dei sondaggi a un'area di lavoro Log Analytics, a Hub eventi o a un account di archiviazione di Azure, per ricevere e analizzare i dati del sondaggio. Se i dati del sondaggio non saranno inviati a una di queste opzioni, verranno archiviati e andranno persi. Per abilitare questi log per i servizi di comunicazioni, vedere: Log dei sondaggi di fine chiamata
Visualizzare i dati del sondaggio con un'area di lavoro Log Analytics
Per archiviare i dati di log dei sondaggi e accedere ai risultati è necessario abilitare un'area di lavoro Log Analytics. Per abilitare questi log per il servizio di comunicazioni, vedere Log dei sondaggi di fine chiamata.
- Inoltre è possibile integrare l'area di lavoro Log Analytics con Power BI: vedere Integrare Log Analytics con Power BI.
Procedure consigliate
Ecco i flussi di sondaggio consigliati e le domande suggerite da considerare: Lo sviluppo può usare la raccomandazione o usare domande e flussi personalizzati per l'interfaccia visiva.
Domanda 1: In che modo gli utenti hanno percepito l'esperienza complessiva di qualità delle chiamate? È consigliabile iniziare il sondaggio solo chiedendo ai partecipanti le informazioni sulla qualità complessiva. Tenendo separate le prime e le seconde domande consente di raccogliere risposte solo a problemi di audio, video e condivisione dello schermo, nel caso in cui un partecipante indica che si sono verificati problemi di qualità delle chiamate.
- Richiesta suggerita: "Come è stata la qualità delle chiamate?"
- Valori delle domande API: chiamata complessiva
Domanda 2: l'utente ha percepito eventuali problemi di audio, video o condivisione dello schermo nella chiamata? Se un partecipante al sondaggio ha risposto alla domanda 1 con un punteggio di chiamata complessiva pari o inferiore al valore di cutoff, presentare la seconda domanda.
- Richiesta suggerita: "Cosa avrebbe potuto essere migliorato?"
- Valori delle domande API: Audio, Video e Condivisione schermo
Linee guida per il sondaggio
- Evitare il burnout del sondaggio, non esaminare tutti i partecipanti alle chiamate.
- L'ordine delle domande è importante. È consigliabile randomizzare la sequenza di tag facoltativi nella domanda 2, nel caso in cui gli intervistati concentrino la maggior parte del feedback sulla prima richiesta visualizzata visivamente.
- Prendere in considerazione l'uso di sondaggi per distinguere le risorse di Servizi di comunicazione di Azure e ottenere esperimenti controllati che identificano gli impatti sulle versioni.
Passaggi successivi
Per analizzare i dati del sondaggio, vedere: Fine dei log dei sondaggi di chiamata
Per altre informazioni sul sondaggio di fine chiamata, vedere: Informazioni generali sul sondaggio di fine chiamata
Per informazioni su come usare l'area di lavoro Log Analytics, vedere Esercitazione su Log Analytics
Per creare query personalizzate in Log Analytics, vedere Introduzione alle query