---
title: "クッキー"
slug: "cookies"
abstract: "Sitecore CDPのファーストパーティクッキーと、クライアントまたはサーバーから設定する方法について説明しています。"
---
# クッキー

Sitecore CDPはウェブブラウザ上でクッキーをファーストパーティクッキーとして保存します。ファーストパーティクッキーは、ウェブブラウザのアドレスバーに表示されるドメインによって設定されるクッキーです。

-   bid\_{clientKey} - このクッキーはセッション間で [ブラウザID](https://doc.sitecore.com/cdp/ja/developers/api/integrating-with-sitecore-cdp/understanding-integration-details/browser-id.html "Browser ID") を永続化し、Engage SDKがSitecore CDPに行うすべての呼び出しに必要です。このクッキーは、クッキーが期限切れまたは削除されるまで、各ブラウザごとに一意のユニバーサル・ユニーク識別子(UUID)を生成します。クッキーが期限切れまたは削除された後、次に訪問者が戻ってくる際に新しいUUIDが生成されます。
-   bx\_bucket\_number - このセッションクッキーは、あなたがSitecore Personalizeを持っていて、ウェブ体験やウェブ実験をアプリ内で使用している場合にのみ使用されます。クッキーはゲストを特定のバリアントに割り当てます。特定のセッション中にあなたのサイト上でライブ中の各ウェブ実験に対して割り当てを行います。クッキーはセッション期間中のみ保存されます。
-   bx\_guest\_ref - このセッションクッキーは、Sitecore Personalizeがある場合と、ウェブ体験やウェブ実験をアプリ内で使用している場合にのみ使用されます。クッキーはバケットを持つすべてのユーザーにユニバーサリー・ユニーク識別子(UUID)を割り当てます。クッキーはセッション期間中のみ保存されます。

Engage SDKはクライアントとサーバーの両方からクッキーを設定することをサポートしています。

## クッキーの同意を確認する

> !重要Engage SDKを読み込み、サイト訪問者が同意した場合のみクッキーを設定してください。

こちらは、サイト訪問者がクッキーを受け入れた場合のみEngage SDKを初期化するコード例です。

ご自身のクッキー同意の実装は、アプリケーションの要件、法的規制、ユーザー体験デザインによって異なります。この例はあくまで説明目的であり、ご自身のコードでカスタマイズしない限り機能しません。

// Import your custom logic that checks whether the site visitor has accepted cookies:
import { getCookieConsent } from "<YOUR\_CUSTOM\_LOGIC\_PATH>";

// Your custom function to check whether the site visitor has accepted cookies:
const hasConsent = getCookieConsent();

// If the site visitor accepts cookies, initialize the SDK:
if (hasConsent === true)
{
 engage = await window.Engage.init(settings);
};

## クライアントセットクッキー

クライアント側しかアクセスできない場合は、クライアント側からクッキーを設定する必要があります。

クライアントからクッキーを設定するには、[settingsオブジェクト](https://doc.sitecore.com/cdp/ja/developers/api/stream-api/sitecore-engage-sdk-reference/objects/settings-object.html "Settings object")でforceServerCookieMode属性をfalseに設定し、そのsettingsオブジェクトを[Engage.init()](https://doc.sitecore.com/cdp/ja/developers/api/stream-api/sitecore-engage-sdk-reference/functions/engage-init.html "Engage.init(settings)")関数に渡すことで可能です。コードサンプルについては[、「Reactアプリの統合](https://doc.sitecore.com/cdp/ja/developers/api/integrating-with-sitecore-cdp/walkthroughs-for-integrating/integrate-engage-sdk-react.html "Integrate a React app using the Engage SDK package")」および[「Nextアプリの統合(クライアントセットクッキー)](https://doc.sitecore.com/cdp/ja/developers/api/integrating-with-sitecore-cdp/walkthroughs-for-integrating/integrate-engage-sdk-nextjs-client-side.html "Integrate a Next app using the Engage SDK package (client-set cookies)")」を参照してください。

## サーバーセットクッキー

サーバー側にアクセスできる場合は、クライアントではなくサーバーからクッキーを設定することができます。その場合、ウェブサーバー上でクッキーを作成・管理します。その後、ウェブサーバーがクッキーをクライアントアプリに送信します。最後に、クライアントアプリがクッキーをウェブブラウザに保存します。

サーバーからクッキーを設定することには以下のような利点があります:

-   クッキーに httpOnly(https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies#restrict\_access\_to\_cookies) 属性を追加することでセキュリティを強化します。これにより、クライアント側JavaScriptクッキーへのアクセスを防ぎ、クロスサイトスクリプティング([XSS](https://developer.mozilla.org/en-US/docs/Web/Security/Types_of_attacks#cross-site_scripting_xss))攻撃を軽減します。
-   インテリジェントトラッキング防止(ITP)がクッキーに与える影響を軽減します。例えば、クライアントセットクッキーとは異なり、サーバーセットクッキーは7日後に自動的に期限切れになることはありません。

Engage SDKパッケージを使えば、サーバー側のクッキーを設定するには、[settingsオブジェクト](https://doc.sitecore.com/cdp/ja/developers/api/stream-api/sitecore-engage-sdk-reference/objects/settings-object.html "Settings object")のforceServerCookieMode属性をtrueに設定し、クライアント側の[Engage.init()](https://doc.sitecore.com/cdp/ja/developers/api/stream-api/sitecore-engage-sdk-reference/functions/engage-init.html "Engage.init(settings)")関数とサーバー側の[Engage.initServer()](https://doc.sitecore.com/cdp/ja/developers/api/stream-api/sitecore-engage-sdk-reference/functions/engage-initserver.html "Engage.initServer(settings)")関数に渡します。コードサンプルについては、「[Nextアプリ(サーバーセットクッキー)の統合](https://doc.sitecore.com/cdp/ja/developers/api/integrating-with-sitecore-cdp/walkthroughs-for-integrating/integrate-engage-sdk-nextjs-server-side.html "Integrate a Next.js app using the Engage SDK package (server-set cookies)")」を参照してください。