Partager via


Utiliser la fin de l’enquête sur les appels pour collecter les commentaires des utilisateurs

Ce tutoriel vous montre comment utiliser l’enquête de fin d’appel Azure Communication Services.

Prerequisites

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 une version ultérieure 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 sur les appels 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 lui permettant de choisir un score d’évaluation et, si nécessaire, choisir les problèmes rencontrés pendant l’appel dans notre liste prédéfinie.

Les snips de code suivants montrent 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 choisit une évaluation, votre application doit appeler l’API de fonctionnalité pour envoyer l’enquête avec les choix de l’utilisateur.

Nous vous encourageons à utiliser l’échelle d’évaluation par défaut. Toutefois, vous pouvez soumettre une enquête avec une échelle d’évaluation personnalisée. Vous pouvez consulter 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 l’envoi 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 note de sondage est requise.

  • Dans la mise à l’échelle par défaut, X doit être de 1 à 5. - où X est l’un des éléments suivants :

    • overallRating.score
    • audioRating.score
    • videoRating.score
    • ScreenshareRating.score
  • {propertyName} : {rating.score} doit être compris entre {rating.scale ?. lowerBound} et {rating.scale ?. upperBound}.

  • {propertyName} : {rating.scale ?. lowScoreThreshold} doit être compris entre {rating.scale ?. lowerBound} et {rating.scale ?. upperBound}.

  • {propertyName} lowerBound : {rating.scale ?. lowerBound} et upperBound : {rating.scale ?. upperBound} doit être compris entre 0 et 100.

  • Réessayez [ACS n’a pas pu envoyer d’enquête, en raison d’une erreur réseau ou autre].

Nous retournerons tous les codes d’erreur avec un message.

  • Code d’erreur 400 (demande incorrecte) pour tous les messages d’erreur à l’exception d’un.
{ message: validationErrorMessage, code: 400 }
  • Un code d’erreur 408 (délai d’expiration) lorsque l’événement est 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 des API Valeur de coupure* Plage d’entrée Commentaires
Appel global 2 1 - 5 Enquête sur l’expérience de qualité globale d’un participant appelant 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 coupure de 2 signifie qu’une réponse cliente 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 incorrecte et 5 indique qu’aucun problème audio n’a été rencontré.
Video 2 1 - 5 Une réponse de 1 indique une expérience vidéo incorrecte et 5 indique qu’aucun problème vidéo n’a été rencontré.
Screenshare 2 1 - 5 Une réponse de 1 indique une expérience de partage d’écran incorrecte et 5 indique qu’aucun problème de partage d’écran n’a été rencontré.

Note

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 coupure 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
Video NoVideoReceived NoVideoSent LowQuality Freezes StoppedUnexpectedly DarkVideoReceived AudioVideoOutOfSync OtherIssues
Screenshare 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 la plus importante. Par exemple, vous pouvez choisir de demander uniquement aux clients leur expérience d’appel globale au lieu de les demander sur leur expérience audio, vidéo et 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 de 1 à 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 à 100 maximum.

Exemples de personnalisation

Catégories d’évaluation des API Valeur de coupure* Plage d’entrée
Appel global 0 - 100 0 - 100
Audio 0 - 100 0 - 100
Video 0 - 100 0 - 100
Screenshare 0 - 100 0 - 100

Note

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 coupure ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.

Questions personnalisées

