Skip to main content
Sitecore Documentation
  • Learn
  • Downloads
  • Changelog
  • Roadmap
CDPCloud Portal
Sitecore CDP Developer Documentation
  • 開発Sitecore CDP
        • Engage SDKスクリプトを使用して統合し、Google Tag Manager
        • Engage SDKスクリプトを使用した統合
        • Engage SDKパッケージを使用してReactアプリを統合する
        • Engage SDKパッケージを使用してNextアプリを統合する(クライアント設定Cookie)
        • Engage SDKパッケージを使用してNext.jsアプリを統合する(サーバー設定Cookie)
        • 直接HTTP要求を使用した統合
        • Boxever JavaScript LibraryからEngage SDK
    • 受信トラフィックと送信トラフィックのIPホワイトリスト
  1. 統合のチュートリアル
  1. 統合のチュートリアル

Engage SDKパッケージを使用してNext.jsアプリを統合する(サーバー設定Cookie)

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

メモ

組織にSitecore XM CloudJSS Next.jsまたはJSS Angularアプリケーションが接続されている場合は、代わりにSitecore Cloud SDKを使用して、XM CloudサイトにSitecore CDPT関連の機能を実装します。Cloud SDKとEngage SDKの比較も参照してください。

このトピックでは、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を設定し、クライアントに送信します。

サーバー側でパッケージをインストールして初期化するには:

  1. ターミナルで、Next.jsアプリのルートフォルダを開きます。

  2. 次のコマンドを実行して、Engage SDKをインストールします。

    npm install @sitecore/engage
  3. コード エディターで、Next.jsアプリのルート フォルダーを開きます。

  4. srcフォルダに、middleware.jsというファイルを作成します。

  5. middleware.jsに次のコードを貼り付けます。

    import { NextResponse } from 'next/server';
    import { initServer } from '@sitecore/engage';
    
    export async function middleware(request) {
      const response = NextResponse.next();
    
      const engageSettings = {
        clientKey: "<client_key_PLACEHOLDER>",
        targetURL: "<stream_api_target_endpoint_PLACEHOLDER>",
        pointOfSale: "<point_of_sale_PLACEHOLDER>",
        cookieDomain: "<cookie_domain_PLACEHOLDER>",
        cookieExpiryDays: 365,
        forceServerCookieMode: true
      };
    
      const engageServer = initServer(engageSettings);
      await engageServer.handleCookie(request, response);
    
      return response;
    };

    プレースホルダーの値を 、Sitecore CDPインスタンスの必要な詳細に置き換えます。

    Cookieの同意

    本番環境では、サイトの訪問者が同意した場合にのみ、Engage SDKを読み込み、Cookieを設定します。サイト訪問者がCookieを受け入れるかどうかを確認する ためのコード例 も参照してください。

    コンテンツセキュリティポリシー(CSP)

    Engage SDKスクリプトを確実に読み込むには、コンテンツセキュリティポリシー(CSP)に次のものを追加する必要があります。

    • Stream APIターゲット エンドポイント。

    • https://d1mj578wat5n4o.cloudfront.net

    • Webパーソナライゼーションを実行し、環境がAP Region、EU Region、またはUS Regionの場合:

      https://d35vb5cccm4xzp.cloudfront.net

    • Webパーソナライゼーションを実行し、環境がJP Regionの場合:

      https://d2ez8k04aaol9g.cloudfront.net

    このスクリプトは、次のことを行います。

    • initServer() 関数を使用して、サーバー上のミドルウェア関数のEngage SDKを初期化します。

    • engageSettingsオブジェクト内のSitecore CDPインスタンスとCookie設定に関する詳細を収集し、オブジェクトをEngageServer.handleEngageCookie() 関数に渡します。

    • サーバーからCookieを設定します。

クライアント側での @sitecore/engageの初期化

Webサーバーに @sitecore/engageパッケージをインストールして初期化したら、クライアント側でパッケージを初期化します。この手順では、サーバーからCookieを受け取り、Webブラウザに保存します。

クライアント側でパッケージを初期化するには:

  1. ルーターの種類に応じて、次の操作を行います。

    • Pages Routerを使用する場合 - pagesフォルダ内のindex.jsファイルで、ReactからuseEffectをインポートし、@sitecore/engageからinitをインポートします。

      import { useEffect } from "react";
      import { init } from "@sitecore/engage";
    • App Routerを使用している場合-appフォルダ内のpage.jsファイルで、ReactからuseEffectをインポートし、@sitecore/engageからinitをインポートします。また、ファイルの先頭、すべてのインポートの上に "use client" ディレクティブを追加します。

      "use client";
      import { useEffect } from "react";
      import { init } from "@sitecore/engage";
  2. Home() 関数の上に、engageSettingsというオブジェクトを作成します。

    const engageSettings = {
      clientKey: "<client_key_PLACEHOLDER>",
      targetURL: "<stream_api_target_endpoint_PLACEHOLDER>",
      pointOfSale: "<point_of_sale_PLACEHOLDER>",
      forceServerCookieMode: true,
      includeUTMParameters: true,
      webPersonalization: false /* boolean or object. See Settings object for all options. Default: false */
    };

    プレースホルダーの値を 、Sitecore CDPインスタンスの必要な詳細に置き換えます。

  3. Home() 関数で、空の非同期関数loadEngage()を作成し、エフェクトフックでloadEngage() を呼び出します。エフェクトフックを使用すると、エンゲージAPIをロードする前にwindowオブジェクトが存在している必要があります。次の手順では、loadEngage() 内のコードを更新してEngage APIを読み込み、VIEWイベントの送信を開始します。

    export default function Home() {
      const loadEngage = async () => {
        // Load Engage API
        // Send VIEW events
      };
        
      useEffect(() => {
        loadEngage();
      }, []);
    
      return (<></>)
    };

