ストアフロントでのセッション Cookie ローテーションの特定と解決

Cookie ローテーションとは、1 回の訪問中にストアフロントの何かがセッション Cookie を再生成していることを意味します。新しい値はそれぞれ別のセッションとしてカウントされるため、ストアでは実際に発生した数よりも多くのセッションが記録されます。セッションはコンバージョン率の分母であるため、コンバージョン率が実際より低く表示されます。注文、販売、お客様の数には影響しません。

Shopify はストアでのブラウザーセッションを特定するために _shopify_s という Cookie を使用し、Shopify Analytics はその Cookie を使用して訪問者のアクティビティをセッションにグループ化します。セッションには非アクティブ状態や協定世界時 (UTC) の深夜 0 時など、想定される境界もあり、これらについてはセッションと訪問者の比較で説明されています。

ブラウザーを確認して、ストアフロントで Cookie がローテーションしているかどうかを判断し、その原因を特定してから修正を検証できます。ローテーションはストアフロントの独自のコードやアプリから発生するため、ストアフロントで解決します。一部の確認にはテーマコードへのアクセスが必要です。

要件

このページの確認を行うには、次のツールが必要です。

  • Chrome、Edge、Firefox、Safari などの開発者ツールを備えたデスクトップブラウザー。
  • ストアフロントのテーマコード、カスタムスクリプト、またはアプリ設定へのアクセス権。
  • 同意管理プラットフォームの設定へのアクセス権 (ストアで使用している場合)。

Shopify のセッション Cookie の仕組み

以下の Cookie は、ストアフロントでの訪問者のアクティビティを記録します。

ストアフロントでの訪問者のアクティビティを記録する Shopify の Cookie とそれぞれの有効期間。
Cookie説明
_shopify_sブラウザーセッションとショップの組み合わせを識別します。最後に使用してから 30 分のローリング有効期限があります。
_shopify_yShopify Analytics をサポートします。1 年後に期限切れになります。

訪問者のブラウザーにセッション Cookie が設定されると、1a2b3c4d-1a2b-3c4d-1a2b-3c4d5e6f7a8b のような一意の値が保持されます。セッションが期限切れになり新しいセッションが開始されると、Cookie は 5e6f7a8b-5e6f-7a8b-5e6f-7a8b9c0d1e2f のような別の一意の値に変更されます。

_shopify_s にはローリング有効期限があるため、訪問者がアクションを実行するたびに更新されます。ローテーションのないストアフロントでは、値は訪問中ずっと同じままであり、30 分間非アクティブ状態が続いた後にのみ期限切れになります。訪問の途中で値が変更された場合、変更前と変更後のアクティビティは 2 つの個別のセッションとしてカウントされます。

ブラウザーを使用して、Cookie ローテーションの確認を実行できます。ストア分析レポートには、各セッションが作成された理由ではなくセッションの合計が表示されるため、レポートから Cookie のローテーションを診断することはできません。既存の Cookie やブラウザー拡張機能が結果に影響しないように、プライベートブラウジングウィンドウまたはシークレットウィンドウで確認を完了してください。

確認を実行する場所は重要です。同意バナーはストアに設定されている地域でのみ表示され、ローテーションの大部分は同意フローで発生するため、バナーがない地域から確認を実行すると問題を完全に見逃す可能性があります。ストアが同意を求める地域を確認し、そのうちの 1 つから確認を実行してください。その地域から自分でブラウジングできない場合は、それが可能な同僚や開発者に依頼してください。ストアが同意を求める地域を確認するには、Cookie バナーの管理を参照してください。

Cookie の動作を確認するには、それぞれの同意状態でストアフロントの確認を実行します。

  • バナーに回答しない場合
  • Cookie に同意した場合
  • 同意を拒否した場合

手順:

  1. プライベートブラウジングウィンドウまたはシークレットウィンドウでストアフロントを開きます。適切な地域を使用して確認していること、および確認する同意状態を決定したことを確認します。
  2. ブラウザーの開発者ツールを開きます。
  3. ブラウザーの開発者ツールで Cookie パネルを開きます。
    • Chrome の場合は、アプリケーション > ストレージ > Cookie に移動します。
    • Firefox の場合は、ストレージ > Cookie に移動します。
    • Safari の場合は、まず設定 > 詳細 > Web デベロッパ用の機能を表示で開発メニューをオンにし、次に開発 > Web インスペクタを表示 > ストレージ > Cookie に移動します。
    • その他のブラウザーについては、ブラウザーのサポートドキュメントで手順を参照してください。
  4. ドメインを選択します。
  5. リストで _shopify_s を見つけ、その値の最初の数文字を書き留めます。リストに _shopify_s がない場合は、Cookie の動作に関する結論を出す前に、閲覧を続けて Cookie パネルを 30 から 60 秒間観察してください。
  6. 開発者ツールを開いたまま、ストアフロントを通常どおりに閲覧し、商品ページやカートを含む 3 または 4 ページにアクセスします。
  7. 各ページの閲覧後、および 1 つのページに 1 分間留まった後に、_shopify_s の値を再度確認します。

