次の方法で共有


通話終了アンケートを使用してユーザーフィードバックを収集する

このチュートリアルでは、Azure Communication Services の通話終了アンケートを使用する方法について説明します。

[前提条件]

Important

通話終了アンケートは、Calling SDK のバージョン 1.13.1 以降で使用できます。 手順を試すときは、必ずそのバージョン以降を使用してください。

  • Node.js のアクティブな長期サポート (LTS) バージョンをお勧めします。

API の使用例

通話終了後は、通話の終了調査機能を使用する必要があります。 ユーザーは、任意の種類の VoIP 通話、1:1、グループ、会議、発信、着信を評価できます。 ユーザーの呼び出しが終了すると、アプリケーションはエンド ユーザーに UI を表示して評価スコアを選択できます。必要に応じて、定義済みの一覧から通話中に発生した問題を選択します。

次のコード切り取りは、1 対 1 の呼び出しの例を示しています。 呼び出しの終了後、アプリケーションはアンケート UI を表示でき、ユーザーが評価を選択すると、アプリケーションは機能 API を呼び出して、ユーザーの選択を含むアンケートを送信する必要があります。

既定の評価スケールを使用することをお勧めします。 ただし、カスタム評価スケールを使用してアンケートを送信することはできます。 サンプル API の使用に関する サンプル アプリケーション を確認できます。

通信料のみに限定し、カスタムスケールは使用しない

call.feature(Features.CallSurvey).submitSurvey({
    overallRating: { score: 5 }, // issues are optional
}).then(() => console.log('survey submitted successfully'));

OverallRating は、すべてのアンケートに必要なカテゴリです。

通話のみ評価 - カスタム スケールと問題あり

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'));

サンプルの課題を使って、全体評価、オーディオ評価、ビデオ評価を行う

call.feature(Features.CallSurvey).submitSurvey({
    overallRating: { score: 3 },
    audioRating: { score: 4 },
    videoRating: { score: 3, issues: ['Freezes'] }
}).then(() => console.log('survey submitted successfully'))

SDK が送信できるエラーを処理する

call.feature(Features.CallSurvey).submitSurvey({
    overallRating: { score: 3 }
}).catch((e) => console.log('error when submitting survey: ' + e))

さまざまな種類のエラーを見つける

アンケートの送信中のエラー

データの検証に失敗した場合、またはアンケートを送信できない場合、API は次のエラー メッセージを返します。

  • 少なくとも 1 つのアンケート評価が必要です。

  • 既定のスケールでは、X は 1 から 5 にする必要があります。 - X は次のいずれかです。

    • 全体評価.スコア
    • audioRating.score
    • videoRating.score
    • ScreenshareRating.score
  • {propertyName}: {rating.score} は {rating.scale?.lowerBound} と {rating.scale?.upperBound} の間にする必要があります。

  • {propertyName}: {rating.scale?.lowScoreThreshold} は {rating.scale?.lowerBound} と {rating.scale?.upperBound} の間である必要があります。

  • {propertyName} lowerBound: {rating.scale?.lowerBound} と upperBound: {rating.scale?.upperBound} は 0 から 100 の間である必要があります。

  • 再度お試しください[ネットワークまたはその他のエラーにより、ACSが調査を提出できませんでした]。

エラー コードをメッセージと共に返します。

  • 1 つを除くすべてのエラー メッセージのエラー コード 400 (無効な要求)。
{ message: validationErrorMessage, code: 400 }
  • イベントが破棄されたときの 1 回の 408 (タイムアウト):
{ message: "Please try again.", code: 408 }

可能性のあるすべての値

既定のアンケート API 構成

