使用通話結束後問卷來收集使用者意見反應
本教學課程說明如何使用 Azure 通訊服務通話結束後問卷。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 使用中的通訊服務資源。 建立通訊服務資源。 調查結果會繫結至單一通訊服務資源。
- 作用中的 Log Analytics 工作區,也稱為 Azure 監視器記錄。 請參閱通話結束後問卷記錄。
- 若要使用自由格式文字,搭配自訂問題進行問卷調查,您需要 App Insight 資源。
重要
從通話 SDK 1.13.1 版開始提供通話結束後問卷。 嘗試執行指示時,請務必使用該版本或更新版本。
- 建議使用 Node.js 的有效長期支援 (LTS) 版本。
API 使用範例
在通話結束之後,應該使用通話結束後問卷。 使用者可以對任何類型的 VoIP 通話、1:1、群組、會議、撥出和撥入進行評等。 一旦使用者的通話結束,您的應用程式就可以向終端使用者顯示 UI,讓其可以選擇評等分數,如有需要,請從預先定義的清單中挑選其在通話期間遇到的問題’。
下列程式碼片段顯示一對一通話的範例。 在通話結束之後,您的應用程式可以顯示問卷 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 會傳回下列錯誤訊息。
至少需要一個問卷評等。
在預設尺度中,X 應該是 1 到 5。 - 其中 X 為下列其中一個:
- overallRating.score
- 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 無法提交問卷,因為發生網路或其他錯誤]。
我們會傳回任何含有訊息的錯誤碼。
- 除了一則錯誤訊息外,所有錯誤訊息都有錯誤碼 400 (不正確的要求)。
{ message: validationErrorMessage, code: 400 }
- 捨棄事件時,出現 408 (逾時):
{ message: "Please try again.", code: 408 }
所有可能值
預設問卷 API 設定
API 評等類別 | 截止值* | 輸入範圍 | 註解 |
---|---|---|---|
整體通話 | 2 | 1 -5 | 調查通話參與者的整體品質體驗,尺度為 1-5。 回應 1 表示通話體驗不完美,而 5 表示完美通話。 截止值 2 表示客戶回應若為 1 或 2,指出低於完美通話體驗。 |
音訊 | 2 | 1 -5 | 回應 1 表示音訊體驗不完美,而 5 表示未遇到任何音訊問題。 |
影片 | 2 | 1 -5 | 回應 1 表示影片體驗不完美,而 5 表示未遇到任何影片問題。 |
螢幕共用 | 2 | 1 -5 | 回應 1 表示螢幕共用體驗不完美,而 5 表示未遇到任何螢幕共用問題。 |
注意
API 中問題的指定截止值是 Microsoft 在分析問卷資料時所使用的閾值。 當您自訂截止值或輸入範圍時,Microsoft 會根據您的自訂來分析問卷資料。
其他問卷標籤
評等類別 | 選擇性標籤 |
---|---|
整體通話 | CallCannotJoin CallCannotInvite HadToRejoin CallEndedUnexpectedly OtherIssues |
音訊 | NoLocalAudio NoRemoteAudio Echo AudioNoise LowVolume AudioStoppedUnexpectedly DistortedSpeech AudioInterruption OtherIssues |
影片 | NoVideoReceived NoVideoSent LowQuality Freezes StoppedUnexpectedly DarkVideoReceived AudioVideoOutOfSync OtherIssues |
螢幕共用 | NoContentLocal NoContentRemote CannotPresent LowQuality Freezes StoppedUnexpectedly LargeDelay OtherIssues |
自訂選項
您可以選擇收集四個 API 值的每一個,或只收集您認為最重要的值。 例如,您可以選擇只詢問客戶的整體通話體驗,而不是詢問客戶的音訊、影片和螢幕共用體驗。 您也可以自訂輸入範圍以符合您的需求。 整體通話、音訊、影片和螢幕共用的預設輸入範圍是 1 到 5。 不過,每個 API 值都可以從最小值 0 到最大值 100 進行自訂。
自訂範例
API 評等類別 | 截止值* | 輸入範圍 |
---|---|---|
整體通話 | 0 - 100 | 0 - 100 |
音訊 | 0 - 100 | 0 - 100 |
影片 | 0 - 100 | 0 - 100 |
螢幕共用 | 0 - 100 | 0 - 100 |
注意
API 中問題的指定截止值是 Microsoft 在分析問卷資料時所使用的閾值。 當您自訂截止值或輸入範圍時,Microsoft 會根據您的自訂來分析問卷資料。
自訂問題
除了使用通話結束後問卷 API 之外,您還可以建立自己的問卷問題,並將其與通話結束後問卷結果合併。 在下方,您會找到步驟,將您自己的客戶問題納入問卷中,以及查詢通話結束後問卷 API 和您自己問卷問題的結果。
將 Azure AppInsights 內嵌至您的應用程式。按一下這裏以深入了解如何使用一般 JavaScript 進行 App Insight 初始化。 或者,您可以使用 NPM 來取得 App Insights 相依性。 按一下這裡以深入了解如何使用 NPM 進行 App Insight 初始化。
在您的應用程式中建置 UI,其會向使用者提供自訂問題並收集其輸入,假設您的應用程式在
improvementSuggestion
變數中以字串的形式收集回應使用 App Insights 將問卷結果提交至 ACS 並傳送使用者回應:
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();
使用 AppInsights 所傳送的使用者回應可在您的 App Insights 工作區下取得。 您可以使用活頁簿,以在多個資源之間進行查詢,使通話評等與自訂問卷資料相互關聯。 使通話評等與自訂問卷資料相互關聯的步驟:
- 建立新的活頁簿 (您的 ACS 資源 -> 監視 -> 活頁簿 -> 新增),並從 ACS 資源查詢通話問卷資料。
- 新增查詢 (+新增 -> 新增查詢)
- 確定
Data source
是Logs
,而Resource type
是Communication
- 您可以重新命名查詢 (進階設定 -> 步驟名稱 [範例:call-survey])
- 請注意,最多可能需要 2 小時的時間,然後才能在 Azure 入口網站中看到問卷資料。 查詢呼叫評等資料 -
ACSCallSurvey | where TimeGenerated > now(-24h)
- 新增另一個查詢,以從 App Insights 取得資料 (+新增 -> 新增查詢)
- 確定
Data source
是Logs
,而Resource type
是Application Insights
- 查詢自訂事件 -
customEvents | where timestamp > now(-24h) | where name == 'CallSurvey' | extend d=parse_json(customDimensions) | project SurveyId = d.id, ImprovementSuggestion = d.improvementSuggestion
- 您可以重新命名查詢 (進階設定 -> 步驟名稱 [範例:custom-call-survey])
- 最後,依 surveyId 合併這兩個查詢。 建立新查詢 (+新增 -> 新增查詢)。
- 確定
Data source
為 [合併],並視需要選取Merge type
標題:Azure 通訊服務通話結束後問卷 標題字尾:Azure 通訊服務教學課文件 描述:了解如何使用通話結束後問卷來收集使用者的意見反應。 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
重要
從 Android 通話 SDK 2.10.0 版開始提供通話結束後問卷。 嘗試執行指示時,請務必使用該版本或更新版本。
API 使用範例
在通話結束之後,應該使用通話結束後問卷。 使用者可以對任何類型的 VoIP 通話、1:1、群組、會議、撥出和撥入進行評等。 一旦使用者的通話結束,您的應用程式就可以向終端使用者顯示 UI,讓其可以選擇評等分數,如有需要,請從預先定義的清單中挑選其在通話期間遇到的問題’。
下列程式碼片段顯示一對一通話的範例。 在通話結束之後,您的應用程式可以顯示問卷 UI,且一旦使用者選擇了評等,您的應用程式就應該呼叫功能 API,提交具有使用者選項的問卷。
鼓勵您使用預設的評等尺度,也就是五星級評等 (介於 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 值表示最差的體驗,而 upperBound 值表示完美的體驗。 兩個值都包含在內。
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 之間。由於網路/服務錯誤,無法提交問卷。
可用的問卷標籤
整體通話
標記 | 描述 |
---|---|
CannotJoin |
客戶無法加入通話 |
CannotInvite |
客戶無法在通話中新增參與者 |
HadToRejoin |
客戶離開並再次加入通話,作為解決問題的因應措施 |
CallEndedUnexpectedly |
客戶的通話無故結束 |
OtherIssues |
任何不符合先前描述的問題 |
音訊問題
標記 | 描述 |
---|---|
NoLocalAudio |
客戶的電腦在通話中沒有音訊,無法聽到通話中任何人的聲音 |
NoRemoteAudio |
缺少特定參與者的音訊 |
Echo |
通話中出現回音 |
AudioNoise |
收到的音訊夾帶不必要的噪音 |
LowVolume |
音量太低 |
AudioStoppedUnexpectedly |
音訊無故停止 (例如,沒有任何人靜音) |
DistortedSpeech |
某位參與者的聲音失真,與預期的聲音不同 |
AudioInterruption |
客戶遇到音訊中斷、聲音斷斷續續等。 |
OtherIssues |
任何不符合先前描述的問題 |
視訊問題
標記 | 描述 |
---|---|
NoVideoReceived |
客戶無法收到來自參與者的視訊 |
NoVideoSent |
客戶開始視訊,但通話中的其他人無法看到 |
LowQuality |
視訊品質低 |
Freezes |
視訊卡頓 |
StoppedUnexpectedly |
螢幕共用無故停止 (例如,相機已開啟且視訊通話正在進行中) |
DarkVideoReceived |
正在傳送視訊,但參與者只看到一個暗黑的方框 (或其他單一顏色) |
AudioVideoOutOfSync |
視訊和音訊似乎不同步 |
OtherIssues |
任何不符合先前描述的問題 |
螢幕共用問題
標記 | 描述 |
---|---|
NoContentLocal |
客戶無法接收正在共用螢幕的參與者的螢幕共用 |
NoContentRemote |
客戶正在共用螢幕,但其他一或多個參與者無法看到 |
CannotPresent |
無法啟動螢幕共用 |
LowQuality |
螢幕共用視訊的品質低,例如無法讀取 |
Freezes |
螢幕共用在簡報期間卡頓 |
StoppedUnexpectedly |
螢幕共用無故停止 (例如,客戶未停止螢幕共用) |
LargeDelay |
所顯示的內容與所看到的內容之間有感知延遲 |
OtherIssues |
任何不符合先前描述的問題 |
自訂選項
您可以選擇收集四個 API 值的每一個,或只收集您認為最重要的值。 例如,您可以選擇只詢問客戶的整體通話體驗,而不是詢問客戶的音訊、影片和螢幕共用體驗。 您也可以自訂輸入範圍以符合您的需求。 整體通話、音訊、視訊和螢幕共用的預設輸入範圍為 1 到 5。 不過,每個 API 值都可以從最小值 0 到最大值 100 進行自訂。
注意
API 中問題的指定截止值是 Microsoft 在分析問卷資料時所使用的閾值。 當您自訂截止值或輸入範圍時,Microsoft 會根據您的自訂來分析問卷資料。
自訂問題
除了使用通話結束後問卷 API 之外,您還可以建立自己的問卷問題,並將其與通話結束後問卷結果合併。
SubmitSurvey
作業的結果承載提供了可用來將 ACS 問卷資料與自訂資料和儲存進行關聯的資料。 CallSurveyResult
類別具有 SurveyId
欄位,代表問卷的唯一識別碼,而 CallId
表示產生問卷通話的識別碼。 將這些識別碼與您的自訂資料一起儲存,可讓資料以唯一方式相關聯。
重要
從 iOS 通話 SDK 2.10.0 版開始提供通話結束後問卷。 嘗試執行指示時,請務必使用該版本或更新版本。
API 使用範例
在通話結束之後,應該使用通話結束後問卷。 使用者可以對任何類型的 VoIP 通話、1:1、群組、會議、撥出和撥入進行評等。 一旦使用者的通話結束,您的應用程式就可以向終端使用者顯示 UI,讓其可以選擇評等分數,如有需要,請從預先定義的清單中挑選其在通話期間遇到的問題’。
下列程式碼片段顯示一對一通話的範例。 在通話結束之後,您的應用程式可以顯示問卷 UI,且一旦使用者選擇了評等,您的應用程式就應該呼叫功能 API,提交具有使用者選項的問卷。
鼓勵您使用預設的評等尺度,也就是五星級評等 (介於 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 值表示最差的體驗,而 upperBound 值表示完美的體驗。 兩個值都包含在內。
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 之間。由於網路/服務錯誤,無法提交問卷。
可用的問卷標籤
整體通話
標記 | 描述 |
---|---|
CannotJoin |
客戶無法加入通話 |
CannotInvite |
客戶無法在通話中新增參與者 |
HadToRejoin |
客戶離開並再次加入通話,作為解決問題的因應措施 |
CallEndedUnexpectedly |
客戶的通話無故結束 |
OtherIssues |
任何不符合先前描述的問題 |
音訊問題
標記 | 描述 |
---|---|
NoLocalAudio |
客戶的電腦在通話中沒有音訊,無法聽到通話中任何人的聲音 |
NoRemoteAudio |
缺少特定參與者的音訊 |
Echo |
通話中出現回音 |
AudioNoise |
收到的音訊夾帶不必要的噪音 |
LowVolume |
音量太低 |
AudioStoppedUnexpectedly |
音訊無故停止 (例如,沒有任何人靜音) |
DistortedSpeech |
某位參與者的聲音失真,與預期的聲音不同 |
AudioInterruption |
客戶遇到音訊中斷、聲音斷斷續續等。 |
OtherIssues |
任何不符合先前描述的問題 |
視訊問題
標記 | 描述 |
---|---|
NoVideoReceived |
客戶無法收到來自參與者的視訊 |
NoVideoSent |
客戶開始視訊,但通話中的其他人無法看到 |
LowQuality |
視訊品質低 |
Freezes |
視訊卡頓 |
StoppedUnexpectedly |
螢幕共用無故停止 (例如,相機已開啟且視訊通話正在進行中) |
DarkVideoReceived |
正在傳送視訊,但參與者只看到一個暗黑的方框 (或其他單一顏色) |
AudioVideoOutOfSync |
視訊和音訊似乎不同步 |
OtherIssues |
任何不符合先前描述的問題 |
螢幕共用問題
標記 | 描述 |
---|---|
NoContentLocal |
客戶無法接收正在共用螢幕的參與者的螢幕共用 |
NoContentRemote |
客戶正在共用螢幕,但其他一或多個參與者無法看到 |
CannotPresent |
無法啟動螢幕共用 |
LowQuality |
螢幕共用視訊的品質低,例如無法讀取 |
Freezes |
螢幕共用在簡報期間卡頓 |
StoppedUnexpectedly |
螢幕共用無故停止 (例如,客戶未停止螢幕共用) |
LargeDelay |
所顯示的內容與所看到的內容之間有感知延遲 |
OtherIssues |
任何不符合先前描述的問題 |
自訂選項
您可以選擇收集四個 API 值的每一個,或只收集您認為最重要的值。 例如,您可以選擇只詢問客戶的整體通話體驗,而不是詢問客戶的音訊、影片和螢幕共用體驗。 您也可以自訂輸入範圍以符合您的需求。 整體通話、音訊、視訊和螢幕共用的預設輸入範圍為 1 到 5。 不過,每個 API 值都可以從最小值 0 到最大值 100 進行自訂。
注意
API 中問題的指定截止值是 Microsoft 在分析問卷資料時所使用的閾值。 當您自訂截止值或輸入範圍時,Microsoft 會根據您的自訂來分析問卷資料。
自訂問題
除了使用通話結束後問卷 API 之外,您還可以建立自己的問卷問題,並將其與通話結束後問卷結果合併。
不過,SubmitSurvey
作業的結果承載提供了可用來將 ACS 問卷資料與自訂資料和儲存進行關聯的資料。 CallSurveyResult
類別具有 SurveyId
欄位,代表問卷的唯一識別碼,而 CallId
表示產生問卷通話的識別碼。 將這些識別碼與您的自訂資料一起儲存,可讓資料以唯一方式相關聯。
重要
從 Windows 通話 SDK 1.8.0 版開始提供通話結束後問卷。 嘗試執行指示時,請務必使用該版本或更新版本。
API 使用範例
在通話結束之後,應該使用通話結束後問卷。 使用者可以對任何類型的 VoIP 通話、1:1、群組、會議、撥出和撥入進行評等。 一旦使用者的通話結束,您的應用程式就可以向終端使用者顯示 UI,讓其可以選擇評等分數,如有需要,請從預先定義的清單中挑選其在通話期間遇到的問題’。
下列程式碼片段顯示一對一通話的範例。 在通話結束之後,您的應用程式可以顯示問卷 UI,且一旦使用者選擇了評等,您的應用程式就應該呼叫功能 API,提交具有使用者選項的問卷。
鼓勵您使用預設的評等尺度,也就是五星級評等 (介於 1-5 之間)。 不過,您可以提交具有自訂評等尺度的問卷。
開始填寫問卷
您可以開始填寫問卷以建立 CallSurvey
物件。 這會記錄問卷意圖。 如果之後未提交此特定 CallSurvey
物件,則表示最終客戶跳過或忽略該問卷。
var surveyCallFeature = call.Features.Survey;
var survey = await surveyCallFeature.StartSurveyAsync();
一般使用方式
要進行評等時,您必須遵守標尺欄位上定義的值。 lowerBound 值表示最差的體驗,而 upperBound 值表示完美的體驗。 兩個值都包含在內。
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 之間。由於網路/服務錯誤,無法提交問卷。
可用的問卷標籤
整體通話
標記 | 描述 |
---|---|
CannotJoin |
客戶無法加入通話 |
CannotInvite |
客戶無法在通話中新增參與者 |
HadToRejoin |
客戶離開並再次加入通話,作為解決問題的因應措施 |
EndedUnexpectedly |
客戶的通話無故結束 |
OtherIssues |
任何不符合先前描述的問題 |
音訊問題
標記 | 描述 |
---|---|
NoLocalAudio |
客戶的電腦在通話中沒有音訊,無法聽到通話中任何人的聲音 |
NoRemoteAudio |
缺少特定參與者的音訊 |
Echo |
通話中出現回音 |
AudioNoise |
收到的音訊夾帶不必要的噪音 |
LowVolume |
音量太低 |
AudioStoppedUnexpectedly |
音訊無故停止 (例如,沒有任何人靜音) |
DistortedSpeech |
某位參與者的聲音失真,與預期的聲音不同 |
AudioInterruption |
客戶遇到音訊中斷、聲音斷斷續續等。 |
OtherIssues |
任何不符合先前描述的問題 |
視訊問題
標記 | 描述 |
---|---|
NoVideoReceived |
客戶無法收到來自參與者的視訊 |
NoVideoSent |
客戶開始視訊,但通話中的其他人無法看到 |
LowQuality |
視訊品質低 |
Freezes |
視訊卡頓 |
StoppedUnexpectedly |
螢幕共用無故停止 (例如,相機已開啟且視訊通話正在進行中) |
DarkVideoReceived |
正在傳送視訊,但參與者只看到一個暗黑的方框 (或其他單一顏色) |
AudioVideoOutOfSync |
視訊和音訊似乎不同步 |
OtherIssues |
任何不符合先前描述的問題 |
螢幕共用問題
標記 | 描述 |
---|---|
NoContentLocal |
客戶無法接收正在共用螢幕的參與者的螢幕共用 |
NoContentRemote |
客戶正在共用螢幕,但其他一或多個參與者無法看到 |
CannotPresent |
無法啟動螢幕共用 |
LowQuality |
螢幕共用視訊的品質低,例如無法讀取 |
Freezes |
螢幕共用在簡報期間卡頓 |
StoppedUnexpectedly |
螢幕共用無故停止 (例如,客戶未停止螢幕共用) |
LargeDelay |
所顯示的內容與所看到的內容之間有感知延遲 |
OtherIssues |
任何不符合先前描述的問題 |
自訂選項
您可以選擇收集四個 API 值的每一個,或只收集您認為最重要的值。 例如,您可以選擇只詢問客戶的整體通話體驗,而不是詢問客戶的音訊、影片和螢幕共用體驗。 您也可以自訂輸入範圍以符合您的需求。 整體通話、音訊、視訊和螢幕共用的預設輸入範圍為 1 到 5。 不過,每個 API 值都可以從最小值 0 到最大值 100 進行自訂。
注意
API 中問題的指定截止值是 Microsoft 在分析問卷資料時所使用的閾值。 當您自訂截止值或輸入範圍時,Microsoft 會根據您的自訂來分析問卷資料。
自訂問題
除了使用通話結束後問卷 API 之外,您還可以建立自己的問卷問題,並將其與通話結束後問卷結果合併。
不過,SubmitSurvey
作業的結果承載提供了可用來將 ACS 問卷資料與自訂資料和儲存進行關聯的資料。 CallSurveyResult
類別具有 SurveyId
欄位,代表問卷的唯一識別碼,而 CallId
表示產生問卷通話的識別碼。 將這些識別碼與您的自訂資料一起儲存,可讓資料以唯一方式相關聯。
收集問卷資料
重要
您必須在 Azure 監視器中啟用診斷設定,才能將問卷的記錄資料傳送至 Log Analytics 工作區、事件中樞或 Azure 儲存體帳戶,以接收和分析問卷資料。 如果您未將問卷資料傳送至其中一個選項,您的問卷資料將不會儲存,而且會遺失。 若要為您的通訊服務啟用這些記錄,請參閱:通話結束後問卷記錄
使用 Log Analytics 工作區檢視問卷資料
您必須啟用 Log Analytics 工作區,才能儲存問卷的記錄資料和存取問卷結果。 若要為您的通訊服務啟用這些記錄,請參閱:通話結束後問卷記錄。
- 您也可以整合 Log Analytics 工作區與 Power BI,請參閱:整合 Log Analytics 與 Power BI。
最佳作法
以下是我們建議的調查流程,以及針對考量建議的問題提示。 您的開發可以使用我們的建議,或針對您的視覺化介面使用自訂的問題提示和流程。
問題 1:使用者對於其整體通話品質體驗有何感知? 建議您在開始問卷調查時只詢問參與者的整體品質。 如果您將第一個問題和第二個問題分開,有助於在問卷參與者指出其遇到通話品質問題時,只收集音訊、影片和螢幕共用問題的回應。
- 建議的提示:「通話品質如何?」
- API 問題值:整體通話
問題 2:使用者是否在通話中察覺到任何音訊、影片或螢幕共用問題? 如果問卷參與者對問題 1 的回應分數等於或低於整體通話的截止值,則會呈現第二個問題。
- 建議的提示:「哪些方面可以更好?」
- API 問題值:音訊、影片和螢幕共用
調查指導方針
- 避免過度問卷調查,不要調查所有通話參與者。
- 問題的順序很重要。 建議您將問題 2 中選擇性標籤的序列隨機化,以防受訪者將其大部分意見反應專注於視覺上看到的第一個提示。
- 請考慮在受控制的實驗中將問卷用於個別的 Azure 通訊服務資源,以識別發行影響。
下一步
分析問卷資料,請參閱:通話結束後問卷記錄
深入了解通話結束後問卷,請參閱:通話結束後問卷概觀
了解如何使用 Log Analytics 工作區,請參閱:Log Analytics 教學課程
在 Log Analytics 中建立自己的查詢,請參閱:開始使用查詢