Cookie 同意バナーのアクティビティに基づいて、Cookie は通常次のように動作します。

  • 訪問者が同意バナーに回答する前、および訪問者が拒否した後は、Cookie が存在しない状態が続くことが想定されます。
  • 訪問者が同意を受け入れた後は、Cookie が存在することが想定されます。これは Cookie を生成する必要がある唯一の同意状態です。

同意を受け入れても Cookie が存在しない場合、またはテストしている地域でストアが同意を求めていない場合、ストアフロントの何かが Cookie をブロックまたは削除しています。Cookie ローテーションの原因の特定を進めてください。

Cookie ローテーションの確認中、以下の動作はローテーションを示しています。

  • 訪問中の任意の時点で Cookie の値が変更される。
  • 表示されたり消えたりするCookie。

Cookieローテーションのトリガーとなるロジックはストアフロント内で実行されるため、Shopifyではその原因を検出できません。また、その動作を特定のアプリや販売元に帰属させることもできません。

Cookieローテーションの原因を特定するには、以下のトラブルシューティングの領域を順番に確認してください。Liquidストアフロントでのローテーションの大部分は、同意処理に起因します。

  1. 同意管理プラットフォームの動作を確認する。
  2. Cookieバナーの設定を確認する。
  3. ストアフロントのスクリプトとロジックを確認する。
  4. 一般的なCookieのストレージと動作を確認する。

ストアで外部サービスの同意管理アプリを使用している場合は、ここから始めます。_shopify_s は、ShopifyのCookieポリシーにおいて、必須Cookieではなくレポートと分析のCookieとして分類されているため、分析Cookieをブロックまたはクリアする同意管理アプリによって処理されます。

手順:

  1. ストアで使用している同意管理アプリを特定します。
  2. アプリの設定で、_shopify_s がどのように分類されているか、また、アプリがそのカテゴリーのCookieをどのように処理しているかを確認します。
  3. 訪問者の選択に対して1回だけ機能するのではなく、ページを読み込むたびにアプリがCookieをクリアして再作成していないかどうかを確認します。

この問題を解決するには、アプリがページを読み込むたびに分析Cookieをクリアして再作成するのではなく、Customer Privacy APIを通じて各訪問者の同意の選択をShopifyにレポートするように、アプリの開発者に協力を依頼してください。拒否された選択は訪問全体に適用され続ける必要があるため、アプリが訪問者の選択を強制する頻度を減らさないでください。推奨される設定については、外部サービスのCookieバナーアプリを使用したCookieバナーの設定を参照してください。

訪問者の選択をShopifyにレポートしていなかった同意ツールを修正すると、アクティビティがセッションにグループ化される方法以外にも変更が生じます。修正後は、以前はレポートされていなかった選択が適用されるようになるため、同意を拒否した訪問者からは必須ではないデータが収集されなくなり、結果としてセッション数が減少する可能性があります。

ストアが同意を求める地域では、訪問者が同意するまでShopifyは分析Cookieを設定しません。それ以外の地域では、Cookieバナーはデフォルトでアクティブになっていないため、バナーとやり取りする前に _shopify_s が安定していることは想定された動作です。ストアがどの地域で同意を求めているかを確認するには、Cookieバナーの管理を参照してください。

同意が必要な場合、訪問者が決定を下す前のウィンドウでローテーションが発生します。同意ツールはCookieをそのままにせず、クリアと再作成を繰り返し行い、それぞれのサイクルが新しいセッションとして登録されます。

手順:

  1. プライベートブラウジングウィンドウでストアフロントを開き、同意バナーには回答しないでください。
  2. ブラウザの Cookies パネルで _shopify_s を30〜60秒間観察します。
  3. バナーに未回答の間、値が繰り返し変更されていないか、またはCookieが消えたり再び表示されたりしていないかを確認します。
  4. バナーに回答し、その動作が停止するかどうかを確認します。

この問題を解決するには、ストアが同意を求めるように設定されている地域を確認し、バナーが開いているときにCookieをクリアして再作成するのではなく、バナーがCustomer Privacy APIを通じて各訪問者の選択をShopifyにレポートしていることを確認します。その訪問者の分析がブロックされているにもかかわらずCookieが再び表示される場合は、同意ツール以外の何かがCookieを書き込んでいるため、このページにある残りの領域を確認してください。

