コンバージョンレート向上のためのeコマースサイト検索の最適化

こちらの記事は Segment の記事 Optimize e-commerce site search to increase conversion rates の翻訳です。


こちらの記事に書かれたレシピでは、Segment PersonasAlgolia (爆速でインテリジェントな検索を可能にするソリューション)を使って、パーソナライズされたeコマースサイトの体験を提供する方法をご紹介します。今回はパーソナライズのビギナーレベルで、特にユーザーの行動をもとにしたサイト検索のパーソナライズについてフォーカスしていきます。

お客様に真にパーソナライズされた体験を提供することは、どのような企業にとっても夢のようなことであると思います。お客様があなたのサイトを訪れて、数秒で本当に探しているものを見つける様子を想像してみてください。”凄い!この会社、私が何が欲しいか完全に理解してる。ひょっとしたら、私より分かってるかも!”といったように。それでは、典型的なパーソナライゼーションジャーニーの実装がどのようなものか見ていきましょう。

パーソナライゼーションの世界は広大であり幅広いものです。多くの企業は性別やロケーションなどのユーザーの特徴に基づいてサイトをパーソナライズするところからはじめると思います。そして、成長していくにつれ、ユーザーの行動に基づいてパーソナライズを行い、例えば、最も頻繁にアクセスされるカテゴリに基づいたアイテムをプロモーションしたり、価格に敏感なお客様のためにより安価なアイテムをプロモートしたり。そして、最終的には機械学習/AI技術を使って商品レコメンドエンジンを構築することで、より高度なパーソナライゼーションのレベルに到達する企業もあります。今回のレシピでは、 Segment Personas & Algolia (search-as-a-serviceプラットフォーム)を使って、パーソナライズされたeコマースのサイト体験を提供する方法をご紹介します。私たちはユーザーの行動に基づいてサイトの検索体験をパーソナライズすることに特にフォーカスを当てていきます。考えてみましょう。私たちが様々なブランドの靴やスポーツアパレルを販売するeコマースストアを運営しているとします。お客様がこのサイトを訪れたときに、ニーズに合わせてパーソナライズされていない様々な商品が表示されると、よろしくない顧客体験としてコンバージョンレートの低下を招いてしまいます。ということで、次のステップでは Segment PersonasとAlgoliaを使って、ユーザーの行動に基づいて検索体験をパーソナライズしていく方法をご紹介します。

ステップ1: サイトにおけるパーソナライズのユースケースの特定

まず、事前にサイトでユーザーをパーソナライズするためのユースケースを確認していきましょう。ここではいくつかのアイデアをご紹介します。

  1. 検索結果で最も閲覧頻度の高いブランドをブーストする
  2. 検索やカテゴリのブラウジングにおいて性別に基づいたアイテムのブーストを行う
  3. 検索やカテゴリのブラウジングにてhigh-valueな顧客にはhigh-valueなアイテムを表示するようにブーストする
  4. 顧客に合ったサイズの在庫があるものだけプロモートする

今回は上記1.の検索結果で最も閲覧されているブランドをブーストする方法で進めていきましょう。

ステップ2: Segmentでユーザーの行動を理解する

ユースケースが決まったので、次のステップは、ユーザーとサイトとのやり取りを把握するところからはじめます。ここでSegmentの出番です。SegmentのAnalyticsライブラリをウェブサイトに配置することで、イベントトラッキングが可能となり、ユーザーの行動を把握することができるようになります。ベーシックなユースケースを網羅した総合的なイベントのリストはSegmentの e-commerce specを見てください。Segmentのe-commerce specはユーザーがストアをブラウジングし、プロモーションをクリックし、商品を表示し、商品を買い物かごに追加し、最終的に購買が完了するまでの一連のジャーニーを定義するのに役立ちます。こちらのイベントのトラッキングがウェブサイト(もしくはサーバー)上で実装できたら、ステップ3に進みましょう。

Tip: もしウェブサイトでイベントをトラッキングする際にコードを書くことなく実装したい場合はSegmentのVisual Taggerをチェックしてみてください。

Step 3: Computed Traits/Audiencesでユーザープロファイルを充実させる

イベントトラッキング(Step 2)を実装する際、Segmentの Identify をコールすることで、ユーザー名、メールアドレス、電話番号といった情報を収集します。

こちらが、common fields を除いた identity をコールする際のペイロードのサンプルになります。

