Experience Monitoringには、APIエラーや管理されていないJSエラーをキャプチャするツールがあります。例:予期しない技術的エラー。
ただし、ユーザーに表示されるメッセージにつながる多くの他のエラー(いくつかは予期されるもの)があります。例:「おっと、このプロダクトは在庫切れです」または「これは有効な郵便番号ではありません」。
Custom Errorsを使用すると、ユーザーの体験中に発生する処理されたエラーメッセージをビジネスインパクトによって収集し、ランク付けすることができるため、どの修正を優先順位付けするかをよりよく理解できます。
Custom Errorsとは
Custom Errorsは、ユーザーの画面に表示される任意のテキストを収集します。例:バナーやポップアップ、またはユーザーアクションに基づくフォームフィールドのテキストメッセージ。
フォームバリデーションエラーの例:
Custom Errorsを使用して、ユーザーに見えないエラーを収集することもできます。
Custom Errorsには、以下の情報が含まれます:
エラー情報 | 詳細 |
取得したテキストメッセージ | (例:申し訳ありませんが、あなたのアカウントは再活性化できませんでした) |
イベントのタイムスタンプ | |
オプション属性 | エラーを特定するのに役立つ情報(タイプ、重大度) |
Custom Errorsを収集する方法
ページビューごとに最大20のカスタムエラーを収集できます(この制限にはコンソールメッセージが含まれます)。
ステップ1: 関数の実装
カスタムエラーを収集するには、ウェブページのコードに直接関数を実装する必要があります。この関数は、収集するテキストが画面に表示されるたびにトリガーされる必要があります。
静的例: 特定のテキスト文字列を収集する(収集したい特定のテキスト文字列ごとにこの関数を実装する必要があります)。
window._uxa.push(["trackError","140000は有効な郵便番号ではありません"])
動的な例: 一般的な文字列の収集 (このオプションを使用すると、すべてのエラーストリングごとに異なるスニペットを設定する必要がなくなります)。
window._uxa.push([ "trackError", document.querySelector("div[class='newMessagesInfo newError']").textContent, ])
トラッキングタグはtrackError
コマンドを使用し、データを/custom-errorsエンドポイントにルーティングします。
属性を指定してtrackError
コマンドを使用することができ、エラーをカテゴリー分けするために属性を指定することをお勧めします。
属性を持つtrackError
コマンドの例:
window._uxa.push(["trackError", "140000は有効な郵便番号ではありません",
{type: "formValidation", severity:"minor", language: "english"}])
ステップ2: オプションの属性を設定する
属性は'key':'value'の形式のJavaScriptオブジェクトです。
注: 'Key'はカテゴリー分けのためだけに使用され、'Value'は正確なカテゴリー名です。
以下は属性オブジェクトの例です:
{type: "formValidation", severity: "minor", language: "english"
}
属性オブジェクトの制限には以下が含まれます:
- プロパティの数(すなわち属性の数)は5に制限されています
- 最大キー長: 30文字
- 最大値長: 30文字
カスタムエラーの例と命名のベストプラクティス
ユースケースごとにカスタムエラーの潜在的な例と推奨される命名規則を見つけてください。
カスタムエラーを簡単にフィルタリングおよび優先順位付けできるようにするために、エラーメッセージを指定するための属性の使用に関するガイドを使用することを強くお勧めします。
注: 'Key'はカテゴリー分けのためだけに使用され、'Value'は正確なカテゴリー名です。
テキスト文字列の例 | エラータイプ(推奨) | 追加のオプション属性(値の実際の名前) |
一般的なタイプと例 |
キー: formValidation formSubmitFail textInfo textError caughtError httpError timeout slowRequest 実装の例: {type: formValidation}
|
キー: critical high medium low ---------------------------------- キー: english french hebrew chinese ---------------------------------- キー: 推奨値: 404 500 実行に失敗しました ReferenceError SyntaxError TypeError URIError EvalError InternalError |
フォームの完了
メッセージ文字列 | エラータイプ(強く推奨) | 追加のオプション属性の例(値の名前) |
フォーム提出失敗 |
キー: type {type: formSubmitFail} |
キー: language 値: english {language: english} |
オプションを選択してください |
キー: type {type: formValidation} |
キー: language {language: english} |
無効なエントリー番号 |
キー: type {type: formValidation} |
キー: language {language: english} |
フォームフィールドエラーが欠落しています |
キー: type {type: formValidation} |
キー: language {language: english} |
フォーム完了のタイムアウト |
キー: type {type: timeout} |
キー: language {language: english} |
このフィールドは空白のままにすることはできません |
キー: type {type: formValidation} |
キー: language {language: english} |
検索結果
メッセージ文字列 | エラータイプ(推奨) | 追加のオプション属性(値の実際の名前) |
検索結果がありません |
キー: type {type: textInfo} |
キー: language {language: english} |
特定のキーワード検索で結果が見つかりませんでした |
キー: type {type: textInfo} |
キー: language {language: english} |
プロダクトページ(PDP)
メッセージ文字列 | エラータイプ(推奨) | 追加のオプション属性(値の実際の名前) |
プロダクトは利用できなくなりました |
キー: type {type: textInfo} |
キー: language {language: english} |
サイズを選択してください |
キー: type {type: textInfo} |
キー: language 値: 英語 {language: english} |
項目をカートに追加できませんでした |
キー: type {type: textError} |
キー: language 値: 英語 {language: english} |
カート内の項目数を超えました |
キー: type {type: textInfo} |
キー: language 値: 英語 {language: english} |
決済
メッセージ文字列 | エラータイプ(推奨) | 追加のオプション属性(値の実際の名前) |
支払い失敗 |
キー: type {type: textError} |
キー: language {language: english},
{severity: critical} |
このカードのセキュリティコードを確認してください |
キー: type {type: textInfo} |
キー: language {language: english} |
項目をカートに追加できませんでした |
キー: type {type: textError} |
キー: language {language: english} |
カート内の項目数を超えました |
キー: type {type: textInfo} |
キー: language {language: english} |
プロモコードが機能しませんでした |
キー: type {type: textInfo} |
キー: language {language: english} |
郵便番号/電話番号の形式が不正です |
キー: type {type: textInfo} |
キー: language {language: english} |
バウチャーコードエラー |
キー: type {type: textError} |
キー: language {language: english} |
この構成はこの日付範囲では利用できません |
キー: type {type: textInfo} |
キー: language {language: 英語} |
転送は現在完了できませんでした |
キー: type {type: textError} |
キー: language {language: 英語} |
カートに項目がありません |
キー: type {type: textInfo} |
キー: language {language: 英語} |
ログイン
メッセージ文字列 | エラータイプ(推奨) | 追加のオプション属性(値の実際の名前) |
パスワードエラー |
キー: type {type: textInfo} |
キー: language {language: english} |
ログイン失敗 |
キー: type {type: textError} |
キー: language {language: english} |
すでにアカウントをお持ちです |
キー: type {type: textInfo} |
キー: language {language: english} |
ボットでないことを確認してください |
キー: type {type: textInfo} |
キー: language {language: english} |
その他
パネルテキストを挿入
メッセージ文字列 | エラータイプ(推奨) | 追加の任意属性(値の実際の名前) |
何か問題が発生したようです |
キー: type {type: textError} |
キー: language {language: english} |
404ページ/行き止まりページ*
*この種のエラーは、ページビュー(ジャーニー分析で確認)とカスタムエラー(エラー分析で影響を確認)の両方で監視できます。 |
キー: type {type: httpError} |
キー: language {language: english} ---------------------------------- キー: errorStatus {errorStatus: 404} |
ファイルからのキー情報が欠落しています |
キー: type {type: textInfo} |
キー: language {language: english} |
広告ブロックを追跡 |
キー: type {type: caughtError} |
キー: language 値: english {language: english} |
ビデオが利用できない/読み込まれていない |
キー: type {type: textError} |
キー: language 値: english {language: english} |
この場所の周りに店舗がありません |
キー: type {type: textInfo} |
キー: language 値: english {language: english} |
利用できない基盤API/サービスに依存する任意のサービス |
キー: type {type: textError} |
キー: language 値: english {language: english} |
よくある質問
1. カスタムエラーは遡って収集できますか?
いいえ、カスタムエラーは遡って収集できません。
2. カスタムエラーを設定する際に属性を追加する必要がありますか?
属性は任意ですが、エラーを分類できるように属性を指定することを強くお勧めします。