サードパーティ Cookie のサポート終了トライアルによる追加の移行時間をリクエストする

テストを円滑に進めるため、Chrome では Chrome ユーザーの 1% に対してデフォルトでサードパーティ Cookie を制限しています。Chrome では、英国の競争・市場庁(CMA)の競争に関する懸念事項をすべて解消することを条件として、2024 年第 3 四半期からサードパーティ Cookie の制限をすべてのユーザーに拡大する予定です。サポートの終了プロセスでのスムーズな移行のために、Google はサードパーティ向けのデプリケーション トライアルを提供しています。これにより、埋め込みサイトとサービスは、広告以外のユースケースでのサードパーティ Cookie の依存関係から移行する追加の時間をリクエストできます。

このサポート終了トライアルの登録は、2023 年 12 月 4 日の週に開始されました。非推奨トライアル自体は 2024 年 1 月に開始され、2024 年 12 月 27 日に終了します。デベロッパーは、トライアルの終了日までに必要な変更と計画を行うことが求められます。

サポート終了トライアルの登録が開始されてから、Chrome によるテスト期間中に 1% の Cookie がブロックされるまでには、短い期間があります。このような時間的制約に対処するため、Chrome では、サポート終了トライアル トークンのデプロイに取り組んでいる参加オリジンに対して猶予期間を設けています。猶予期間(2024 年 6 月 30 日まで)中、サポート終了トライアルに登録されたオリジンは、トークンをまだデプロイしていなくても、Chrome でサードパーティ Cookie にアクセスできます。この猶予期間の目的は、移行期間中のウェブ互換性の問題を防ぐことです。参加元は、猶予期間の終了までに非推奨トライアル トークンをデプロイする必要があります。

非推奨トライアル

非推奨トライアルは、削除される以前の機能から移行するための追加時間をサイトが登録できるように、Chrome が提供する標準オプションです。デプリケーション トライアルは、機能を一時的に再度有効にできるオリジン トライアルの一種です。

このトライアルは、サードパーティ Cookie を設定し、次のセクションで説明する資格要件を満たしている埋め込みとサービスが対象です。つまり、埋め込みまたはサービスがサードパーティである場合は、デプリケーション トライアルに登録して、埋め込みまたはサービスが含まれているすべてのコンテキストでサードパーティ Cookie を一時的に再度有効にできます。トライアルは、登録された埋め込みオリジンにのみ適用され、ユーザーがアクセスするトップレベル サイト ドメイン全体には適用されません。

https://top.example に https://embed.example/iframe.html の埋め込みページを表示するサードパーティ / クロスサイト iframe の例と、https://top.example に https://third-party.example/script.js のスクリプトを含むサードパーティ / クロスサイト スクリプトの例

Cookie に依存するサードパーティを使用するトップレベル サイトは、このデプリケーション トライアルに登録する必要はありません。サイト内で使用されているサードパーティ Cookie を監査し、サードパーティ プロバイダに連絡して、サポート終了に備えていることを確認する必要があります。

利用条件と審査プロセス

今回の非推奨トライアルは、参加の審査と承認プロセスが導入されている点で、以前のトライアルとは異なります。これは、ウェブ上のユーザーのプライバシーを改善しつつ、ユーザーが依存するサービスが、必要に応じて移行に追加の時間をリクエストできるようにすることを目的としています。

この非推奨トライアルの原則は次のとおりです。

  • ユーザーにとって重要な機能を維持する: この非推奨トライアルは、ユーザー ジャーニーで機能が損なわれることを示すサードパーティ プロバイダを対象としています。
  • ユーザー トラッキングの制限: サポート終了トライアルは、広告目的のクロスサイト トラッキングをサポートすることを目的としたものではありません。そのため、広告に使用されるサードパーティの埋め込みとサービスは対象外です。

広告のユースケースが対象外になることで、デプリケーション トライアルが競争・市場庁が説明しているように 2024 年の開始を予定している業界テストに影響を与えることもなくなります。これには、広告以外の目的でも使用される広告関連のドメインも含まれます。

Chrome は、まずインターネット プライバシーの業界リーダーである Disconnect.me と連携し、Disconnect のトラッキング保護リストを実装して、広告として分類されるスクリプトとドメインを特定します。Disconnect は、ウェブ上で同様の目的のために他のブラウザですでに使用されています。