こちらの情報は Profile API(後ほどご説明します)から直接取得することができますが、こちらの他にもユーザーに関する情報を理解する必要があり、特定の計算が必要な場合もあるかと思います(例えば、最も頻繁にアクセスしている、最後に見たもの、等)。

Segment PersonasのComputed Traits機能を使うことで、リアリタイムに現在起こっているイベントに基づいてユーザーの特性の計算を行うことができます。こちらのケースでは、ユーザー最も頻繁に見ているブランドに基づいてサイト体験をパーソナライズしていきたいと思います。最初に以下のような特徴をを計算する必要があります: 1. Segment Personas > Computed Traits 機能に行き、“New Computed Trait”をクリックします。

2. Most Frequent をクリックし、トラックイベントの実装においてSegmentのEcommerce Spec に添っている場合、クライテリアは以下のようになります:

3. Previewをクリックして、Select Destinationsを無視し、オーディエンスに名前を付けて保存します。この特徴を後でProfile APIで利用します。

Pro tip: Computed Traitsを必ずしも使う必要はなく、Personas Audiencesを使ったパーソナライズを行うこともできます。

Step 4: Profile API用のアクセストークンの作成

Segment PersonasはProfile APIを使って、ユーザーの特徴、オーディエンス、イベントといった情報を取得することを可能にします。今回はそのユーザーの情報をAlgoliaに送信し、パーソナライズされた検索結果および体験に活用していきます。

APIアクセストークンを作成するには、SettingsタブのPersonaに行き、Generateボタンをクリックします:

Step 5: AlgoliaアカウントとSegment Profile APIの接続

(こちらのステップを行うには開発者の手助けが必要かもしれません)

ユーザーの行動に基づいてサイト内検索をパーソナライズするのに、Algolia(search-as-a-serviceプラットフォーム)を利用します。Profile APIを使ってユーザーの特徴を取得し、その情報をAlgoliaのOptional Filtersに連携することで、パーソナライズされた検索クエリの結果を得ることが出来るようになります。

AlgoliaのOptional Filtersとは何か?AlgoliaのOptional Filtersは、他よりも上に表示させたい検索結果をフィルターとスコアを用いてブーストさせたり、結果の下の方にくるようにしたり、といった用途に活用できる機能です。こちらの例では、Algoliaにブランドというファセット(検索の世界でのフィルターに関する呼び方)があるとして、 brand:Nike<score=2> のような Optional Filter を設定することで、結果をブーストさせることができます。それでは実際の実装がどのようなものになるか見てみましょう。

最初に、バックエンドからAlgoliaの呼び出しを行います(この例ではNode.jsサーバーを使います)。AlgoliaではフロントエンドからのAPIコールを推奨していますが、バックエンドからそれを行うことで以下のような利点があります:

  1. Server-Side Rendering
    • ※篠原コメント※ このサーバーの応答性能に引っ張られてしまい、Algoliaの爆速検索ユーザー体験が享受できなくなってしまう可能性があります
  2. Better security(フロントエンドにAPI Keyを持たせる必要がない)
    • ※篠原コメント※ Algoliaでは検索専用のKeyを払い出すことができ、一定間隔でそのKeyをローテーションさせることもできますし、Secured API Keyをサーバー側で生成して、それをフロントエンドに渡して使うといったことも可能です

私たちのシンプルなサーバーからのAlgoliaの呼び出しは以下のようになります(如何にAlgoliaのバックエンドからの呼び出しが容易かはこちらをご参照):

次のステップとしては、検索リクエストを行う前での Profile API の呼び出しになります。Profile APIをコールするのに便利なヘルパー関数を作りましょう:

ご自身の spaceIdAPI key が使われていることをご確認ください。ここでのuserIdは、email, anonymous_id, もしくは user_id を指定することも可能ですので、使用するIDによって適宜APIコールの方法を変えてください。

最後に、検索リクエストでこのヘルパーをコールして、Optional Filterとして渡していきましょう:

これで完成です!ご覧のように、サイトをレンダリングする際、お気に入りのブランドがトップにくるようにパーソナライズされたカテゴリーページが表示されるようになりました。

まとめ

こちらのレシピで行ったことは以下になります。

  • eコマースのサイト検索をパーソナライズする
  • Segmentのソースを作成してユーザー行動を理解するためのイベントトラッキングの実装
  • Segment Personaを使ったComputed Traits(計算された特徴)を用いてユーザープロファイルを強化
  • AlgoliaとSegment Profile APIを連携させて、ユーザーの行動に基づいた検索結果のブーストを行う

コメント

タイトルとURLをコピーしました