Outre l'utilisation de l'API de l'enquête de fin d'appel, vous pouvez créer vos propres questions d'enquête et les intégrer aux résultats de l'enquête de fin d'appel. Vous trouverez ci-dessous les étapes pour intégrer vos propres questions clients dans un sondage, ainsi que pour interroger les résultats de l'API End of Call Survey et de vos propres questions de sondage.

  • Créer une ressource App Insight.

  • Incorporer Azure AppInsights dans votre application Cliquez ici pour en savoir plus sur l’initialisation d’App Insight à l’aide de JavaScript brut. Vous pouvez également utiliser NPM pour obtenir les dépendances App Insights. Cliquez ici pour en savoir plus sur l’initialisation d’App Insight à l’aide de NPM.

  • Créez une interface utilisateur dans votre application qui répond aux questions personnalisées à l’utilisateur et rassemblez son entrée, supposons que votre application a collecté des réponses sous forme de chaîne dans la improvementSuggestion variable

  • Envoyez les résultats de l’enquête à ACS et envoyez une réponse utilisateur à l’aide d’App 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 à l’aide d’AppInsights sont disponibles sous votre espace de travail App Insights. Vous pouvez utiliser des classeurs pour interroger plusieurs ressources, mettre en corrélation les évaluations des appels et les données d’enquête personnalisées. Étapes de mise en corrélation des évaluations des appels et des 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)
  • Assurez-vous que Data source est Logs et Resource type est Communication
  • Vous pouvez renommer la requête (Paramètres avancés -> Nom de l’étape [exemple : call-survey])
  • Sachez qu’il peut nécessiter un maximum de 2 heures avant que les données d’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’App Insights (+Ajouter -> Ajouter une requête)
  • Assurez-vous que Data source est Logs et Resource type est Application 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 surveyId. Créer une requête (+Ajouter -> Ajouter une requête).
  • Assurez-vous que Data source est Fusionner et sélectionnez Merge 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

Enquête de fin d'appel est disponible à partir de la version 2.10.0 du SDK Android Calling. Veillez à utiliser cette version ou une version ultérieure lors de l’essai des instructions.

Exemple d’utilisation de l’API

La fonctionnalité Fin de l’enquête sur les appels 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 lui permettant de choisir un score d’évaluation et, si nécessaire, choisir les problèmes rencontrés pendant l’appel dans notre liste prédéfinie.

Les snips de code suivants montrent 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 choisit une évaluation, votre application doit appeler l’API de fonctionnalité pour envoyer l’enquête avec les choix de l’utilisateur.

Nous vous encourageons à utiliser l’échelle d’évaluation par défaut, qui est la cinq étoiles (entre 1 et 5). Toutefois, vous pouvez soumettre une enquête avec une échelle d’évaluation personnalisée.

Démarrer une enquête

Vous créez un CallSurvey objet en démarrant une enquête. Cela 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 signifie l’expérience parfaite. Les deux valeurs sont inclusives.

OverallRating est une catégorie obligatoire pour toutes les enquêtes.

Note

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 coupure 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 suggérée d’une enquête, consultez Concepts de l’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);