登録リクエストには、次の手順が適用されます。

  • サードパーティのオリジンが既知の広告ドメインと一致する場合(オリジンが [Disconnect] の広告リストのエントリと一致する場合を含む)、登録リクエストは拒否されます。通常、リスト内のエントリは、指定されたオリジンの下のすべてのサブドメインと一致します。ただし、一部のエントリにはパス要素が含まれています。これらのより具体的なエントリは、指定されたオリジンに一致しますが、サブドメインには一致しません。
  • ユーザー向けの機能が正常に動作しない状態を再現する手順を記載する必要があります。特に、これは Cookie が保存されているデバイスを操作するユーザー向けの操作であり、後でデータを分析するユーザー向けのものではありません。不具合のあるユーザー エクスペリエンスを検証できない場合、登録リクエストは拒否されます
  • 問題がなければ、登録リクエストが承認されます
  • 以前に承認されたアプリとオリジンが「類似している」と記載する場合は、オリジン間の関係を説明してください。

登録元が、より多くの情報があれば審査結果を明確にできると判断した場合は、再審査請求プロセスを提供することを予定しています。登録者は、オリジン トライアル コンソールで再申請することで再審査を請求できます。再審査請求は、リクエストされた情報(既知の破損バグや破損の再現手順)が不足しているために拒否されたリクエストや、登録元が、審査の決定を明確にするために、追加情報によってこれらの要件を満たすことができると判断した場合に提出されます。

また、裏付けとなる証拠が見つかった不正行為防止と不正行為防止のユースケースも承認しています。これらのユースケースをより適切に評価する方法について、フィードバックをお寄せください。

サポート終了トライアルを申し込む

機能の不具合を確認するために Google のチームが使用できる再現手順を含めます。手順を記録するほうが簡単な場合や、ログインなどの制限によって機能が制限されている場合は、Chrome DevTools レコーダーを使用して、問題を再現する手順の録画へのリンクを送信してください。

  1. [サードパーティ Cookie のサポート終了のトライアル] に移動し、[登録] をクリックします。
  2. [Web Origin] には、埋め込みページまたはスクリプトを配信するオリジンを指定します。
  3. [サードパーティの照合] オプションは、トークンを提供する方法によって異なります。これらのオプションについて詳しくは、トライアル トークンを追加するをご覧ください。
    • 独自の埋め込みページの HTTP ヘッダーまたはメタタグでトークンを指定する場合は、[サードパーティとの照合] をオンにしないでください
    • JavaScript を使用して別のサイトにトークンを挿入する場合は、[サードパーティとのマッチング] をオンにする必要があります
    • 両方を行う必要がある場合は、別々に登録する必要があります。
  4. 複数のサブドメインにクロスサイト コンテンツをホストする場合は、[オリジンのすべてのサブドメインを照合できるトークンが必要です] オプションをオンにします。
    • このオプションを選択すると、指定されたトークンは、登録されたドメインとその下のドメインと一致します。たとえば、example.comwww.example.comfoo.example.combar.foo.example.com に一致するように https://example.com を登録します。https://www.example.com を登録すると、トークンは www.example.comfoo.www.example.com と一致しますが、foo.example.com とは一致しません。
    • トークンは、ワイルドカードの照合と同様に複数のサブドメインと一致します(例: *.<domain>)。example.com のトークンをリクエストし、a.example.comb.example.com で提供できます。サードパーティ Cookie へのアクセスは、トークンを提供する特定のオリジンに対してのみ再度有効になります。すべてのサブドメインに対して有効になるわけではありません。サブドメイン マッチングが有効になっている場合に有効になる Cookie は何ですか?をご覧ください。
    • 同じドメインに属さない個別のオリジンにクロスサイト コンテンツをホストする場合は、オリジンごとに個別に登録する必要があります。
  5. [開示と承認] に含まれるすべての条件に同意するには、すべてのチェックボックスをオンにします。
  6. リクエストを送信します。
  7. リクエストの手続きを進めるには、追加の情報が必要となります。自動生成されたチケットが記載されたメール通知が届きます。このメールには、以下の情報を入力するよう求めるメッセージが記載されています。
    • リクエストされた送信元に関連付けられているサブドメインの数
    • goo.gle/report-3pc-broken に以前報告した、関連するサードパーティの不具合リポジトリのバグのバグ ID またはリンク。
    • 検討を希望する破損/ユースケースに関する追加情報/コンテキスト。(トライアル リクエストが拒否された場合の再審査請求の場合は、お客様のオリジンがこのトライアルの概要の条件を満たしている理由と方法を説明してください)。