初めてのVIEWイベントSend

次に、loadEngage() 関数内のコードを更新して、データの収集とSitecore CDP.VIEWイベントは、Webページが読み込まれるたびにトリガーされるため、VIEWイベントを送信します。

VIEWイベントを送信するには:

  1. loadEngage() 関数で、engageSettingsをinit() 関数に渡してEngage APIを読み込みます。init()関数は非同期であるため、戻り値を待つ必要があります。

    const loadEngage = async () => {
      // Load Engage API
      const engage = await init(engageSettings);
    
      // Send VIEW events
    };

    運用環境では、init() 関数を一度呼び出してから、選択した状態管理ソリューション (React ContextやReduxなど) を使用してアプリ全体で共有する必要があります。

  2. loadEngage() 関数では、Engage APIをロードした後、engage.pageView() 関数を呼び出してVIEWイベントデータを送信します。

    const loadEngage = async () => {
      // Load Engage API
      const engage = await init(engageSettings);  
    
      // Send VIEW events
      engage.pageView({
        channel: "<channel_PLACEHOLDER>",
        currency: "<currency_PLACEHOLDER>"
      });
    };

    プレースホルダーの値を 、組織に固有のイベントの詳細に置き換えます。

  3. engage.pageView() 関数の下にあるloadEngage() 関数で、テストとデバッグのみを目的として、ブラウザIDをコンソールに記録します。

    const loadEngage = async () => {
      // Load Engage API
      // ...
    
      // Send VIEW events
      // ...
    
      // For testing and debugging purposes only
      console.log("Copy-paste the following line into Sitecore CDP > Guests > Search field:");
      console.log(engage.getBrowserId());
    };

    次の手順では 、ブラウザー IDを使用して、Sitecore CDPでVIEWイベントを検索します。

  4. ターミナルで「 npm run dev 」と入力して、Next.jsアプリを起動します。Webページが読み込まれると、VIEWイベントがトリガーされ、イベント データが送信されます。

Sitecore CDPがVIEWイベントをキャプチャしたことを確認します

VIEWイベントを送信した後、Sitecore CDPにログインしてイベントを見つけます。

Sitecore CDPがVIEWイベントをキャプチャしたことを確認するには:

  1. Webブラウザーのコンソールで、次のようなテキストを見つけます。

    a38b230c-11eb-4cf9-8d5d-274e9f344925​

  2. テキストをコピーします。

  3. Sitecore CDPで、「Guests」をクリックし、検索ドロップダウンで「Browser ID」を選択し、コピーしたテキストを検索フィールドに貼り付けます。

    匿名のゲストが表示されます。

    Search field in the Guests screen.

    このゲストは、ちょうど1分前にアプリを読み込んでいます。次に、このゲストに関連付けられているVIEWイベントを見つけます。

  4. ゲストをクリックします。ゲスト プロファイルが表示されます。

  5. ゲスト プロファイル ページで、Event viewerをクリックします。このゲストに関連付けられているイベントのリストが表示されます。このリストにはVIEWイベントが含まれています。これは、前の手順でトリガーされたイベントです。

次のステップ

これで、アプリとSitecore CDPが正常に統合されました。アプリからイベントを送信し、Sitecore CDPがユーザーに関するデータをリアルタイムでキャプチャすることを確認しました。

次に、次の操作を実行できます。

  • その他の行動データ ( IDENTITYイベント や カスタム イベントなど) Sendします。

  • ユーザーがサイト上の商品やショッピングカートを操作する際のトランザクションデータSend。

  • Sitecore Personalizeをお持ちの場合は、エクスペリエンスや実験を実行できます。

この記事を改善するための提案がある場合は、 お知らせください!

Documentation Assistant

This assistant uses AI to generate responses based on Sitecore documentation. While it has access to official sources, answers may be incomplete or inaccurate and should not be considered official advice or support.
Powered by
k
kapa.ai
Protected by reCAPTCHA

© Copyright 2026, Sitecore A/S or a Sitecore affiliated company.
All rights reserved.

Privacy policySitecore Trust CenterTerms of use