Envoyer l’enquête et gérer les erreurs que le Kit de développement logiciel (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 :

  • L’évaluation globale de l’enquête est requise.

  • CallSurveyRatingScale les limites doivent être comprises entre 0 et 100. LowerBound doit être inférieur à UpperBound. LowScoreThreshold doit se trouver dans des limites.

  • Les scores doivent respecter les limites définies par le CallSurveyRatingScale. Toutes les valeurs de l’objet CallSurveyRatingScale sont inclusives. À 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 envoyée en raison d’une erreur réseau/service.

Balises d’enquête disponibles

Appel global

Tag Descriptif
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 problème qui ne correspond pas aux descriptions précédentes

Problèmes audio

Tag Descriptif
NoLocalAudio Aucun audio sur l’ordinateur client de l’appel, incapacité d’entendre quiconque dans l’appel
NoRemoteAudio Audio manquant d’un participant spécifique
Echo Écho perçu dans l’appel
AudioNoise Son reçu avec un bruit inattendu
LowVolume Audio trop bas
AudioStoppedUnexpectedly Audio arrêté sans raison claire (par exemple, personne n’est en mode silencieux)
DistortedSpeech La voix d’un participant est déformée, différente de sa voix attendue
AudioInterruption Les clients rencontrent des interruptions audio, des coupures vocales, etc.
OtherIssues Tout problème qui ne correspond pas aux descriptions précédentes

Problèmes de vidéo

Tag Descriptif
NoVideoReceived Le client ne reçoit pas de vidéo d’un participant
NoVideoSent Le client démarre la vidéo, mais personne dans l’appel n’est en mesure de le voir
LowQuality Vidéo de faible qualité
Freezes La vidéo se fige
StoppedUnexpectedly Le partage d’écran s’arrête sans raison claire (par exemple, l’appareil photo est activé et l’appel vidéo est activé)
DarkVideoReceived La vidéo est envoyée, mais le participant ne voit qu’une zone sombre (ou une autre couleur unique)
AudioVideoOutOfSync La vidéo et l’audio ne semblent pas être synchronisées
OtherIssues Tout problème qui ne correspond pas aux descriptions précédentes

Problèmes de partage d’écran

Tag Descriptif
NoContentLocal Le client ne reçoit pas de partage d’écran d’un participant qui partage
NoContentRemote Le client partage l’écran, mais un ou plusieurs participants ne peuvent pas le voir
CannotPresent Impossible de démarrer le partage d’écran
LowQuality Faible qualité sur la vidéo de partage d’écran, par exemple impossible de lire
Freezes Le partage d’écran se bloque pendant la présentation
StoppedUnexpectedly Le partage d’écran s’arrête sans raison claire (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 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 la plus importante. Par exemple, vous pouvez choisir de demander uniquement aux clients leur expérience d’appel globale au lieu de les demander sur leur expérience audio, vidéo et 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 de 1 à 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 à 100 maximum.

Note

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 coupure ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.

Questions personnalisées

Outre l'utilisation de l'API de l'enquête de fin d'appel, vous pouvez créer vos propres questions d'enquête et les intégrer 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. CallSurveyResult la classe a le SurveyId champ 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 ainsi que vos données personnalisées permettent d’associer des données de manière unique.

Important

La fonctionnalité "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 une version ultérieure lors de l’essai des instructions.

Exemple d’utilisation de l’API

La fonctionnalité Fin de l’enquête sur les appels 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 lui permettant de choisir un score d’évaluation et, si nécessaire, choisir les problèmes rencontrés pendant l’appel dans notre liste prédéfinie.

Les snips de code suivants montrent 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 choisit une évaluation, votre application doit appeler l’API de fonctionnalité pour envoyer l’enquête avec les choix de l’utilisateur.

Nous vous encourageons à utiliser l’échelle d’évaluation par défaut, qui est la cinq étoiles (entre 1 et 5). Toutefois, vous pouvez soumettre une enquête avec une échelle d’évaluation personnalisée.

Démarrer une enquête

Vous créez un CallSurvey objet en démarrant une enquête. Cela 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 signifie l’expérience parfaite. Les deux valeurs sont inclusives.

OverallRating est une catégorie obligatoire pour toutes les enquêtes.

Pour plus d’informations sur l’utilisation suggérée d’une enquête, consultez Concepts de l’enquête

Note

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 coupure 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 ];

Envoyer l’enquête et gérer les erreurs que le Kit de développement logiciel (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 :

  • L’évaluation globale de l’enquête est requise.

  • CallSurveyRatingScale les limites doivent être comprises entre 0 et 100. LowerBound doit être inférieur à UpperBound. LowScoreThreshold doit se trouver dans des limites.

  • Les scores doivent respecter les limites définies par le CallSurveyRatingScale. Toutes les valeurs de l’objet CallSurveyRatingScale sont inclusives. À 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 envoyée en raison d’une erreur réseau/service.

Balises d’enquête disponibles

Appel global

Tag Descriptif
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 problème qui ne correspond pas aux descriptions précédentes

Problèmes audio

Tag Descriptif
NoLocalAudio Aucun audio sur l’ordinateur client de l’appel, incapacité d’entendre quiconque dans l’appel
NoRemoteAudio Audio manquant d’un participant spécifique
Echo Écho perçu dans l’appel
AudioNoise Son reçu avec un bruit inattendu
LowVolume Audio trop bas
AudioStoppedUnexpectedly Audio arrêté sans raison claire (par exemple, personne n’est en mode silencieux)
DistortedSpeech La voix d’un participant est déformée, différente de sa voix attendue
AudioInterruption Les clients rencontrent des interruptions audio, des coupures vocales, etc.
OtherIssues Tout problème qui ne correspond pas aux descriptions précédentes

Problèmes de vidéo

Tag Descriptif
NoVideoReceived Le client ne reçoit pas de vidéo d’un participant
NoVideoSent Le client démarre la vidéo, mais personne dans l’appel n’est en mesure de le voir
LowQuality Vidéo de faible qualité
Freezes La vidéo se fige
StoppedUnexpectedly Le partage d’écran s’arrête sans raison claire (par exemple, l’appareil photo est activé et l’appel vidéo est activé)
DarkVideoReceived La vidéo est envoyée, mais le participant ne voit qu’une zone sombre (ou une autre couleur unique)
AudioVideoOutOfSync La vidéo et l’audio ne semblent pas être synchronisées
OtherIssues Tout problème qui ne correspond pas aux descriptions précédentes

Problèmes de partage d’écran

Tag Descriptif
NoContentLocal Le client ne reçoit pas de partage d’écran d’un participant qui partage
NoContentRemote Le client partage l’écran, mais un ou plusieurs participants ne peuvent pas le voir
CannotPresent Impossible de démarrer le partage d’écran
LowQuality Faible qualité sur la vidéo de partage d’écran, par exemple impossible de lire
Freezes Le partage d’écran se bloque pendant la présentation
StoppedUnexpectedly Le partage d’écran s’arrête sans raison claire (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 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 la plus importante. Par exemple, vous pouvez choisir de demander uniquement aux clients leur expérience d’appel globale au lieu de les demander sur leur expérience audio, vidéo et 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 de 1 à 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 à 100 maximum.

Note

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 coupure ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.

Questions personnalisées

Outre l'utilisation de l'API de l'enquête de fin d'appel, vous pouvez créer vos propres questions d'enquête et les intégrer aux résultats de l'enquête de fin d'appel.

Toutefois, la charge utile de 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. CallSurveyResult la classe a le SurveyId champ 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 aux données d’être associées de manière unique.

Important

L'enquête de fin d'appel est disponible à partir de la version 1.8.0 du Windows Calling SDK. Veillez à utiliser cette version ou une version ultérieure lors de l’essai des instructions.

Exemple d’utilisation de l’API

La fonctionnalité Fin de l’enquête sur les appels 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 lui permettant de choisir un score d’évaluation et, si nécessaire, choisir les problèmes rencontrés pendant l’appel dans notre liste prédéfinie.

Les snips de code suivants montrent 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 choisit une évaluation, votre application doit appeler l’API de fonctionnalité pour envoyer l’enquête avec les choix de l’utilisateur.

Nous vous encourageons à utiliser l’échelle d’évaluation par défaut, qui est la cinq étoiles (entre 1 et 5). Toutefois, vous pouvez soumettre une enquête avec une échelle d’évaluation personnalisée.

Démarrer une enquête

Vous créez un CallSurvey objet en démarrant une enquête. Cela 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 signifie l’expérience parfaite. Les deux valeurs sont inclusives.

OverallRating est une catégorie obligatoire pour toutes les enquêtes.

Pour plus d’informations sur l’utilisation suggérée d’une enquête, consultez Concepts de l’enquête

Note

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 coupure 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;

Envoyer l’enquête et gérer les erreurs que le Kit de développement logiciel (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 :

  • L’évaluation globale de l’enquête est requise.

  • CallSurveyRatingScale les limites doivent être comprises entre 0 et 100. LowerBound doit être inférieur à UpperBound. LowScoreThreshold doit se trouver dans des limites.

  • Les scores doivent respecter les limites définies par le CallSurveyRatingScale. Toutes les valeurs de l’objet CallSurveyRatingScale sont inclusives. À 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 envoyée en raison d’une erreur réseau/service.

Balises d’enquête disponibles

Appel global

Tag Descriptif
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 problème qui ne correspond pas aux descriptions précédentes

Problèmes audio

Tag Descriptif
NoLocalAudio Aucun audio sur l’ordinateur client de l’appel, incapacité d’entendre quiconque dans l’appel
NoRemoteAudio Audio manquant d’un participant spécifique
Echo Écho perçu dans l’appel
AudioNoise Son reçu avec un bruit inattendu
LowVolume Audio trop bas
AudioStoppedUnexpectedly Audio arrêté sans raison claire (par exemple, personne n’est en mode silencieux)
DistortedSpeech La voix d’un participant est déformée, différente de sa voix attendue
AudioInterruption Les clients rencontrent des interruptions audio, des coupures vocales, etc.
OtherIssues Tout problème qui ne correspond pas aux descriptions précédentes

Problèmes vidéo

Tag Descriptif
NoVideoReceived Le client ne reçoit pas de vidéo d’un participant
NoVideoSent Le client démarre la vidéo, mais personne dans l’appel n’est en mesure de le voir
LowQuality Vidéo de faible qualité
Freezes La vidéo se fige
StoppedUnexpectedly Le partage d’écran s’arrête sans raison claire (par exemple, l’appareil photo est activé et l’appel vidéo est activé)
DarkVideoReceived La vidéo est envoyée, mais le participant ne voit qu’une zone sombre (ou une autre couleur unique)
AudioVideoOutOfSync La vidéo et l’audio ne semblent pas être synchronisées
OtherIssues Tout problème qui ne correspond pas aux descriptions précédentes

Problèmes de partage d’écran

Tag Descriptif
NoContentLocal Le client ne reçoit pas de partage d’écran d’un participant qui partage
NoContentRemote Le client partage l’écran, mais un ou plusieurs participants ne peuvent pas le voir
CannotPresent Impossible de démarrer le partage d’écran
LowQuality Faible qualité sur la vidéo de partage d’écran, par exemple impossible de lire
Freezes Le partage d’écran se bloque pendant la présentation
StoppedUnexpectedly Le partage d’écran s’arrête sans raison claire (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 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 la plus importante. Par exemple, vous pouvez choisir de demander uniquement aux clients leur expérience d’appel globale au lieu de les demander sur leur expérience audio, vidéo et 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 de 1 à 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 à 100 maximum.

Note

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 coupure ou la plage d’entrée, Microsoft analyse vos données d’enquête en fonction de votre personnalisation.

Questions personnalisées

Outre l'utilisation de l'API de l'enquête de fin d'appel, vous pouvez créer vos propres questions d'enquête et les intégrer aux résultats de l'enquête de fin d'appel.

Toutefois, la charge utile de 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. CallSurveyResult la classe a le SurveyId champ 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 ainsi que vos données personnalisées permettent d’associer des données de manière unique.

Collecter des données d’enquête

Important

Vous devez activer un paramètre de diagnostic dans Azure Monitor pour envoyer les données de journal de vos enquêtes à un espace de travail Log Analytics, Event Hubs ou un compte de stockage Azure pour recevoir et analyser vos données d’enquête. Si vous n’envoyez pas de données d’enquête à l’une de ces options, vos données d’enquête ne seront pas stockées et seront perdues. Pour activer ces journaux pour vos services de communication, consultez : Journaux de fin d'enquête des appels

Afficher les données d’enquête avec un espace de travail Log Analytics

Vous devez activer un espace de travail Log Analytics pour stocker les données de journal de vos enquêtes et accéder aux résultats de l’enquête. Pour activer ces journaux pour votre Service de Communication, consultez : Fin des journaux d’enquête d’appel.

Meilleures pratiques

Voici nos flux d’enquête recommandés et les invites de questions suggérées pour examen. Votre développement peut adopter notre recommandation ou opter pour des questions et flux personnalisés pour votre interface visuelle.

Question 1 : Comment les utilisateurs ont-ils perçu leur expérience globale de qualité des appels ? Nous vous recommandons de commencer l’enquête en vous demandant uniquement la qualité globale des participants. Si vous séparez les premières et deuxième questions, il permet 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 perçu des problèmes audio, vidéo ou partage d’écran dans l’appel ? Si un participant de l’enquête a répondu à la question 1 avec un score à ou en dessous de la valeur de coupure pour l’appel global, présentez la deuxième question.

  • Invite suggérée : « Qu’est-ce qui aurait pu être mieux ? »
  • Valeurs des questions d’API : audio, vidéo et partage d’écran

Recommandations en matière d’enquête

  • Évitez le burn-out de l’enquête, n’interrogez pas tous les participants aux appels.
  • 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 d’utiliser des enquêtes pour des ressources Azure Communication Services distinctes dans des expériences contrôlées afin d’identifier les impacts des mises en production.

Étapes suivantes