Article by: Kyle Tryon
本ブログの内容
- リアルな顧客インサイトのために Session Replay を有効化する
- チェックアウト離脱とカート放棄の原因を診断する
- Session Replay を使って放棄カートを Sentry で確認する
- 自分のショップを次のステップへ

カート放棄の追跡
前述のとおり、多くのプラットフォームには放棄されたカートを特定・追跡するための何らかの仕組みが組み込まれています。ただし、「カート放棄」の定義はプラットフォームによって異なります。自分でアプリを構築し、プラットフォームのAPIを利用している場合は、任意の基準でカート放棄を定義し、追跡することができます。
Shopify には「放棄されたチェックアウト」を追跡する機能がありますが、これは 外部のチェックアウトページに紐づいているため、可視性が失われ、得られる情報の有用性が下がってしまいます。
さらに Shopify では、ユーザーがチェックアウトページに到達し、メールアドレスを入力した状態で離脱した場合にのみ カートが「放棄」としてカウントされます。しかし、独自アプリを開発している場合には、放棄の定義を別の形で設定したいこともあるでしょう。
自前のカートおよびチェックアウトページを持つアプリであれば、顧客がどのように操作しているかを把握する必要があります。そのため、カスタムアプリにはカスタムソリューションが必要になります。
サーバーサイドでカート情報を保存し、一時的な customer Id としてセッションIDを利用すれば、ユーザーがチェックアウトを完了する前の行動パターンも記録・分析することが可能です。また、カート放棄を「単一セッションを超えて長期間チェックアウトされていないカート」と定義する場合にも、この方法は必要になります。
どのように放棄カートを定義・追跡するにしても、最終的な目的は、カート放棄した顧客ID(customerId)の一覧を取得し、Sentry上でそれらのユーザーのセッションを調査できるようにすることです。
サーバーサイドのコードは、次のような形になります。

このデータを使えば、特定のユーザーセッションを Sentry 上で検索し、チェックアウトプロセス中に実際に何が起きたのかを正確に確認できます。
Session Replay を使って放棄カートを Sentry で確認する
これで、どのユーザー(仮ユーザーであっても)が「放棄されたカート」を持っているのかを、あなたが定義した基準に基づいて把握できました。さらに、Sentry のスパン内で setUser によって設定した 顧客ID(customer ID) と一致するユーザーIDも分かっています。
次に、Trace Explorer に移動し、以下の条件を含むスパンを検索します。
- 該当ユーザーの ID
- カートページ
- セッションリプレイ(Session Replay)が含まれていること
これで、放棄カートを持つユーザーのセッションを特定し、クリック単位で実際の行動を再生しながら確認することができます。

放棄カート一覧にある実際の customerId で guest の部分を置き換えます。
このクエリでは、以下の条件を満たすすべてのトレースが表示されます。
- ユーザーID が放棄カートを持つ顧客の ID と一致していること
- スパンがカートページ(`/cart`)を含んでいること
- Session Replay が添付されていること(`has:replayId`)

「Traces Samples(トレースサンプル)」タブを開くと、結果をトレース単位で集計して表示することができます。ここでは、ユーザーが /cart ページにアクセスした 4つの異なるイベント が発生していることが確認できます。
これらのトレースのいずれかをクリックすると、そのトランザクション内で記録されたすべてのスパンを確認することができます。


「See Full Replay(フルリプレイを見る)」ボタンをクリックすると、対象ユーザーのセッション全体を再生できます。
ここで、ユーザーがカートを放棄した理由につながる可能性のある体験上の問題を確認していきましょう。たとえば、読み込みの遅さ、レイアウトのズレ、エラーの発生などに注目する必要があります。
Session Replay を使った放棄カートのレビュー
ここからが最も重要な部分です。実際にユーザーがカートを放棄するまでにどんな体験をしたのかを再現して確認します。
Session Replay をクリックすると、顧客が何を見て、どのように感じ、どこでつまずいたのかを正確に確認できます。Session Replay は動画そのものではありませんが、ユーザーの DOM(ページ構造)を動画のように再生する体験を提供します。画面右側のパネルには、いくつかのタブ──errors(エラー)、network(ネットワーク)、console(コンソール)、breadcrumbs(ブレッドクラム)──が表示されます。
Errors は Sentry の主力機能であり、通常はユーザー体験をデバッグする際に最初に確認する場所です。ただし今回のケースでは、ユーザーはエラーを体験していません。少なくとも、Sentry が記録した範囲ではエラーは発生していません。
プレイヤー下部には再生ボタンがあり、タイムライン上には小さな点が表示されています。それぞれの点は、ページ上のイベント(クリックやエラーの発生など─)に対応しています。点の色はイベントの種類を示しており、カーソルを合わせると詳細が表示されます。また、これらのイベントは Breadcrumbs(パンくずリスト)タブ 内でもより詳細に確認することができます。
このケースでは、ユーザーが離脱した原因はエラーや読み込みの遅さではなかったと考えられます。実際のところ、どんなメトリクスを計測しても、この問題を検知することはできなかったでしょう。
リプレイを確認すると、ユーザーはカートページに移動し、配送先の国と郵便番号を入力して送料を計算しています。
すると、合計金額が $4.99 から $13.98 に変化。その直後、カーソルが画面の上部へすばやく移動し、セッションが終了しています。
この内容から判断すると、ユーザーは本来購入を完了するつもりだったものの、送料による価格の3.5倍の上昇に納得できず、離脱した可能性が高いと考えられます。
自分のショップを次のステップへ
カート放棄は、アナリティクスのダッシュボード上の単なる数字ではありません。それは、顧客体験の反映であり、潜在的な収益が漏れ出しているポイントでもあります。
人間の行動は、必ずしもメトリクスで定量化できるものではありません。しかし、テレメトリーデータから推測を立てることは可能であり、アンケートやサポートチケットを通じて限定的なフィードバックを得ることもできます。とはいえ、そうした代理データは、実際にその瞬間に何が起きたのかを観察することに比べれば、本質を明らかにするものではありません。
Session Replay を使えば、推測の域を超えることができます。あらゆるクリック、スクロール、ためらいの一つひとつを、それを形作ったスパンやイベントと直接結びつけて可視化できるのです。
Session Replay は、すべての Web アプリケーションに対応しており、さらに iOS や Android アプリでも利用可能です。顧客体験を完全に可視化できるよう、ぜひ導入を検討してください。Session Replay の設定方法や多彩なオプションについては、Sentry のドキュメントで詳しく確認できます。
ダッシュボードや数字だけでは人間の行動を説明しきれないとき、最後に必要なのは「見ること」そのものかもしれません。
Original Page: Session Replay: Becoming your own digital secret shopper
IchizokuはSentryと提携し、日本でSentry製品の導入支援、テクニカルサポート、ベストプラクティスの共有を行なっています。Ichizokuが提供するSentryの日本語サイトについてはこちらをご覧ください。またご導入についての相談はこちらのフォームからお気軽にお問い合わせください。