API の評価カテゴリ カットオフ値* 入力範囲 Comments
全体通話 2 1 - 5 通話参加者の全体的な品質エクスペリエンスを 1 から 5 のスケールで調査します。 応答 1 は通話エクスペリエンスが不完全であることを示し、応答 5 は通話が完全であることを示します。 カットオフ値 2 は、1 または 2 の顧客応答が完全な通話エクスペリエンス未満であることを意味します。
オーディオ 2 1 - 5 応答が 1 の場合は、オーディオ エクスペリエンスが不完全であることを示し、5 はオーディオの問題が発生しなかった場合を示します。
Video 2 1 - 5 応答が 1 の場合はビデオ エクスペリエンスが不完全であることを示し、5 はビデオの問題が発生しなかった場合を示します。
Screenshare 2 1 - 5 応答 1 は画面共有エクスペリエンスが不完全であることを示し、5 は画面共有の問題が発生しなかった場合を示します。

API で示されている質問のカットオフ値は、Microsoft がアンケート データを分析するときに使用するしきい値です。 カットオフ値または入力範囲をカスタマイズすると、Microsoft はカスタマイズに従ってアンケート データを分析します。

その他のアンケート タグ

評価カテゴリ 省略可能なタグ
全体通話 CallCannotJoin CallCannotInvite HadToRejoin CallEndedUnexpectedly OtherIssues
オーディオ 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

カスタマイズ オプション

4 つの API 値のそれぞれを収集するか、最も重要な API 値のみを収集することを選択できます。 たとえば、音声、ビデオ、画面共有のエクスペリエンスについて質問するのではなく、全体的な通話エクスペリエンスについてのみ顧客に質問することができます。 また、ニーズに合わせて入力範囲をカスタマイズすることもできます。 既定の入力範囲は、Overall Call、Audio、Video、Screenshare の場合、1 から 5 です。 ただし、各 API 値は、最小 0 から最大 100 までカスタマイズできます。

カスタマイズの例

API の評価カテゴリ カットオフ値* 入力範囲
全体通話 0 - 100 0 - 100
オーディオ 0 - 100 0 - 100
Video 0 - 100 0 - 100
Screenshare 0 - 100 0 - 100

API で示されている質問のカットオフ値は、Microsoft がアンケート データを分析するときに使用するしきい値です。 カットオフ値または入力範囲をカスタマイズすると、Microsoft はカスタマイズに従ってアンケート データを分析します。

カスタムの質問

End of Call Survey API を使用するだけでなく、独自のアンケートの質問を作成し、それらを通話終了アンケートの結果に組み込むことができます。 以下では、独自の顧客の質問をアンケートに組み込み、End of Call Survey API の結果と独自のアンケートの質問にクエリを実行する手順を示します。

AppInsights を使用して送信されたユーザー応答は、App Insights ワークスペースで利用できます。 ワークブックを使用して、複数のリソース間でクエリを実行し、通話評価とカスタムアンケートデータを関連付けることができます。 通話評価とカスタムアンケートデータを関連付ける手順:

  • 新しい ワークブック (ACSリソース -> 監視 -> ワークブック -> 新規) を作成し、ACSリソースからコールサーベイデータをクエリします。
  • 新しいクエリの追加 (+Add -> クエリの追加)
  • Data sourceLogsであり、Resource typeCommunication
  • クエリの名前を変更できます (詳細設定 -> ステップ名 [例: call-survey])
  • 調査データが Azure portal に表示されるまでに最大 2 時間 かかる場合があることに注意してください。 通話評価データのクエリを実行する-
    ACSCallSurvey
    | where TimeGenerated > now(-24h)
    
  • App Insights からデータを取得する別のクエリを追加する (+Add -> クエリの追加)
  • Data sourceLogsであり、Resource typeApplication Insights
  • カスタム イベントのクエリを実行する-
    customEvents
    | where timestamp > now(-24h)
    | where name == 'CallSurvey'
    | extend d=parse_json(customDimensions)
    | project SurveyId = d.id, ImprovementSuggestion = d.improvementSuggestion
    
  • クエリの名前を変更できます (詳細設定 -> ステップ名 [例: custom-call-survey])
  • 最後に、これら 2 つのクエリを surveyId でマージします。 新しいクエリを作成します (+Add -> クエリの追加)。
  • Data sourceが [マージ] になっていることを確認し、必要に応じてMerge typeを選択します

title: Azure Communication Services End of Call Survey titleSuffix: Azure Communication Services チュートリアル ドキュメントの説明: 通話終了アンケートを使用してユーザー フィードバックを収集する方法について説明します。 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