リクエストが送信されると、Google でリクエストを審査し、審査が完了したとき、追加情報が必要なとき、リクエストが承認されたか拒否されたかをお知らせします。また、結果のステータスと根拠も通知されます。承認された場合は、必要に応じてトライアル トークンを提供できます。拒否された場合は、リクエスト チケットのガイダンスに沿って対応します。

テスト用にフラグを設定する

現時点では、Chrome 123 以降で利用可能な次のフラグを設定して、効果的なテストを行うことをおすすめします。このフラグの設定の組み合わせにより、モード B のユーザー エクスペリエンスを再現できます。

  • chrome://flags/#third-party-cookie-deprecation-trialenabled
    これがデフォルトです。トライアルへの参加を許可します。

  • chrome://flags/#tracking-protection-3pcdenabled
    トラッキング保護を有効にする: アドレスバーにアイコン UI を表示して、ユーザーがサイトのサードパーティ Cookie を一時的に有効にできるようにします。また、chrome://settings/cookies ではなく chrome://settings/trackingProtection を表示します。

  • chrome://flags/#tpcd-metadata-grantsdisabled
    猶予期間が適用されていない場合と同様に Chrome が動作するようにします。これを使用して、猶予期間が終了する前に、サイトがサポート終了トライアル トークンを正しくデプロイしていることを確認できます(猶予期間が適用されるサイトの場合)。

  • chrome://flags/#tpcd-heuristics-grantsdisabled
    ヒューリスティックに基づく緩和策を許可しない。これは、ヒューリスティックによる緩和措置なしで、他の長期的な修正(サードパーティ Cookie なし)が想定どおりに機能していること、およびデプリケーション トライアルへの参加が想定どおりに機能していることをテストする場合に役立ちます。

猶予期間が意図したとおりに機能することを手動でテストする必要がある場合は、デプロイをテストする前に、無効にするのではなく chrome://flags/#tpcd-metadata-grants有効にする必要があります。

トライアル トークンを追加する

詳しくは、オリジン トライアルのスタートガイドサードパーティのオリジン トライアルChrome オリジン トライアルのトラブルシューティングをご覧ください。

クロスサイト コンテキストで Cookie を設定または送信するすべてのページ レスポンスにトライアル トークンを含める必要があります。

HTTP ヘッダーでトークンを指定する

クロスサイト iframe 内に埋め込まれたページのサードパーティ Cookie を再度有効にする必要がある場合は、ページ レスポンスに Origin-Trial HTTP ヘッダーを含めることができます。

Origin-Trial: TOKEN_GOES_HERE

これは、独自のレスポンスでトークンを提供しているため、サポート終了トライアル登録で「サードパーティ マッチング」を有効にしないことに相当します。

そのページ レスポンスで Cookie を設定できます。同じオリジンに対する後続のリクエスト(そのページのサブリソースやそのページからのナビゲーションなど)には、サイトのクロスサイト Cookie が含まれ、Cookie が設定されることもあります。

ページ レスポンスで提供されるトークンを示す図。

セッション内のオリジンへの最初のリクエストでクロスサイト Cookie を設定したい場合は、トライアル名を渡す Critical-Origin-Trial ヘッダーを使用することもできます。

Critical-Origin-Trial: Tpcd

これにより、ブラウザはサードパーティ Cookie を有効にしてリクエストを再試行します。

非推奨トライアルは永続的なトライアルとして提供されます。つまり、ブラウザがトークンを受け取ると、トライアル トークンのない iframe が読み込まれるまで、トライアル動作が適用されます。iframe の読み込みごとに、試用トークンを一貫して送信することをおすすめします。

メタタグでトークンを指定する

ページ内で、ドキュメント <head> でメタタグを使用できます。

<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">

メタタグを使用すると、ページ内の後続のリクエストまたは JavaScript に対してクロスサイト Cookie が有効になりますが、最初のリクエストで既存の Cookie を送信する必要がある場合は、HTTP ヘッダーを使用する必要があります。

