Utiliser l’enquête de fin d’appel pour recueillir les commentaires des utilisateurs
Ce tutoriel vous montre comment utiliser Azure Communication Services Enquête de fin d’appel.
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Une ressource Communication Services active. Créez une ressource Communication Services. Les résultats de l’enquête sont liés à des ressources Communication Services uniques.
- Un espace de travail Log Analytics actif, aussi appelé Journaux Azure Monitor. Consultez Journaux d’enquête de fin d’appel.
- Si vous souhaitez mener une enquête avec des questions personnalisées en utilisant un texte de forme libre, vous avez besoin d’une ressource App Insight.
Important
L’enquête de fin d’appel est disponible à partir de la version 1.13.1 du kit de développement logiciel (SDK) d’appel. Veillez à utiliser cette version ou ultérieur lors de l’essai des instructions.
- Les versions actives LTS (Prise en charge à long terme) de Node.js sont recommandées.
Exemple d’utilisation de l’API
La fonctionnalité Fin de l’enquête d’appel doit être utilisée une fois l’appel terminé. Les utilisateurs peuvent évaluer n’importe quel type d’appel VoIP, 1:1, groupe, réunion, sortant et entrant. Une fois l’appel d’un utilisateur terminé, votre application peut afficher une interface utilisateur à l’utilisateur final, ce qui lui permet de choisir un score d’évaluation et, si nécessaire, de choisir les problèmes qu’il a rencontrés pendant l’appel dans notre liste prédéfinie.
Les captures de code suivantes illustrent un exemple d’appel un-à-un. Après la fin de l’appel, votre application peut afficher une interface utilisateur d’enquête et une fois que l’utilisateur a choisi une évaluation, votre application doit appeler l’API de fonctionnalité pour soumettre l’enquête avec les choix de l’utilisateur.
Nous vous encourageons à utiliser l’échelle d’évaluation par défaut. Toutefois, vous pouvez envoyer une enquête avec une échelle d’évaluation personnalisée. Vous pouvez case activée l’exemple d’application pour l’exemple d’utilisation de l’API.
Appel de débit uniquement : pas d’échelle personnalisée
call.feature(Features.CallSurvey).submitSurvey({
overallRating: { score: 5 }, // issues are optional
}).then(() => console.log('survey submitted successfully'));
OverallRating est une catégorie obligatoire pour toutes les enquêtes.
Appel de taux uniquement : avec une mise à l’échelle personnalisée et des problèmes
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'));
Évaluer l’ensemble, l’audio et la vidéo avec un exemple de problème
call.feature(Features.CallSurvey).submitSurvey({
overallRating: { score: 3 },
audioRating: { score: 4 },
videoRating: { score: 3, issues: ['Freezes'] }
}).then(() => console.log('survey submitted successfully'))
Gérer les erreurs que le KIT de développement logiciel (SDK) peut envoyer
call.feature(Features.CallSurvey).submitSurvey({
overallRating: { score: 3 }
}).catch((e) => console.log('error when submitting survey: ' + e))
Rechercher différents types d’erreurs
Échecs lors de la soumission d’une enquête
L’API retourne les messages d’erreur suivants si la validation des données échoue ou si l’enquête ne peut pas être envoyée.
Au moins une évaluation d’enquête est requise.
Par défaut, l’échelle X doit être comprise entre 1 et 5. - où X correspond à l’un des éléments suivants :
- overallRating.score
- audioRating.score
- videoRating.score
- ScreenshareRating.score
{propertyName} : {rating.score} doit se trouver entre {rating.scale?.lowerBound} et {rating.scale?.upperBound}.
{propertyName} : {rating.scale?.lowScoreThreshold} doit se trouver entre {rating.scale?.lowerBound} et {rating.scale?.upperBound}.
{propertyName} : lowerBound: {rating.scale?.lowerBound} et upperBound: {rating.scale?.upperBound} doivent se trouver entre 0 et 100.
Réessayez [ACS n’a pas pu envoyer l’enquête, en raison d’une erreur réseau ou d’une autre erreur].
Tous les codes d’erreur seront retournés avec un message.
- Code d’erreur 400 (requête incorrecte) pour tous les messages d’erreur à l’exception d’un seul.
{ message: validationErrorMessage, code: 400 }
- Un code d’erreur 408 (délai d’expiration) lorsque l’événement a été abandonné :
{ message: "Please try again.", code: 408 }
Toutes les valeurs possibles
Configuration de l’API d’enquête par défaut
Catégories d’évaluation de l’API | Valeurs de coupure* | Plage d’entrée | Commentaires |
---|---|---|---|
Appel global | 2 | 1 - 5 | Interroge l’expérience de qualité globale d’un participant à l’appel sur une échelle de 1 à 5. Une réponse de 1 indique une expérience d’appel imparfaite et 5 indique un appel parfait. La valeur de seuil de 2 signifie qu’une réponse client de 1 ou 2 indique une expérience d’appel inférieure à parfaite. |
Audio | 2 | 1 - 5 | Une réponse de 1 indique une expérience audio imparfaite et 5 indique qu’aucun problème audio n’a été rencontré. |
Vidéo | 2 | 1 - 5 | Une réponse 1 indique une expérience vidéo imparfaite et 5 indique qu’aucun problème vidéo n’a été rencontré. |
Partage d’écran | 2 | 1 - 5 | Une réponse de 1 indique une expérience de partage d’écran imparfaite et 5 indique qu’aucun problème de partage d’écran n’a été rencontré. |
Notes
La valeur de seuil indiquée d’une question dans l’API est le seuil utilisé par Microsoft lors de l’analyse de vos données d’enquête. Lorsque vous personnalisez la valeur de seuil ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.
Autres balises d’enquête
Catégories d’évaluation | Balises facultatives |
---|---|
Appel global | CallCannotJoin CallCannotInvite HadToRejoin CallEndedUnexpectedly OtherIssues |
Audio | NoLocalAudio NoRemoteAudio Echo AudioNoise LowVolume AudioStoppedUnexpectedly DistortedSpeech AudioInterruption OtherIssues |
Vidéo | NoVideoReceived NoVideoSent LowQuality Freezes StoppedUnexpectedly DarkVideoReceived AudioVideoOutOfSync OtherIssues |
Partage d’écran | NoContentLocal NoContentRemote CannotPresent LowQuality Freezes StoppedUnexpectedly LargeDelay OtherIssues |
Options de personnalisation
Vous pouvez choisir de collecter chacune des quatre valeurs d’API ou uniquement celles que vous trouvez les plus importantes. Par exemple, vous pouvez choisir de demander uniquement aux clients leur expérience d’appel globale au lieu de les interroger sur leur expérience audio, vidéo et de partage d’écran. Vous pouvez également personnaliser les plages d’entrée en fonction de vos besoins. La plage d’entrée par défaut est comprise entre 1 et 5 pour l’appel global, l’audio, la vidéo et le partage d’écran. Toutefois, chaque valeur d’API peut être personnalisée d’un minimum de 0 à un maximum de 100.
Exemples de personnalisation
Catégories d’évaluation de l’API | Valeurs de coupure* | Plage d’entrée |
---|---|---|
Appel global | 0 - 100 | 0 - 100 |
Audio | 0 - 100 | 0 - 100 |
Vidéo | 0 - 100 | 0 - 100 |
Partage d’écran | 0 - 100 | 0 - 100 |
Notes
La valeur de seuil indiquée d’une question dans l’API est le seuil utilisé par Microsoft lors de l’analyse de vos données d’enquête. Lorsque vous personnalisez la valeur de seuil ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.
Questions personnalisées
En plus d’utiliser l’API d’enquête de fin d’appel, vous pouvez créer vos propres questions d’enquête et les incorporer aux résultats de l’enquête de fin d’appel. Vous trouverez ci-dessous les étapes permettant d’incorporer vos propres questions client dans une enquête et d’interroger les résultats de l’API d’enquête de fin d’appel ainsi que vos propres questions d’enquête.
Incorporer Azure AppInsights dans votre application Cliquez ici pour en savoir plus sur l’initialisation d’application Insight à l’aide de JavaScript simple. Vous pouvez également utiliser NPM pour obtenir les dépendances d’application Insights. Cliquez ici pour en savoir plus sur l’initialisation d’application Insight à l’aide de NPM.
Créez une interface utilisateur dans votre application pour personnaliser les questions posées à l’utilisateur et recueillir ses entrées. Supposons que votre application a collecté des réponses sous la forme d’une chaîne dans la variable
improvementSuggestion
Envoyez les résultats de l’enquête à ACS ainsi que la réponse de l’utilisateur à l’aide de l’application Insights :
currentCall.feature(SDK.Features.CallSurvey).submitSurvey(survey).then(res => { // `improvementSuggestion` 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();
Les réponses utilisateur envoyées en tirant parti de la fonctionnalité AppInsights sont disponibles dans votre espace de travail Application Insights. Pour interroger plusieurs ressources, mettre en corrélation les évaluations des appels ainsi que les données d’enquête personnalisées, veuillez utilisez lesclasseurs. Étapes pour mettre en corrélation les évaluations des appels et les données d’enquête personnalisées :
- Créez des classeurs (votre ressource ACS -> Surveillance -> Classeurs -> Nouveau) et interrogez les données d’enquête d’appel à partir de votre ressource ACS.
- Ajouter une nouvelle requête (+Ajouter - > Ajouter une requête)
- Vérifiez que
Data source
estLogs
etResource type
estCommunication
- Vous pouvez renommer la requête (Paramètres avancés -> Nom de l’étape [exemple : call-survey])
- N’oubliez pas qu’il faut compter un maximum de 2 heures avant que les données de l’enquête ne soient visibles dans le portail Azure. Interroger les données d’évaluation des appels-
ACSCallSurvey | where TimeGenerated > now(-24h)
- Ajouter une autre requête pour obtenir des données à partir d’application Insights (+Ajouter - > Ajouter une requête)
- Vérifiez que
Data source
estLogs
etResource type
estApplication Insights
- Interroger les événements personnalisés-
customEvents | where timestamp > now(-24h) | where name == 'CallSurvey' | extend d=parse_json(customDimensions) | project SurveyId = d.id, ImprovementSuggestion = d.improvementSuggestion
- Vous pouvez renommer la requête (Paramètres avancés -> Nom de l’étape [exemple : custom-call-survey])
- Enfin, fusionnez ces deux requêtes par ID de requête. Créer une requête (+Ajouter - > Ajouter une requête).
- Assurez-vous que
Data source
est Fusionner et sélectionnezMerge type
si nécessaire
titre : Azure Communication Services enquête de fin d’appel titleSuffix : description du document du tutoriel Azure Communication Services : Apprenez à utiliser l’enquête de fin d’appel pour recueillir les commentaires des utilisateurs. auteur : 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
Important
L’enquête de fin d’appel est disponible à partir de la version 2.10.0 du SDK d’appel Android. Veillez à utiliser cette version ou ultérieur lors de l’essai des instructions.
Exemple d’utilisation de l’API
La fonctionnalité Fin de l’enquête d’appel doit être utilisée une fois l’appel terminé. Les utilisateurs peuvent évaluer n’importe quel type d’appel VoIP, 1:1, groupe, réunion, sortant et entrant. Une fois l’appel d’un utilisateur terminé, votre application peut afficher une interface utilisateur à l’utilisateur final, ce qui lui permet de choisir un score d’évaluation et, si nécessaire, de choisir les problèmes qu’il a rencontrés pendant l’appel dans notre liste prédéfinie.
Les captures de code suivantes illustrent un exemple d’appel un-à-un. Après la fin de l’appel, votre application peut afficher une interface utilisateur d’enquête et une fois que l’utilisateur a choisi une évaluation, votre application doit appeler l’API de fonctionnalité pour soumettre l’enquête avec les choix de l’utilisateur.
Nous vous encourageons à utiliser l’échelle d’évaluation par défaut, qui est l’évaluation avec cinq étoiles (entre 1 et 5). Toutefois, vous pouvez envoyer une enquête avec une échelle d’évaluation personnalisée.
Commencer une enquête
Vous créez un objet CallSurvey
en commençant une enquête. Cette opération enregistre une intention d’enquête. Si cet objet CallSurvey
particulier n’est pas envoyé par la suite, cela signifie que l’enquête a été abandonnée ou ignorée par le client final.
SurveyCallFeature surveyCallFeature = call.feature(Features.SURVEY);
try {
CallSurvey survey = surveyCallFeature.startSurvey().get();
} catch (InterruptedException | ExecutionException e) {
// failure to start survey
}
Utilisation générale
Lors de l’évaluation des appels, vous devez respecter les valeurs définies dans le champ de l’échelle. La valeur lowerBound indique la pire expérience possible, tandis que la valeur upperBound indique l’expérience parfaite. Les deux valeurs sont comprises.
OverallRating est une catégorie obligatoire pour toutes les enquêtes.
Remarque
La valeur de seuil indiquée d’une question dans l’API est le seuil utilisé par Microsoft lors de l’analyse de vos données d’enquête. Lorsque vous personnalisez la valeur de seuil ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.
Pour plus d’informations sur l’utilisation d’une enquête, consultez Concepts d’une enquête
Appel de débit uniquement : pas d’échelle personnalisée
SurveyScore overall = new SurveyScore();
overall.setScore(5);
callSurvey.setOverallScore(overall);
Appel de taux uniquement : avec une mise à l’échelle personnalisée et des problèmes
// 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);
Évaluer l’ensemble, l’audio et la vidéo avec un exemple de problème
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);
Soumettre une enquête et gérer les erreurs que le SDK peut envoyer
try {
CallSurveyResult survey = surveyCallFeature.submitSurvey(survey).get();
} catch (InterruptedException e) {
// Threading error
} catch (ExecutionException e) {
Log.e("SURVEY", e.getCause().getMessage());
}
Rechercher différents types d’erreurs
Échecs lors de l’envoi d’une enquête :
L’API submitSurvey peut retourner une erreur dans les scénarios suivants :
Une évaluation globale d’enquête est requise.
Les limites de
CallSurveyRatingScale
doivent être comprises entre 0 et 100. LowerBound doit être inférieur à UpperBound. LowScoreThreshold doit se trouver dans les limites.Les scores doivent respecter les limites définies par
CallSurveyRatingScale
. Toutes les valeurs de l’objetCallSurveyRatingScale
sont incluses. À l’aide de l’échelle par défaut, la valeur du score doit être comprise entre 1 et 5.L’enquête ne peut pas être soumise en raison d’une erreur de réseau/service.
Étiquettes d’enquête disponibles
Appel global
Balise | Description |
---|---|
CannotJoin |
Le client n’a pas pu rejoindre un appel |
CannotInvite |
Le client n’a pas pu ajouter un nouveau participant à l’appel |
HadToRejoin |
Le client a quitté l’appel puis l’a rejoint à nouveau pour contourner un problème |
CallEndedUnexpectedly |
L’appel du client s’est terminé sans raison apparente |
OtherIssues |
Tout autre problème qui ne correspond pas aux descriptions précédentes |
Problèmes audio
Balise | Description |
---|---|
NoLocalAudio |
Aucun son sur l’ordinateur client, incapacité d’entendre qui que ce soit au cours de l’appel |
NoRemoteAudio |
Aucun son venant d’un participant spécifique |
Echo |
Écho perçu lors de l’appel |
AudioNoise |
Son reçu avec un bruit inattendu |
LowVolume |
Son trop bas |
AudioStoppedUnexpectedly |
Son arrêté sans raison précise (par exemple, aucun son désactivé pour personne) |
DistortedSpeech |
La voix d’un participant est déformée, différente de sa voix normale |
AudioInterruption |
Le client rencontre des interruptions audio, des voix hachurées, etc. |
OtherIssues |
Tout autre problème qui ne correspond pas aux descriptions précédentes |
Problèmes de vidéo
Balise | Description |
---|---|
NoVideoReceived |
Le client ne reçoit pas de vidéo d’un participant |
NoVideoSent |
Le client démarre la vidéo, mais personne de l’appel n’est en mesure de la voir |
LowQuality |
Qualité vidéo médiocre |
Freezes |
La vidéo se fige |
StoppedUnexpectedly |
Le partage d’écran s’arrête sans raison précise (par exemple, la caméra est activée et l’appel vidéo est activé) |
DarkVideoReceived |
La vidéo est actuellement en cours de lecture, mais le participant ne voit qu’un écran noir (ou d’une autre couleur unie) |
AudioVideoOutOfSync |
La vidéo et le son audio ne semblent pas être synchronisés |
OtherIssues |
Tout autre problème qui ne correspond pas aux descriptions précédentes |
Problèmes de partage d’écran
Balise | Description |
---|---|
NoContentLocal |
Le client ne reçoit pas le partage d’écran d’un participant qui est en train de partager |
NoContentRemote |
Le client partage l’écran, mais un ou plusieurs participants n’arrivent pas à le voir |
CannotPresent |
Impossible de démarrer le partage d’écran |
LowQuality |
Qualité médiocre de la vidéo de partage d’écran (par exemple, lecture impossible) |
Freezes |
Le partage d’écran se fige pendant la présentation |
StoppedUnexpectedly |
Le partage d’écran s’arrête sans raison précise (par exemple, le partage d’écran n’a pas été arrêté par le client) |
LargeDelay |
Délai perçu entre ce qui est montré et ce qui est vu |
OtherIssues |
Tout autre problème qui ne correspond pas aux descriptions précédentes |
Options de personnalisation
Vous pouvez choisir de collecter chacune des quatre valeurs d’API ou uniquement celles que vous trouvez les plus importantes. Par exemple, vous pouvez choisir de demander uniquement aux clients leur expérience d’appel globale au lieu de les interroger sur leur expérience audio, vidéo et de partage d’écran. Vous pouvez également personnaliser les plages d’entrée en fonction de vos besoins. La plage d’entrée par défaut est comprise entre 1 et 5 pour l’appel global, le son, la vidéo et le partage d’écran. Toutefois, chaque valeur d’API peut être personnalisée d’un minimum de 0 à un maximum de 100.
Remarque
La valeur de seuil indiquée d’une question dans l’API est le seuil utilisé par Microsoft lors de l’analyse de vos données d’enquête. Lorsque vous personnalisez la valeur de seuil ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.
Questions personnalisées
En plus d’utiliser l’API d’enquête de fin d’appel, vous pouvez créer vos propres questions d’enquête et les incorporer aux résultats de l’enquête de fin d’appel.
Le résultat de l’opération SubmitSurvey
fournit des données que vous pouvez utiliser pour mettre en corrélation les données d’enquête ACS avec vos propres données et stockage personnalisés. La classe CallSurveyResult
a le champ SurveyId
qui désigne un identificateur unique pour l’enquête et CallId
indique un identificateur pour l’appel où l’enquête a été générée. L’enregistrement de ces identificateurs avec vos données personnalisées permet d’associer des données de manière unique.
Important
L’enquête de fin d’appel est disponible à partir de la version 2.10.0 du SDK d’appel iOS. Veillez à utiliser cette version ou ultérieur lors de l’essai des instructions.
Exemple d’utilisation de l’API
La fonctionnalité Fin de l’enquête d’appel doit être utilisée une fois l’appel terminé. Les utilisateurs peuvent évaluer n’importe quel type d’appel VoIP, 1:1, groupe, réunion, sortant et entrant. Une fois l’appel d’un utilisateur terminé, votre application peut afficher une interface utilisateur à l’utilisateur final, ce qui lui permet de choisir un score d’évaluation et, si nécessaire, de choisir les problèmes qu’il a rencontrés pendant l’appel dans notre liste prédéfinie.
Les captures de code suivantes illustrent un exemple d’appel un-à-un. Après la fin de l’appel, votre application peut afficher une interface utilisateur d’enquête et une fois que l’utilisateur a choisi une évaluation, votre application doit appeler l’API de fonctionnalité pour soumettre l’enquête avec les choix de l’utilisateur.
Nous vous encourageons à utiliser l’échelle d’évaluation par défaut, qui est l’évaluation avec cinq étoiles (entre 1 et 5). Toutefois, vous pouvez envoyer une enquête avec une échelle d’évaluation personnalisée.
Commencer une enquête
Vous créez un objet CallSurvey
en commençant une enquête. Cette opération enregistre une intention d’enquête. Si cet objet CallSurvey
particulier n’est pas envoyé par la suite, cela signifie que l’enquête a été abandonnée ou ignorée par le client final.
var surveyCallFeature = self.call.feature(Features.survey)
do {
try self.callSurvey = await surveyFeature.startSurvey()
} catch {
print("Failure to start survey")
}
Utilisation générale
Lors de l’évaluation des appels, vous devez respecter les valeurs définies dans le champ de l’échelle. La valeur lowerBound indique la pire expérience possible, tandis que la valeur upperBound indique l’expérience parfaite. Les deux valeurs sont comprises.
OverallRating est une catégorie obligatoire pour toutes les enquêtes.
Pour plus d’informations sur l’utilisation d’une enquête, consultez Concepts d’une enquête
Remarque
La valeur de seuil indiquée d’une question dans l’API est le seuil utilisé par Microsoft lors de l’analyse de vos données d’enquête. Lorsque vous personnalisez la valeur de seuil ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.
Appel de débit uniquement : pas d’échelle personnalisée
let overallScore = SurveyScore()
overallScore.score = Int32(5)
callSurvey.overallScore = overallScore
Appel de taux uniquement : avec une mise à l’échelle personnalisée et des problèmes
// 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 ];
Évaluer l’ensemble, l’audio et la vidéo avec un exemple de problème
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 ];
Soumettre une enquête et gérer les erreurs que le SDK peut envoyer
do {
var result = try await self.surveyFeature!.submit(survey: callSurvey)
} catch let error as NSError {
print("==> Survey Not Submitted " + error.localizedDescription)
}
Rechercher différents types d’erreurs
Échecs lors de l’envoi d’une enquête :
L’API submitSurvey peut retourner une erreur dans les scénarios suivants :
Une évaluation globale d’enquête est requise.
Les limites de
CallSurveyRatingScale
doivent être comprises entre 0 et 100. LowerBound doit être inférieur à UpperBound. LowScoreThreshold doit se trouver dans les limites.Les scores doivent respecter les limites définies par
CallSurveyRatingScale
. Toutes les valeurs de l’objetCallSurveyRatingScale
sont incluses. À l’aide de l’échelle par défaut, la valeur du score doit être comprise entre 1 et 5.L’enquête ne peut pas être soumise en raison d’une erreur de réseau/service.
Étiquettes d’enquête disponibles
Appel global
Balise | Description |
---|---|
CannotJoin |
Le client n’a pas pu rejoindre un appel |
CannotInvite |
Le client n’a pas pu ajouter un nouveau participant à l’appel |
HadToRejoin |
Le client a quitté l’appel puis l’a rejoint à nouveau pour contourner un problème |
CallEndedUnexpectedly |
L’appel du client s’est terminé sans raison apparente |
OtherIssues |
Tout autre problème qui ne correspond pas aux descriptions précédentes |
Problèmes audio
Balise | Description |
---|---|
NoLocalAudio |
Aucun son sur l’ordinateur client, incapacité d’entendre qui que ce soit au cours de l’appel |
NoRemoteAudio |
Aucun son venant d’un participant spécifique |
Echo |
Écho perçu lors de l’appel |
AudioNoise |
Son reçu avec un bruit inattendu |
LowVolume |
Son trop bas |
AudioStoppedUnexpectedly |
Son arrêté sans raison précise (par exemple, aucun son désactivé pour personne) |
DistortedSpeech |
La voix d’un participant est déformée, différente de sa voix normale |
AudioInterruption |
Le client rencontre des interruptions audio, des voix hachurées, etc. |
OtherIssues |
Tout autre problème qui ne correspond pas aux descriptions précédentes |
Problèmes de vidéo
Balise | Description |
---|---|
NoVideoReceived |
Le client ne reçoit pas de vidéo d’un participant |
NoVideoSent |
Le client démarre la vidéo, mais personne de l’appel n’est en mesure de la voir |
LowQuality |
Qualité vidéo médiocre |
Freezes |
La vidéo se fige |
StoppedUnexpectedly |
Le partage d’écran s’arrête sans raison précise (par exemple, la caméra est activée et l’appel vidéo est activé) |
DarkVideoReceived |
La vidéo est actuellement en cours de lecture, mais le participant ne voit qu’un écran noir (ou d’une autre couleur unie) |
AudioVideoOutOfSync |
La vidéo et le son audio ne semblent pas être synchronisés |
OtherIssues |
Tout autre problème qui ne correspond pas aux descriptions précédentes |
Problèmes de partage d’écran
Balise | Description |
---|---|
NoContentLocal |
Le client ne reçoit pas le partage d’écran d’un participant qui est en train de partager |
NoContentRemote |
Le client partage l’écran, mais un ou plusieurs participants n’arrivent pas à le voir |
CannotPresent |
Impossible de démarrer le partage d’écran |
LowQuality |
Qualité médiocre de la vidéo de partage d’écran (par exemple, lecture impossible) |
Freezes |
Le partage d’écran se fige pendant la présentation |
StoppedUnexpectedly |
Le partage d’écran s’arrête sans raison précise (par exemple, le partage d’écran n’a pas été arrêté par le client) |
LargeDelay |
Délai perçu entre ce qui est montré et ce qui est vu |
OtherIssues |
Tout autre problème qui ne correspond pas aux descriptions précédentes |
Options de personnalisation
Vous pouvez choisir de collecter chacune des quatre valeurs d’API ou uniquement celles que vous trouvez les plus importantes. Par exemple, vous pouvez choisir de demander uniquement aux clients leur expérience d’appel globale au lieu de les interroger sur leur expérience audio, vidéo et de partage d’écran. Vous pouvez également personnaliser les plages d’entrée en fonction de vos besoins. La plage d’entrée par défaut est comprise entre 1 et 5 pour l’appel global, le son, la vidéo et le partage d’écran. Toutefois, chaque valeur d’API peut être personnalisée d’un minimum de 0 à un maximum de 100.
Remarque
La valeur de seuil indiquée d’une question dans l’API est le seuil utilisé par Microsoft lors de l’analyse de vos données d’enquête. Lorsque vous personnalisez la valeur de seuil ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.
Questions personnalisées
En plus d’utiliser l’API d’enquête de fin d’appel, vous pouvez créer vos propres questions d’enquête et les incorporer aux résultats de l’enquête de fin d’appel.
Toutefois, le résultat de l’opération SubmitSurvey
fournit des données que vous pouvez utiliser pour mettre en corrélation les données d’enquête ACS avec vos propres données et stockage personnalisés. La classe CallSurveyResult
a le champ SurveyId
qui désigne un identificateur unique pour l’enquête et CallId
indique un identificateur pour l’appel où l’enquête a été générée. L’enregistrement de ces identificateurs avec vos données personnalisées permet d’associer des données de manière unique.
Important
L’enquête de fin d’appel est disponible à partir de la version 1.8.0 du SDK d’appel Windows. Veillez à utiliser cette version ou ultérieur lors de l’essai des instructions.
Exemple d’utilisation de l’API
La fonctionnalité Fin de l’enquête d’appel doit être utilisée une fois l’appel terminé. Les utilisateurs peuvent évaluer n’importe quel type d’appel VoIP, 1:1, groupe, réunion, sortant et entrant. Une fois l’appel d’un utilisateur terminé, votre application peut afficher une interface utilisateur à l’utilisateur final, ce qui lui permet de choisir un score d’évaluation et, si nécessaire, de choisir les problèmes qu’il a rencontrés pendant l’appel dans notre liste prédéfinie.
Les captures de code suivantes illustrent un exemple d’appel un-à-un. Après la fin de l’appel, votre application peut afficher une interface utilisateur d’enquête et une fois que l’utilisateur a choisi une évaluation, votre application doit appeler l’API de fonctionnalité pour soumettre l’enquête avec les choix de l’utilisateur.
Nous vous encourageons à utiliser l’échelle d’évaluation par défaut, qui est l’évaluation avec cinq étoiles (entre 1 et 5). Toutefois, vous pouvez envoyer une enquête avec une échelle d’évaluation personnalisée.
Commencer une enquête
Vous créez un objet CallSurvey
en commençant une enquête. Cette opération enregistre une intention d’enquête. Si cet objet CallSurvey
particulier n’est pas envoyé par la suite, cela signifie que l’enquête a été abandonnée ou ignorée par le client final.
var surveyCallFeature = call.Features.Survey;
var survey = await surveyCallFeature.StartSurveyAsync();
Utilisation générale
Lors de l’évaluation des appels, vous devez respecter les valeurs définies dans le champ de l’échelle. La valeur lowerBound indique la pire expérience possible, tandis que la valeur upperBound indique l’expérience parfaite. Les deux valeurs sont comprises.
OverallRating est une catégorie obligatoire pour toutes les enquêtes.
Pour plus d’informations sur l’utilisation d’une enquête, consultez Concepts d’une enquête
Remarque
La valeur de seuil indiquée d’une question dans l’API est le seuil utilisé par Microsoft lors de l’analyse de vos données d’enquête. Lorsque vous personnalisez la valeur de seuil ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.
Appel de débit uniquement : pas d’échelle personnalisée
survey.OverallScore = new CallSurveyScore() { Score = 5 };
Appel de taux uniquement : avec une mise à l’échelle personnalisée et des problèmes
// 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;
Évaluer l’ensemble, l’audio et la vidéo avec un exemple de problème
survey.OverallScore = new CallSurveyScore() {
Score = 5
};
survey.AudioScore = new CallSurveyScore() {
Score = 4
};
survey.VideoScore = new CallSurveyScore() {
Score = 3
};
survey.videoIssues = VideoIssues.Freezes;
Soumettre une enquête et gérer les erreurs que le SDK peut envoyer
try
{
CallSurveyResult result = await surveyCallFeature.SubmitSurveyAsync(survey);
Console.WriteLine("Survey submitted" + result.SurveyId);
} catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Rechercher différents types d’erreurs
Échecs lors de l’envoi d’une enquête :
L’API submitSurvey peut retourner une erreur dans les scénarios suivants :
Une évaluation globale d’enquête est requise.
Les limites de
CallSurveyRatingScale
doivent être comprises entre 0 et 100. LowerBound doit être inférieur à UpperBound. LowScoreThreshold doit se trouver dans les limites.Les scores doivent respecter les limites définies par
CallSurveyRatingScale
. Toutes les valeurs de l’objetCallSurveyRatingScale
sont incluses. À l’aide de l’échelle par défaut, la valeur du score doit être comprise entre 1 et 5.L’enquête ne peut pas être soumise en raison d’une erreur de réseau/service.
Étiquettes d’enquête disponibles
Appel global
Balise | Description |
---|---|
CannotJoin |
Le client n’a pas pu rejoindre un appel |
CannotInvite |
Le client n’a pas pu ajouter un nouveau participant à l’appel |
HadToRejoin |
Le client a quitté l’appel puis l’a rejoint à nouveau pour contourner un problème |
EndedUnexpectedly |
L’appel du client s’est terminé sans raison apparente |
OtherIssues |
Tout autre problème qui ne correspond pas aux descriptions précédentes |
Problèmes audio
Balise | Description |
---|---|
NoLocalAudio |
Aucun son sur l’ordinateur client, incapacité d’entendre qui que ce soit au cours de l’appel |
NoRemoteAudio |
Aucun son venant d’un participant spécifique |
Echo |
Écho perçu lors de l’appel |
AudioNoise |
Son reçu avec un bruit inattendu |
LowVolume |
Son trop bas |
AudioStoppedUnexpectedly |
Son arrêté sans raison précise (par exemple, aucun son désactivé pour personne) |
DistortedSpeech |
La voix d’un participant est déformée, différente de sa voix normale |
AudioInterruption |
Le client rencontre des interruptions audio, des voix hachurées, etc. |
OtherIssues |
Tout autre problème qui ne correspond pas aux descriptions précédentes |
Problèmes vidéo
Balise | Description |
---|---|
NoVideoReceived |
Le client ne reçoit pas de vidéo d’un participant |
NoVideoSent |
Le client démarre la vidéo, mais personne de l’appel n’est en mesure de la voir |
LowQuality |
Qualité vidéo médiocre |
Freezes |
La vidéo se fige |
StoppedUnexpectedly |
Le partage d’écran s’arrête sans raison précise (par exemple, la caméra est activée et l’appel vidéo est activé) |
DarkVideoReceived |
La vidéo est actuellement en cours de lecture, mais le participant ne voit qu’un écran noir (ou d’une autre couleur unie) |
AudioVideoOutOfSync |
La vidéo et le son audio ne semblent pas être synchronisés |
OtherIssues |
Tout autre problème qui ne correspond pas aux descriptions précédentes |
Problèmes de partage d’écran
Balise | Description |
---|---|
NoContentLocal |
Le client ne reçoit pas le partage d’écran d’un participant qui est en train de partager |
NoContentRemote |
Le client partage l’écran, mais un ou plusieurs participants n’arrivent pas à le voir |
CannotPresent |
Impossible de démarrer le partage d’écran |
LowQuality |
Qualité médiocre de la vidéo de partage d’écran (par exemple, lecture impossible) |
Freezes |
Le partage d’écran se fige pendant la présentation |
StoppedUnexpectedly |
Le partage d’écran s’arrête sans raison précise (par exemple, le partage d’écran n’a pas été arrêté par le client) |
LargeDelay |
Délai perçu entre ce qui est montré et ce qui est vu |
OtherIssues |
Tout autre problème qui ne correspond pas aux descriptions précédentes |
Options de personnalisation
Vous pouvez choisir de collecter chacune des quatre valeurs d’API ou uniquement celles que vous trouvez les plus importantes. Par exemple, vous pouvez choisir de demander uniquement aux clients leur expérience d’appel globale au lieu de les interroger sur leur expérience audio, vidéo et de partage d’écran. Vous pouvez également personnaliser les plages d’entrée en fonction de vos besoins. La plage d’entrée par défaut est comprise entre 1 et 5 pour l’appel global, le son, la vidéo et le partage d’écran. Toutefois, chaque valeur d’API peut être personnalisée d’un minimum de 0 à un maximum de 100.
Remarque
La valeur de seuil indiquée d’une question dans l’API est le seuil utilisé par Microsoft lors de l’analyse de vos données d’enquête. Lorsque vous personnalisez la valeur de seuil ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.
Questions personnalisées
En plus d’utiliser l’API d’enquête de fin d’appel, vous pouvez créer vos propres questions d’enquête et les incorporer aux résultats de l’enquête de fin d’appel.
Toutefois, le résultat de l’opération SubmitSurvey
fournit des données que vous pouvez utiliser pour mettre en corrélation les données d’enquête ACS avec vos propres données et stockage personnalisés. La classe CallSurveyResult
a le champ SurveyId
qui désigne un identificateur unique pour l’enquête et CallId
indique un identificateur pour l’appel où l’enquête a été générée. L’enregistrement de ces identificateurs avec vos données personnalisées permet d’associer des données de manière unique.
Collecter des données de l’enquête
Important
L'activation d'un paramètre de diagnostic dans Azure Monitor est nécessaire pour envoyer les données de journal de vos enquêtes à un espace de travail Log Analytics, à Event Hubs ou encore à un compte de stockage Azure afin de recevoir et d'analyser les données de vos enquêtes. Si vous n’envoyez aucune donnée d’enquête à l’une de ces options, vos données d’enquête ne seront pas stockées et disparaîtront. Pour activer ces journaux dans le cadre de vos Communications Services, consultez : Fin des journaux d’enquête d’appel
Afficher les données de l’enquête avec un espace de travail Log Analytics
Pour stocker les données du journal de vos enquêtes et accéder aux résultats des enquêtes, activez un espace de travail d'analyse du journal. Pour activer ces journaux pour votre Service de Communication, consultez : Fin des journaux d’enquête d’appel.
- Vous pouvez également intégrer votre espace de travail Journal d’activité à Power BI. Consultez : Intégrer Log Analytics à Power BI.
Bonnes pratiques
Voici nos flux d’enquête recommandés et les invites de questions suggérées pour examen. Votre développement peut utiliser notre suggestion ou utiliser des invites de questions et des flux personnalisés pour votre interface visuelle.
Question 1 : Comment les utilisateurs ont-ils perçu leur expérience globale de la qualité des appels ? Nous vous recommandons de commencer l’enquête en vous demandant uniquement sur la qualité globale des participants. Si vous séparez les première et deuxième questions, il est utile de collecter uniquement les réponses aux problèmes audio, vidéo et partage d’écran si un participant à l’enquête indique qu’il a rencontré des problèmes de qualité des appels.
- Invite suggérée : « Comment était la qualité de l’appel ? »
- Valeurs de la question d’API : appel global
Question 2 : L’utilisateur a-t-il détecté des problèmes audio, vidéo ou de partage d’écran dans l’appel ? Si un participant à l’enquête a répondu à la question 1 avec un score inférieur ou égal à la valeur limite de l’appel global, présentez la deuxième question.
- Invite suggérée : « Qu’est-ce qui aurait pu être mieux ? »
- Valeurs de la question d’API : Audio, Vidéo et Partage d’écran
Instructions relatives à l’arpentage
- Évitez l’épuisement des sondages, n’interrogez pas tous les participants à l’appel.
- L’ordre de vos questions est important. Nous vous recommandons de rendre aléatoire la séquence de balises facultatives de la question 2 dans le cas où les répondants concentrent la plupart de leurs commentaires sur la première invite qu’ils voient visuellement.
- Envisagez l’utilisation des enquêtes pour des ressources Azure Communication Services distinctes dans le cadre d’expériences contrôlées afin d’identifier les impacts de la mise en production.
Étapes suivantes
Analysez les données de votre enquête, consultez : Fin des journaux d’enquête d’appel
En savoir plus sur la fin de l’enquête d’appel, consultez : Vue d’ensemble de l’enquête de fin d’appel
Découvrez comment utiliser l’espace de travail Log Analytics, et pour cela consultez : Tutoriel Log Analytics
Créez vos propres requêtes dans Log Analytics, consultez : Requêtes de démarrage