Important

通話終了アンケートは、Android Calling SDK のバージョン 2.10.0 以降で利用できます。 手順を試すときは、必ずそのバージョン以降を使用してください。

API の使用例

通話終了後は、通話の終了調査機能を使用する必要があります。 ユーザーは、任意の種類の VoIP 通話、1:1、グループ、会議、発信、着信を評価できます。 ユーザーの呼び出しが終了すると、アプリケーションはエンド ユーザーに UI を表示して評価スコアを選択できます。必要に応じて、定義済みの一覧から通話中に発生した問題を選択します。

次のコード切り取りは、1 対 1 の呼び出しの例を示しています。 呼び出しの終了後、アプリケーションはアンケート UI を表示でき、ユーザーが評価を選択すると、アプリケーションは機能 API を呼び出して、ユーザーの選択を含むアンケートを送信する必要があります。

既定の評価スケール (5 つ星評価 ( 1 から 5 の間) を使用することをお勧めします。 ただし、カスタム評価スケールを使用してアンケートを送信することはできます。

アンケートを開始する

アンケートを開始して、 CallSurvey オブジェクトを作成します。 これにより、アンケートの意図が記録されます。 この特定の CallSurvey オブジェクトが後で送信されない場合は、アンケートがエンド カスタマーによってスキップまたは無視されたことを意味します。

SurveyCallFeature surveyCallFeature = call.feature(Features.SURVEY);
try {
    CallSurvey survey = surveyCallFeature.startSurvey().get();
} catch (InterruptedException | ExecutionException e) {
    // failure to start survey
}

一般的な使用

評価呼び出しの場合は、スケール フィールドで定義されている値を考慮する必要があります。 LowerBound の値は、可能な限り最悪のエクスペリエンスを示します。上限の値は完全なエクスペリエンスを意味します。 どちらの値も包括的です。

OverallRating は、すべてのアンケートに必要なカテゴリです。

API で示されている質問のカットオフ値は、Microsoft がアンケート データを分析するときに使用するしきい値です。 カットオフ値または入力範囲をカスタマイズすると、Microsoft はカスタマイズに従ってアンケート データを分析します。

アンケートの推奨用途の詳細については、「アンケートの概念」を参照してください。

通信料のみに限定し、カスタムスケールは使用しない

SurveyScore overall = new SurveyScore();
overall.setScore(5);
callSurvey.setOverallScore(overall);

通話のみ評価 - カスタム スケールと問題あり

// 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);

サンプルの課題を使って、全体評価、オーディオ評価、ビデオ評価を行う

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

アンケートを送信し、SDK が送信できるエラーを処理する

try {
    CallSurveyResult survey = surveyCallFeature.submitSurvey(survey).get();
} catch (InterruptedException e) {
    // Threading error
} catch (ExecutionException e) {
    Log.e("SURVEY", e.getCause().getMessage());
}

さまざまな種類のエラーを見つける

アンケートの送信中のエラー:

submitSurvey API は、次のシナリオでエラーを返す可能性があります。

  • 全体的なアンケート評価が必要です。

  • CallSurveyRatingScale 境界は 0 と 100 の範囲内である必要があります。 LowerBound は UpperBound よりも小さくなければなりません。 LowScoreThreshold は範囲内にある必要があります。

  • スコアは、CallSurveyRatingScaleによって定義された境界を尊重しなければなりません。 CallSurveyRatingScale オブジェクト内のすべての値が含まれます。 既定のスケールを使用する場合、スコア値は 1 から 5 の間である必要があります。

  • ネットワーク/サービス エラーのため、アンケートを送信できません。

利用可能なアンケート タグ

総合呼び出し

タグ Description
CannotJoin 顧客が通話に参加できなかった
CannotInvite 顧客が通話に新しい参加者を追加できなかった
HadToRejoin 問題の回避策として、顧客が退出し、再度呼び出しに参加しました
CallEndedUnexpectedly お客様の通話は、明らかな理由なく終了しました
OtherIssues 前の説明に適合しない問題

オーディオの問題

タグ Description
NoLocalAudio 通話から顧客のコンピューターに音声がない、通話中の誰も聞こえない
NoRemoteAudio 特定の参加者からのオーディオが見つからない
Echo 通話中にエコーが認識される
AudioNoise 意図しないノイズで受信されたオーディオ
LowVolume オーディオが低すぎる
AudioStoppedUnexpectedly 明白な理由がないままオーディオが停止した(例えば、誰もミュートにされていないなど)
DistortedSpeech 参加者の声が、予想される音声とは異なり、歪んでいる
AudioInterruption お客様が音声の中断や音が途切れるなどの問題を経験しています。
OtherIssues 前の説明に適合しない問題

ビデオの問題

タグ Description
NoVideoReceived 顧客が参加者からビデオを受信しない
NoVideoSent 顧客がビデオを開始するが、通話中の誰もそれを見ることができない
LowQuality 低品質のビデオ
Freezes ビデオがフリーズする
StoppedUnexpectedly 明確な理由なしで画面共有が停止する (カメラがオンになっている、ビデオ通話がオンになっているなど)
DarkVideoReceived ビデオは送信中ですが、参加者には濃いボックス (または別の単一の色) のみが表示されます
AudioVideoOutOfSync ビデオとオーディオが同期していないようです
OtherIssues 前の説明に適合しない問題

画面共有の問題

タグ Description
NoContentLocal 顧客が参加者からの画面共有を受信できない。
NoContentRemote ユーザーが画面を共有しているが、他の複数の参加者が見ることができない
CannotPresent 画面共有を開始できない
LowQuality 画面共有ビデオの品質が低い(読めないなど)
Freezes プレゼンテーション中に画面共有がフリーズする
StoppedUnexpectedly 画面共有が明確な理由なしで停止する (たとえば、画面共有が顧客によって停止されなかった)
LargeDelay 表示されているものと視認しているものとの間に遅れが感じられる
OtherIssues 前の説明に適合しない問題

カスタマイズ オプション

4 つの API 値のそれぞれを収集するか、最も重要な API 値のみを収集することを選択できます。 たとえば、音声、ビデオ、画面共有のエクスペリエンスについて質問するのではなく、全体的な通話エクスペリエンスについてのみ顧客に質問することができます。 また、ニーズに合わせて入力範囲をカスタマイズすることもできます。 既定の入力範囲は、通話全体、音声、ビデオ、画面共有の場合、1 から 5 です。 ただし、各 API 値は、最小 0 から最大 100 までカスタマイズできます。

API で示されている質問のカットオフ値は、Microsoft がアンケート データを分析するときに使用するしきい値です。 カットオフ値または入力範囲をカスタマイズすると、Microsoft はカスタマイズに従ってアンケート データを分析します。

カスタムの質問

End of Call Survey API を使用するだけでなく、独自のアンケートの質問を作成し、それらを通話終了アンケートの結果に組み込むことができます。

SubmitSurvey操作の結果ペイロードは、ACS Survey データを独自のカスタム データとストレージに関連付けるために使用できるデータを提供します。 CallSurveyResult クラスには、アンケートの一意の識別子を表す SurveyId フィールドがあり、 CallId はアンケートが生成された呼び出しの識別子を表します。 これらの識別子をカスタマイズしたデータと共に保存すると、データを一意に関連付けられます。

Important

End of Call Survey は、iOS Calling SDK のバージョン 2.10.0 以降で使用できます。 手順を試すときは、必ずそのバージョン以降を使用してください。

API の使用例

通話終了後は、通話の終了調査機能を使用する必要があります。 ユーザーは、任意の種類の VoIP 通話、1:1、グループ、会議、発信、着信を評価できます。 ユーザーの呼び出しが終了すると、アプリケーションはエンド ユーザーに UI を表示して評価スコアを選択できます。必要に応じて、定義済みの一覧から通話中に発生した問題を選択します。

次のコード切り取りは、1 対 1 の呼び出しの例を示しています。 呼び出しの終了後、アプリケーションはアンケート UI を表示でき、ユーザーが評価を選択すると、アプリケーションは機能 API を呼び出して、ユーザーの選択を含むアンケートを送信する必要があります。

既定の評価スケール (5 つ星評価 ( 1 から 5 の間) を使用することをお勧めします。 ただし、カスタム評価スケールを使用してアンケートを送信することはできます。

アンケートを開始する

アンケートを開始して、 CallSurvey オブジェクトを作成します。 これにより、アンケートの意図が記録されます。 この特定の CallSurvey オブジェクトが後で送信されない場合は、アンケートがエンド カスタマーによってスキップまたは無視されたことを意味します。

var surveyCallFeature = self.call.feature(Features.survey)
do {
    try self.callSurvey = await surveyFeature.startSurvey()
} catch {
    print("Failure to start survey")
}

一般的な使用

評価呼び出しの場合は、スケール フィールドで定義されている値を考慮する必要があります。 LowerBound の値は、可能な限り最悪のエクスペリエンスを示します。上限の値は完全なエクスペリエンスを意味します。 どちらの値も包括的です。

OverallRating は、すべてのアンケートに必要なカテゴリです。

アンケートの推奨用途の詳細については、「アンケートの概念」を参照してください。

API で示されている質問のカットオフ値は、Microsoft がアンケート データを分析するときに使用するしきい値です。 カットオフ値または入力範囲をカスタマイズすると、Microsoft はカスタマイズに従ってアンケート データを分析します。

通信料のみに限定し、カスタムスケールは使用しない

let overallScore = SurveyScore()
overallScore.score = Int32(5)
callSurvey.overallScore = overallScore

通話のみ評価 - カスタム スケールと問題あり

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

サンプルの課題を使って、全体評価、オーディオ評価、ビデオ評価を行う

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

アンケートを送信し、SDK が送信できるエラーを処理する

do {
    var result =  try await self.surveyFeature!.submit(survey: callSurvey)
} catch let error as NSError {
    print("==> Survey Not Submitted " + error.localizedDescription)
}

さまざまな種類のエラーを見つける

アンケートの送信中のエラー:

submitSurvey API は、次のシナリオでエラーを返す可能性があります。

  • 全体的なアンケート評価が必要です。

  • CallSurveyRatingScale 境界は 0 と 100 の範囲内である必要があります。 LowerBound は UpperBound よりも小さくなければなりません。 LowScoreThreshold は範囲内にある必要があります。

  • スコアは、CallSurveyRatingScaleによって定義された境界を尊重しなければなりません。 CallSurveyRatingScale オブジェクト内のすべての値が含まれます。 既定のスケールを使用する場合、スコア値は 1 から 5 の間である必要があります。

  • ネットワーク/サービス エラーのため、アンケートを送信できません。

利用可能なアンケート タグ

全体通話

タグ Description
CannotJoin 顧客が通話に参加できなかった
CannotInvite 顧客が通話に新しい参加者を追加できなかった
HadToRejoin 問題の回避策として、顧客が退出し、再度呼び出しに参加しました
CallEndedUnexpectedly お客様の通話は、明らかな理由なく終了しました
OtherIssues 前の説明に適合しない問題

オーディオの問題

タグ Description
NoLocalAudio 通話から顧客のコンピューターに音声がない、通話中の誰も聞こえない
NoRemoteAudio 特定の参加者からのオーディオが見つからない
Echo 通話中にエコーが認識される
AudioNoise 意図しないノイズで受信されたオーディオ
LowVolume オーディオが低すぎる
AudioStoppedUnexpectedly 明白な理由がないままオーディオが停止した(例えば、誰もミュートにされていないなど)
DistortedSpeech 参加者の声が、予想される音声とは異なり、歪んでいる
AudioInterruption お客様が音声の中断や音が途切れるなどの問題を経験しています。
OtherIssues 前の説明に適合しない問題

ビデオの問題

タグ Description
NoVideoReceived 顧客が参加者からビデオを受信しない
NoVideoSent 顧客がビデオを開始するが、通話中の誰もそれを見ることができない
LowQuality 低品質のビデオ
Freezes ビデオがフリーズする
StoppedUnexpectedly 明確な理由なしで画面共有が停止する (カメラがオンになっている、ビデオ通話がオンになっているなど)
DarkVideoReceived ビデオは送信中ですが、参加者には濃いボックス (または別の単一の色) のみが表示されます
AudioVideoOutOfSync ビデオとオーディオが同期していないようです
OtherIssues 前の説明に適合しない問題

画面共有の問題

タグ Description
NoContentLocal 顧客が参加者からの画面共有を受信できない。
NoContentRemote ユーザーが画面を共有しているが、他の複数の参加者が見ることができない
CannotPresent 画面共有を開始できない
LowQuality 画面共有ビデオの品質が低い(読めないなど)
Freezes プレゼンテーション中に画面共有がフリーズする
StoppedUnexpectedly 画面共有が明確な理由なしで停止する (画面共有が顧客によって停止されなかったなど)
LargeDelay 表示されているものと視認しているものとの間に遅れが感じられる
OtherIssues 前の説明に適合しない問題

カスタマイズ オプション

4 つの API 値のそれぞれを収集するか、最も重要な API 値のみを収集することを選択できます。 たとえば、音声、ビデオ、画面共有のエクスペリエンスについて質問するのではなく、全体的な通話エクスペリエンスについてのみ顧客に質問することができます。 また、ニーズに合わせて入力範囲をカスタマイズすることもできます。 既定の入力範囲は、通話全体、音声、ビデオ、画面共有の場合、1 から 5 です。 ただし、各 API 値は、最小 0 から最大 100 までカスタマイズできます。

API で示されている質問のカットオフ値は、Microsoft がアンケート データを分析するときに使用するしきい値です。 カットオフ値または入力範囲をカスタマイズすると、Microsoft はカスタマイズに従ってアンケート データを分析します。

カスタムの質問

End of Call Survey API を使用するだけでなく、独自のアンケートの質問を作成し、それらを通話終了アンケートの結果に組み込むことができます。

ただし、 SubmitSurvey 操作の結果ペイロードは、ACS Survey データを独自のカスタム データとストレージに関連付けるために使用できるデータを提供します。 CallSurveyResult クラスには、アンケートの一意の識別子を表す SurveyId フィールドがあり、 CallId はアンケートが生成された呼び出しの識別子を表します。 これらの識別子をカスタマイズしたデータと共に保存すると、データを一意に関連付けられます。

Important

End of Call Survey は、Windows Calling SDK のバージョン 1.8.0 以降で使用できます。 手順を試すときは、必ずそのバージョン以降を使用してください。

API の使用例

通話終了後は、通話の終了調査機能を使用する必要があります。 ユーザーは、任意の種類の VoIP 通話、1:1、グループ、会議、発信、着信を評価できます。 ユーザーの呼び出しが終了すると、アプリケーションはエンド ユーザーに UI を表示して評価スコアを選択できます。必要に応じて、定義済みの一覧から通話中に発生した問題を選択します。

次のコード切り取りは、1 対 1 の呼び出しの例を示しています。 呼び出しの終了後、アプリケーションはアンケート UI を表示でき、ユーザーが評価を選択すると、アプリケーションは機能 API を呼び出して、ユーザーの選択を含むアンケートを送信する必要があります。

既定の評価スケール (5 つ星評価 ( 1 から 5 の間) を使用することをお勧めします。 ただし、カスタム評価スケールを使用してアンケートを送信することはできます。

アンケートを開始する

アンケートを開始して、 CallSurvey オブジェクトを作成します。 これにより、アンケートの意図が記録されます。 この特定の CallSurvey オブジェクトが後で送信されない場合は、アンケートがエンド カスタマーによってスキップまたは無視されたことを意味します。

var surveyCallFeature = call.Features.Survey;
var survey = await surveyCallFeature.StartSurveyAsync();

一般的な使用

評価呼び出しの場合は、スケール フィールドで定義されている値を考慮する必要があります。 LowerBound の値は、可能な限り最悪のエクスペリエンスを示します。上限の値は完全なエクスペリエンスを意味します。 どちらの値も包括的です。

OverallRating は、すべてのアンケートに必要なカテゴリです。

アンケートの推奨用途の詳細については、「アンケートの概念」を参照してください。

API で示されている質問のカットオフ値は、Microsoft がアンケート データを分析するときに使用するしきい値です。 カットオフ値または入力範囲をカスタマイズすると、Microsoft はカスタマイズに従ってアンケート データを分析します。

通信料のみに限定し、カスタムスケールは使用しない

survey.OverallScore = new CallSurveyScore() { Score = 5 };

通話のみ評価 - カスタム スケールと問題あり

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

サンプルの課題を使って、全体評価、オーディオ評価、ビデオ評価を行う

survey.OverallScore = new CallSurveyScore() { 
    Score = 5 
};
survey.AudioScore = new CallSurveyScore() { 
    Score = 4
};
survey.VideoScore = new CallSurveyScore() { 
    Score = 3
};

survey.videoIssues = VideoIssues.Freezes;

アンケートを送信し、SDK が送信できるエラーを処理する

try
{
    CallSurveyResult result = await surveyCallFeature.SubmitSurveyAsync(survey);
    Console.WriteLine("Survey submitted" + result.SurveyId);
} catch (Exception ex)
{
   Console.WriteLine(ex.Message);
}

さまざまな種類のエラーを見つける

アンケートの送信中のエラー:

submitSurvey API は、次のシナリオでエラーを返す可能性があります。

  • 全体的なアンケート評価が必要です。

  • CallSurveyRatingScale 境界は 0 と 100 の範囲内である必要があります。 LowerBound は UpperBound よりも小さくなければなりません。 LowScoreThreshold は範囲内にある必要があります。

  • スコアは、CallSurveyRatingScaleによって定義された境界を尊重しなければなりません。 CallSurveyRatingScale オブジェクト内のすべての値が含まれます。 既定のスケールを使用する場合、スコア値は 1 から 5 の間である必要があります。

  • ネットワーク/サービス エラーのため、アンケートを送信できません。

利用可能なアンケート タグ

全体通話

タグ Description
CannotJoin 顧客が通話に参加できなかった
CannotInvite 顧客が通話に新しい参加者を追加できなかった
HadToRejoin 問題の回避策として、顧客が退出し、再度呼び出しに参加しました
EndedUnexpectedly お客様の通話は、明らかな理由なく終了しました
OtherIssues 前の説明に適合しない問題

オーディオの問題

タグ Description
NoLocalAudio 通話から顧客のコンピューターに音声がない、通話中の誰も聞こえない
NoRemoteAudio 特定の参加者からのオーディオが見つからない
Echo 通話中にエコーが認識される
AudioNoise 意図しないノイズで受信されたオーディオ
LowVolume オーディオが低すぎる
AudioStoppedUnexpectedly 明白な理由がないままオーディオが停止した(例えば、誰もミュートにされていないなど)
DistortedSpeech 参加者の声が、予想される音声とは異なり、歪んでいる
AudioInterruption お客様が音声の中断や音が途切れるなどの問題を経験しています。
OtherIssues 前の説明に適合しない問題

ビデオの問題

タグ Description
NoVideoReceived 顧客が参加者からビデオを受信しない
NoVideoSent 顧客がビデオを開始するが、通話中の誰もそれを見ることができない
LowQuality 低品質のビデオ
Freezes ビデオがフリーズする
StoppedUnexpectedly 明確な理由なしで画面共有が停止する (カメラがオンになっている、ビデオ通話がオンになっているなど)
DarkVideoReceived ビデオは送信中ですが、参加者には濃いボックス (または別の単一の色) のみが表示されます
AudioVideoOutOfSync ビデオとオーディオが同期していないようです
OtherIssues 前の説明に適合しない問題

画面共有の問題

タグ Description
NoContentLocal 顧客が参加者からの画面共有を受信できない。
NoContentRemote ユーザーが画面を共有しているが、他の複数の参加者が見ることができない
CannotPresent 画面共有を開始できない
LowQuality 画面共有ビデオの品質が低い(読めないなど)
Freezes プレゼンテーション中に画面共有がフリーズする
StoppedUnexpectedly 画面共有が明確な理由なしで停止する (たとえば、画面共有が顧客によって停止されなかった)
LargeDelay 表示されているものと視認しているものとの間に遅れが感じられる
OtherIssues 前の説明に適合しない問題

カスタマイズ オプション

4 つの API 値のそれぞれを収集するか、最も重要な API 値のみを収集することを選択できます。 たとえば、音声、ビデオ、画面共有のエクスペリエンスについて質問するのではなく、全体的な通話エクスペリエンスについてのみ顧客に質問することができます。 また、ニーズに合わせて入力範囲をカスタマイズすることもできます。 既定の入力範囲は、通話全体、音声、ビデオ、画面共有の場合、1 から 5 です。 ただし、各 API 値は、最小 0 から最大 100 までカスタマイズできます。

API で示されている質問のカットオフ値は、Microsoft がアンケート データを分析するときに使用するしきい値です。 カットオフ値または入力範囲をカスタマイズすると、Microsoft はカスタマイズに従ってアンケート データを分析します。

カスタムの質問

End of Call Survey API を使用するだけでなく、独自のアンケートの質問を作成し、それらを通話終了アンケートの結果に組み込むことができます。

ただし、 SubmitSurvey 操作の結果ペイロードは、ACS Survey データを独自のカスタム データとストレージに関連付けるために使用できるデータを提供します。 CallSurveyResult クラスには、アンケートの一意の識別子を表す SurveyId フィールドがあり、 CallId はアンケートが生成された呼び出しの識別子を表します。 これらの識別子をカスタマイズしたデータと共に保存すると、データを一意に関連付けられます。

アンケート データを収集する

Important

調査データを受信して分析するには、Azure Monitor で診断設定を有効にして、アンケートのログ データを Log Analytics ワークスペース、Event Hubs、または Azure ストレージ アカウントに送信する必要があります。 これらのオプションのいずれかにアンケート データを送信しない場合、アンケート データは保存されず、失われます。 Communications Services でこれらのログを有効にするには、「通話終了調査ログ」を参照してください。

Log Analytics ワークスペースを使用してアンケート データを表示する

アンケートのログ データを格納し、アンケート結果にアクセスするには、Log Analytics ワークスペースを有効にする必要があります。 Communications Service でこれらのログを有効にするには、「 通話終了調査ログ」を参照してください。

ベスト プラクティス

ここでは、推奨されるアンケート フローと、検討すべき質問プロンプトを示します。 開発では、推奨事項を使用するか、カスタマイズされた質問プロンプトとフローをビジュアル インターフェイスに使用できます。

質問 1: ユーザーは全体的な通話品質エクスペリエンスをどのように認識しましたか? 参加者の全体的な品質についてのみ質問して、アンケートを開始することをお勧めします。 最初の質問と 2 番目の質問を分けた場合は、アンケート参加者が通話品質の問題が発生したと示された場合にのみ、音声、ビデオ、画面共有の問題に対する回答を収集するのに役立ちます。

  • 推奨されるプロンプト: "通話の品質はどうでしたか?
  • API 質問の値: 全体的な通話

質問 2: ユーザーは通話中にオーディオ、ビデオ、画面共有の問題を認識しましたか? アンケート参加者が、通話全体のカットオフ値以下のスコアで質問 1 に回答した場合は、2 番目の質問を提示します。

  • 推奨されるプロンプト: "より良かったのは何ですか?
  • API の質問値: オーディオ、ビデオ、スクリーン共有

測量ガイドライン

  • 調査の疲弊を回避し、すべての通話参加者を調査しないでください。
  • 質問の順序が重要です。 質問 2 の省略可能なタグのシーケンスをランダム化することをお勧めします。回答者が最初に視覚的に表示するプロンプトにほとんどのフィードバックが集中する場合に備えます。
  • 制御された実験で個別の Azure Communication Services リソースにアンケートを使用して、リリースの影響を特定することを検討してください。

次のステップ