JavaScript でトークンを挿入する

独自のページ リクエストの配信前または配信なしでオリジンのサードパーティ Cookie を有効にする必要がある場合(クロスサイト画像リクエストで Cookie が必要な場合や、JavaScript で iframe を作成する予定がある場合など)は、JavaScript を使用してトップレベルのサイトにトークンを挿入できます。

const otMeta = document.createElement('meta');
otMeta.httpEquiv = 'origin-trial';
otMeta.content = 'TOKEN_GOES_HERE';
document.head.append(otMeta);

これを許可するには、オリジン(サードパーティ)のトークンを別のサイトに挿入するため、非推奨トライアルの登録で「サードパーティ マッチング」を有効にする必要があります

サードパーティ マッチングが有効になっているトークンは、自社のものを含む任意のオリジンに挿入でき、機能します。

サードパーティ スクリプトが親ページにトークンを挿入することを示す図。

トライアル トークンなしで iframe が読み込まれた場合、永続的なトライアルは無効になります。トライアルが最初にサードパーティ スクリプトの読み込みで有効にされた場合でも、読み込まれるすべての iframe でトライアル トークンを一貫して指定する必要があります。

トークンを検証する

DevTools を開き、[Application] タブに移動します。左側のナビゲーションで [フレーム] ツリーを開きます。フレームを選択すると、トークンが提供されている場合は [オリジン トライアル] セクションが表示されます。トークンを最上位サイトに挿入する場合は、[top] エントリに表示されます。それ以外の場合は、埋め込みページに対応するフレームを選択する必要があります。

[オリジン トライアル] セクションに、トークンを指定した場合は「Tpcd」のエントリが表示されます。機能が正常に有効化されると、緑色の [有効] ステータスが表示されます。問題がなければ、ステータスは緑色になります。問題がある場合は、ステータスが赤色になり、エントリを開いて問題を確認できます。

非推奨トライアルを有効にするために必要な有効なトークンは 1 つだけです。ファーストパーティとサードパーティの両方のマッチングに登録している場合は、ページ内で両方のトークンを指定しても問題ありません。たとえば、さまざまな方法で埋め込む可能性がある単一のページがある場合、トークンを動的に選択する必要はありません。両方を提供すると、どちらのコンテキストでもトライアルが有効になります。

有効になっている Cookie

デプリケーション トライアルでは、トライアルに登録されたオリジンのサードパーティ Cookie のみが有効になります。有効にすると、そのオリジンへの iframe リクエストとサブリソース リクエストにサードパーティ Cookie が設定されます。サードパーティ Cookie は、そのオリジンの iframe 内の document.cookie でも使用できます。

Cookie の Domain 属性は考慮されません。リクエスト URL のオリジンのみが考慮されます。リクエストにサードパーティ Cookie が含まれていると判断されると、Cookie のドメインがより許容範囲が広い場合でも、そのような Cookie はすべて通常どおりに付加されます。

たとえば、https://one.test.example が登録され、そのトークンが https://one.test.example iframe で提供されている場合:

  • https://one.test.example/image.jpghttps://one.test.example から設定された Cookie を受信します。
  • https://one.test.example/image.jpg は、Domain=.test.example を使用して他のオリジンから設定された Cookie を受信します。
  • https://test.example/image.jpg リクエストまたは https://two.test.example/image.jpg リクエストは同じオリジンではないため、サードパーティ Cookie を受け取りません。

サブドメイン マッチングが有効になっている場合、どの Cookie が有効になりますか?

[すべてのサブドメインを照合] オプションを使用すると、登録オリジンまたはより具体的なサブドメインを持つオリジンで 1 つのトークンを使用できます。サブドメインが一致する https://test.example のトークンを使用すると、https://test.examplehttps://one.test.examplehttps//two.test.example の iframe とサードパーティ スクリプトの読み込みでトライアルを有効にできます。

また、サブドメインの一致が有効になっている場合、サードパーティ Cookie は、対応するサブドメインに関連付けられたリクエストと iframe でも使用できます。たとえば、https://test.example でサブドメイン マッチングを使用する場合、https://cdn.one.test.example/image.jpg などのサブリソース リクエストはサードパーティ Cookie を受け取ります。

