買い物客コンテキストによるパーソナライゼーション
Shopper Context では、買い物客の行動に基づいてサイトに配信されるプロモーション、価格設定、商品の推奨、コンテンツを調整することで、ショッピング体験をパーソナライズできます。たとえば、買い物客がモバイルデバイスからサイトにアクセスした場合、10 %割引を提示します。
useUpdateShopperContextという名前のフックは、Progressive Web App (PWA) Kit サイトで買い物客のコンテキストを設定するために使用されます。PWA Kit での買い物客コンテキストの既定の実装は、パーソナライゼーション機能のデモンストレーションです。このガイドで説明するデモの実装 では、クエリパラメーターを使用して、商品一覧ページ (PLP) のコンテンツとプロモーションを変更するパーソナル化スキームをアクティブにします。カスタムコードで実装を拡張し、独自のパーソナライゼーション戦略に適合させます。
このガイドでは、Shopper Context のデモ実装と、それを構成および拡張して PWA Kit サイトのパーソナライゼーション戦略を強化する方法について説明します。このガイドで説明する機能は、ハイブリッドストアフロント ではサポートされていません。
変更を本番環境にデプロイする前に、本番以外の環境でパーソナライゼーションをテストすることをお勧めします。また、ストアフロントプレビュー を使用してパーソナル化をプレビューすることもできます。
このガイドのコマンドを実行する前に、プレースホルダーを実際の値に置き換えてください。プレースホルダーは $PLACEHOLDER の形式になっています。
使用例
このビデオでは、Shopper Context のデモ実装を使用してコンテンツとプロモーションをパーソナライズする方法の例を紹介します。
:: video {src = “tRLVE69bmVyFsNAWv4LSfo” title = “PWA Kitの買い物客のコンテキスト” type = “vidyard”}
前提条件
Shopper Context でパーソナライゼーションを使用するには:
買い物客のコンテキストの設定
1. SLAS プライベートクライアントの作成
Shopper Login and API Access (SLAS) Admin UI で、SLAS プライベートクライアントを作成します。「SLAS クライアントの作成 」を参照してください。
2. 買い物客のコンテキストとフックの有効化
Business Manager で、
3. shopper_context_hooksカートリッジのアップロード
shopper_context_hooksカートリッジは許可リストとして機能し、パーソナル化キャンペーンに使用するコンテキストのみをクライアントから設定できるようにします。Business Manager で、
カートリッジのアップロードの詳細については、「Storefront Reference Architecture (SFRA) のコードのアップロード 」を参照してください。
4. カスタムサイトの環境設定を構成します。
カスタム・サイト環境設定を追加して、クライアント・レジストリーを構成します。これを行うには、Business Manager でsystem-objecttype-extensions.xmlをインポートします。
管理 > サイトの開発 > インポート&エクスポート に移動します。
インポートファイルとエクスポートファイルセクションで、アップロード をクリックします。
ファイルの選択 をクリックします。
meta/meta に移動します。
選択します system-objecttype-extensions.xml。
アップロード をクリックします。
ファイルがアップロードされたら、戻る をクリックします。
メタデータセクションで、インポート をクリックします。
system-objecttype-extensions.xmlを選択して、次へ をクリックします。
ファイルが検証されたら、インポート をクリックします。
5. サイト環境設定からのshopper_context_hooksカートリッジCLIENT_REGISTRYの更新
構成を更新するには、Business Manager で次の操作を行います。
マーチャントツール > サイト環境設定 > カスタム環境設定 > 買い物客コンテキストフックの環境設定 に移動します。
[Client Registry] フィールドを JSON 構成で更新します。ステップ 1 で設定したクライアント ID と、クライアントが設定できるショッパーコンテキストキーを入力します。ShopperContext 型 で使用可能な任意のキーを入力できます。ストアフロントプレビューで使用するクライアント ID など、すべての買い物客のコンテキストキーを設定する許可が必要なクライアント ID の場合は、キーallを使用します。
この例では、2 つの異なるクライアント ID に Shopper Context キーを設定します。
クライアント ID aaaaaaaa-8536-4a39-acbb-8e7f1759f901からのリクエストは、ショッパーコンテキストで指定された 3 つのキーのみを設定できます。
クライアント ID bbbbbbbb-b5e9-efbc-42f6-584f60fd54ffからのリクエストでは、買い物客のコンテキストですべてのキーを設定できます。
1 {
2 "aaaaaaaa-8536-4a39-acbb-8e7f1759f901" : [ "sourceCode" , "geoLocation" , "deviceType" ] ,
3 "bbbbbbbb-b5e9-efbc-42f6-584f60fd54ff" : [ "all" ]
4 }
6. 買い物客のコンテキスト範囲の追加
この Shopper Context スコープを SLAS Private Client に追加します: sfcc.shopper-context.rw。「SLAS クライアントの作成 」を参照してください。
ショッパーコンテキストのデモ実装
Shopper Context のデモでは、クエリパラメーターで設定されたsourceCodeを使用して、PLP のコンテンツ変更と、特定の顧客グループの新しいプロモーションをトリガーします。URL に&sourcecode=instagramを追加することで、PLP でデモの動作を確認できます。
このデモでは、useUpdateShopperContextフックを使用してパーソナライゼーションキャンペーンをトリガーします。プロジェクトで、app/constants.jsのSHOPPER_CONTEXT_SEARCH_PARAMS定数で買い物客コンテキストクエリパラメーターを追加または削除して、クエリパラメーターによってトリガーされる独自のパーソナライゼーションを実現します。
たとえば、クエリパラメータを使用して設定したいカスタム属性 を追加した場合は、それらをカスタムクエリパラメータとしてapp/constants.jsに含めます。この例では、パラメーターdeviceTypeとstoreIdを追加します。
1 export const SHOPPER_CONTEXT_SEARCH_PARAMS = {
2 // These are the default query parameters.
3 sourceCode: { paramName: 'sourceCode' } ,
4 geoLocation: {
5 city: { paramName: 'city' } ,
6 country: { paramName: 'country' } ,
7 countryCode: { paramName: 'countryCode' } ,
8 latitude: { paramName: 'latitude' , type: SHOPPER_CONTEXT_FIELD_TYPES . DOUBLE } ,
9 longitude: { paramName: 'longitude' , type: SHOPPER_CONTEXT_FIELD_TYPES . DOUBLE } ,
10 metroCode: { paramName: 'metroCode' } ,
11 postalCode: { paramName: 'postalCode' } ,
12 region: { paramName: 'region' } ,
13 regionCode: { paramName: 'regionCode' }
14 } ,
15 // These are examples of custom query parameters that you can optionally add.
16 customQualifiers: {
17 deviceType: { paramName: 'deviceType' }
18 } ,
19 assignmentQualifiers: {
20 storeId: { paramName: 'storeId' }
21 }
22 } , // More code here...
買い物客のコンテキストの拡張
必要に応じて、Shopper Context のデモ実装 の内容以外のパーソナライゼーションを追加できます。たとえば、買い物客の位置情報に基づいてコンテンツをパーソナライズできます。
このサンプルコードでは、買い物客の位置情報を取得します。位置情報を取得したら、選択したパーソナライゼーションを適用できます。たとえば、次のようになります。
米国ニューヨークの場合: レディーストップスが 20% 割引。
米国ボストンの場合: レディーストップスが 15% 割引。
1 // ... Default imports in the hook
2 import { useEffect , useState } from 'react'
3
4 export const useUpdateShopperContext = ( ) = > {
5 // ... Default code in the hook
6 const [ location , setLocation ] = useState ( { latitude: null , longitude: null } )
7
8 // Get the latitude and longitude of the shopper's geolocation using the browser's navigator.geolocation API.
9 const fetchLocation = ( ) = > {
10 if ( typeof navigator !== 'undefined' && navigator . geolocation ) {
11 navigator . geolocation . getCurrentPosition (
12 ( position ) = > {
13 setLocation ( {
14 latitude: position . coords . latitude ,
15 longitude: position . coords . longitude
16 } )
17 } ,
18 ( err ) = > {
19 console . error ( err . message ) // Handle errors gracefully
20 } ,
21 {
22 enableHighAccuracy: true , // Try to get the most accurate location
23 timeout: 10000 , // Time in milliseconds before timing out
24 maximumAge: 60000 // Cache the location for 1 minute
25 }
26 )
27 } else {
28 console . error ( 'Geolocation is not supported by this browser.' )
29 }
30 }
31
32 fetchLocation ( )
33
34 // Update the Shopper Context when the latitude and/or longitude changes.
35 useEffect ( ( ) = > {
36 if ( location . latitude && location . longitude ) {
37 const newShopperContext = {
38 geoLocation: {
39 latitude: location . latitude ,
40 longitude: location . longitude
41 }
42 }
43 handleShopperContextUpdate ( shopperContext , newShopperContext )
44 }
45 } , [ location . latitude , location . longitude ] )
46 }
買い物客のコンテキストのトラブルシューティング
このセクションでは、Shopper Context の使用中に発生する可能性のある一般的なエラーの解決策を提案します。
パーソナライゼーションが正しくない、または欠落している
考えられる原因: Business Manager のパーソナル化が正しく構成されていない。
**推奨される解決策:**設定したコンテキストトリガーが Business Manager のパーソナル化キャンペーンに割り当てられていることを確認します。
その他の参照項目