ストアフロントのスクリプトとロジック

すべてのローテーションが同意処理によって引き起こされるわけではありません。通常の訪問中に _shopify_s を削除、ブロック、ローテーション、または再生成するスクリプトやストアフロントのロジックは、ローテーションの原因となります。たとえば、cart.js が約10秒ごとに呼び出され、それに連動してCookieの値が再生成されたケースがありました。別の例では、同意ツールとは関係のないドメインの誤分類がローテーションの原因として特定されました。

手順:

  1. 開発者ツールで Network タブを開き、Preserve log を選択します。
  2. 操作を行わずに同じページに60秒間留まります。
  3. Cookies パネルで _shopify_s の値を観察し、短いループで繰り返されているリクエスト (特に cart.js) がないか確認します。
  4. 値が変更されるたびに、変更の直前に実行されたリクエストまたはスクリプトを書き留めます。値を変更せずに繰り返されるリクエストは原因ではありません。
  5. テーマコード、カスタムスクリプト、タグマネージャーのコンテナで document.cookie_shopify_s を検索します。
  6. ストアフロントが単一の正規ドメインから提供されていることを確認します。Cookies パネルで、_shopify_s が異なるドメインで複数回表示されていないか確認します。
  7. 最近インストールされたアプリやテーマの最近の変更を確認します。この動作が最近始まったものである場合は、これらの変更との関連性を確認してください。

この問題を解決するには、Cookieを書き込むコードを修正し、分析が実行される前にリダイレクトが1つの正規ホスト名に解決されるようにします。カート、在庫、チャットの機能は、Cookieに影響を与えることなく正当にポーリングを行う場合があるため、繰り返されるリクエストの調整または削除は、それが _shopify_s の値を変更していることを確認した後にのみ行ってください。

Cookieを書き換えるスクリプト、アプリ、またはドメインを修正すると、既存の訪問者のアクティビティがセッションにグループ化される方法のみが変更されます。収集されるデータは変更されません。

Cookieの属性がローテーションの直接的な原因として特定されたことはありませんが、他の領域で問題がなければ、除外するための確認を行う価値があります。

手順:

  1. Cookies パネルで、_shopify_s の値だけでなく、DomainPathExpiresSameSite の各値も確認します。
  2. Shopifyが設定するよりも短い有効期間や、より限定されたパスでCookieを上書きするものがないことを確認します。

この問題を解決するには、Cookieの属性を上書きしているコードまたはアプリの設定を削除します。

修正を確認する

ストア分析レポートを確認するのではなく、Cookieを調べて修正を確認してください。訪問全体で _shopify_s の値が安定していれば、修正が機能していることを示しています。修正前に記録されたセッションデータは再処理されないため、過去のレポートには引き続き増加したセッション数が表示されます。

新しいプライベートブラウジングウィンドウまたはシークレットウィンドウで、セッションCookieがローテーションしているかどうかを確認する手順を繰り返し、以下の結果を確認します。

セッションCookieのローテーションを解決した後に繰り返す確認事項と、修正が機能したことを確認する結果。
確認事項期待される結果
同意バナーに回答せずに、3、4ページを閲覧します。_shopify_s が設定されていないか、安定した値を保持しています。
同意を受け入れた後、確認を繰り返します。_shopify_s が安定した値を保持しています。
同意を拒否した後、確認を繰り返します。_shopify_s が設定されていないか、安定した値を保持しています。
商品ページからカートに移動し、再び閲覧に戻ります。_shopify_s の値が維持されます。
同一のページに 60 秒間留まり、ネットワークタブを確認してください。繰り返しのリクエストによって _shopify_s の値が変更されることはありません。

ローテーションが続く場合の次のステップ

ローテーションは Shopify が管理していないコードや設定が原因であるため、修正はそのコードの保守担当者が行う必要があります。このページの手順をすべて実行しても _shopify_s が引き続きローテーションする場合は、該当する担当者に連絡してください。

  • 同意管理プラットフォームやその他のアプリの場合は、Shopify App Store のアプリのリスティングからアプリの開発者に連絡してください。
  • カスタムテーマコード、カスタムスクリプト、またはタグマネージャーのコンテナの場合は、それらの保守を担当する開発者または代理店に連絡してください。

担当者が挙動を再現できるように、以下の詳細を記載してください。

  • テストした同意状態と、それぞれの状態で発生した事象。
  • 記録した _shopify_s の値、および各変更の直前のページまたはアクション。
  • 値を変更した繰り返しのリクエスト、およびそれを開始したスクリプト。
  • すでに実施した変更。