トライアルの無効化では、サブドメインのマッチングは考慮されません。トライアルを無効にするには、登録のオリジンと完全に一致する iframe をトークンなしで読み込む必要があります。したがって、サブドメイン マッチングを使用する https://test.example の登録を無効にできるのは、トークンのない https://test.example iframe のみです。今後変更される可能性があるため、トライアルを有効にする場合はすべてのサブフレーム iframe にトークンを指定し、トライアルを無効にする場合はすべての iframe からトークンを削除することをおすすめします。

トライアル トークンのトラブルシューティング

Chrome オリジン トライアルのトラブルシューティングでは、トライアル トークンの登録とデプロイのデバッグに役立つ包括的なチェックリストを提供しています。

このトライアルでよく発生する問題は次のとおりです。

  • [オリジンのすべてのサブドメインを照合できるトークンが必要です。] オプションを選択すると、指定したトークンは、登録されたドメインとその下位ドメインと一致します。たとえば、example.comwww.example.comfoo.example.combar.foo.example.com と一致するように https://example.com を登録します。https://www.example.com を登録すると、トークンは www.example.comfoo.www.example.com に一致しますが、foo.example.com には一致しません。
  • ウェブサイトに埋め込まれたサードパーティのサイトやサービスは、自身でトライアルに登録する必要があります。管理または所有していないドメインは申請しないでください。
  • オリジン トライアルの登録で誤りがあった場合は、エラーを修正して新しいトークンを取得するために、新たに登録する必要があります。

よくある質問

  1. Disconnect.me リストについて質問がある場合はどうすればよいですか?
    • Google は Disconnect リストを管理していないため、Disconnect リストに関するお問い合わせは support@disconnect.me までお問い合わせください。詳細については、トラッカー保護ページをご覧ください。
  2. ドメインが広告と広告以外の目的の両方に使用されている場合、サポート終了トライアルに登録できますか?
    • 広告に使用されるサードパーティの埋め込みとサービスは、このブログで以前に説明した理由により、サポート終了トライアルの対象外です。これには、広告以外の目的でも使用される広告関連のドメインも含まれます。詳しくは、資格要件と審査プロセスをご覧ください。
  3. サイトでは、サポート終了トライアルに登録したパートナーを確認できますか?パートナー全体で登録を制限できますか?
    • はい。Chrome DevTools の [Application] パネルでトークン情報を確認することで、サポート終了トライアル トークンに依存している埋め込みとサービスを確認できます。詳しくは、Chrome オリジン トライアルのトラブルシューティングをご覧ください。
    • トップレベルのサイトでは、パートナー全体での登録、またはページ上の埋め込みとサービスを制限することはできません。必要に応じてパートナーに連絡します。
  4. このトライアルは、ユーザー エージェントの削減元のトライアルなど、他のトライアルとどのように異なりますか?
    • このサポート終了トライアルの大きな違いは、参加条件を満たす必要がある新しい登録プロセスと、オリジン トライアル コンソールの新しい UI/ページです。
    • 2 つ目の違いは、サードパーティの埋め込みサイト専用であり、複数のサイトやサービス クライアント間で最大限のウェブ互換性の問題を解決できることです。
  5. トップレベルのサイトが登録して、サイト全体でサードパーティ Cookie を有効にできる、サードパーティ Cookie のデプリケーションに関するファーストパーティのデプリケーション トライアルはありますか?
    • 現在のところ、Google はサードパーティの埋め込みとサービスに重点を置いています。自社サイトについては、サイトに直接変更を加えて不具合を修正し、埋め込みサードパーティにはこのサポート終了トライアルに登録することをおすすめします。
  6. サポート終了トライアルの申請の審査にはどのくらい時間がかかりますか?申請のステータスはどこで確認できますか?
    • 応答時間は異なる場合があります。第 1 四半期の初めにサードパーティ Cookie の 1% のサポート終了に備えて、できるだけ早く登録プロセスを開始することをおすすめします。登録を送信してから 1 ~ 2 週間以内に返信がない場合は、3pcd-deprecationtrial@google.com までお問い合わせください。
    • オープンな会話、決定ステータス、根拠に関するバグスレッド。
  7. 非推奨トライアルの登録が承認され、推奨どおりトライアル トークンがデプロイされました。ただし、非推奨トライアルが想定どおりに機能していません。どうすればよいですか?