Engage SDKパッケージを使用してNext.jsアプリを統合する(サーバー設定Cookie)
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このトピックでは、Engage SDKパッケージを使用してNext.jsアプリを統合する方法について説明します。このチュートリアルでは、サーバー設定のCookieを使用します。srcフォルダを使用していると想定していますが、必ずしもそうする必要はありません。
このチュートリアルでは、次の方法について説明します。
-
サーバー側で @sitecore/engageをインストールして初期化します。
-
クライアント側で @sitecore/engageを初期化します。
-
初めてのVIEWイベントSend。
-
Sitecore CDPがVIEWイベントをキャプチャしたことを確認します。
-
Sitecore CDPインスタンスに関する必要な詳細を収集します。
-
統合するNext.jsアプリを用意します。このウォークスルーは、Pages RouterとApp Routerの両方のバージョン12、13、および14.2.5でNext.jsテストされました。
サーバー側での @sitecore/engageのインストールと初期化
アプリを統合するための最初の手順は、Webサーバーに @sitecore/engageパッケージをインストールして初期化することです。この手順では、サーバーからCookieを設定し、クライアントに送信します。
サーバー側でパッケージをインストールして初期化するには:
-
ターミナルで、Next.jsアプリのルートフォルダを開きます。
-
次のコマンドを実行して、Engage SDKをインストールします。
-
コード エディターで、Next.jsアプリのルート フォルダーを開きます。
-
srcフォルダに、middleware.jsというファイルを作成します。
-
middleware.jsに次のコードを貼り付けます。
プレースホルダーの値を 、Sitecore CDPインスタンスの必要な詳細に置き換えます。
このスクリプトは、次のことを行います。
-
initServer() 関数を使用して、サーバー上のミドルウェア関数のEngage SDKを初期化します。
-
engageSettingsオブジェクト内のSitecore CDPインスタンスとCookie設定に関する詳細を収集し、オブジェクトをEngageServer.handleEngageCookie() 関数に渡します。
-
サーバーからCookieを設定します。
-
クライアント側での @sitecore/engageの初期化
Webサーバーに @sitecore/engageパッケージをインストールして初期化したら、クライアント側でパッケージを初期化します。この手順では、サーバーからCookieを受け取り、Webブラウザに保存します。
クライアント側でパッケージを初期化するには:
-
ルーターの種類に応じて、次の操作を行います。
-
Pages Routerを使用する場合 - pagesフォルダ内のindex.jsファイルで、ReactからuseEffectをインポートし、@sitecore/engageからinitをインポートします。
-
App Routerを使用している場合-appフォルダ内のpage.jsファイルで、ReactからuseEffectをインポートし、@sitecore/engageからinitをインポートします。また、ファイルの先頭、すべてのインポートの上に "use client" ディレクティブを追加します。
-
-
Home() 関数の上に、engageSettingsというオブジェクトを作成します。
プレースホルダーの値を 、Sitecore CDPインスタンスの必要な詳細に置き換えます。
-
Home() 関数で、空の非同期関数loadEngage()を作成し、エフェクトフックでloadEngage() を呼び出します。エフェクトフックを使用すると、エンゲージAPIをロードする前にwindowオブジェクトが存在している必要があります。次の手順では、loadEngage() 内のコードを更新してEngage APIを読み込み、VIEWイベントの送信を開始します。
初めてのVIEWイベントSend
次に、loadEngage() 関数内のコードを更新して、データの収集とSitecore CDP.VIEWイベントは、Webページが読み込まれるたびにトリガーされるため、VIEWイベントを送信します。
VIEWイベントを送信するには:
-
loadEngage() 関数で、engageSettingsをinit() 関数に渡してEngage APIを読み込みます。init()関数は非同期であるため、戻り値を待つ必要があります。
運用環境では、init() 関数を一度呼び出してから、選択した状態管理ソリューション (React ContextやReduxなど) を使用してアプリ全体で共有する必要があります。
-
loadEngage() 関数では、Engage APIをロードした後、engage.pageView() 関数を呼び出してVIEWイベントデータを送信します。
プレースホルダーの値を 、組織に固有のイベントの詳細に置き換えます。
-
engage.pageView() 関数の下にあるloadEngage() 関数で、テストとデバッグのみを目的として、ブラウザIDをコンソールに記録します。
次の手順では 、ブラウザー IDを使用して、Sitecore CDPでVIEWイベントを検索します。
-
ターミナルで「 npm run dev 」と入力して、Next.jsアプリを起動します。Webページが読み込まれると、VIEWイベントがトリガーされ、イベント データが送信されます。
Sitecore CDPがVIEWイベントをキャプチャしたことを確認します
次のステップ
これで、アプリとSitecore CDPが正常に統合されました。アプリからイベントを送信し、Sitecore CDPがユーザーに関するデータをリアルタイムでキャプチャすることを確認しました。
