初代編集長ブログ―安田英久

サードパーティクッキーとは? 基本の仕組みを解説(3rd party cookie)

そもそもクッキーとは何で、サードパーティクッキーとファーストパーティクッキーは何が違うのかを理解しておきましょう
Web担のなかの人

今日は、Web技術の基本を解説します。テーマは「サードパーティクッキー」。そもそもクッキーとは何で、サードパーティクッキーファーストパーティクッキーは何が違うのかを、理解しておきましょう。

Safari 11に搭載されたITPという仕組みでサードパーティクッキーが制限され、広告配信がうまくいかなくなる

というトピックがここ1週間ほど話題になっており、

弊社の広告システムでは、ITPに対応しました

というリリースが、アドテク各社から次々と出されています。

さて、そもそもクッキーとは何で、何がサードパーティクッキーで、なぜサードパーティが制限されるようになっているのでしょうか。

(この図について詳しくは後述)

クッキーは、ブラウザに保存しておいたデータをサーバーとやりとりする仕組み

そもそも「クッキー(HTTP Cookie)」とは何でしょうか。

技術的にはRFC 6265という文書に定められている「HTTPにおける状態管理の仕組み」です。

もうすこしやわらかく言うと、次のようなものだと考えるといいでしょう。

  • Webサーバーとブラウザの間でデータをやりとりする仕組みの1つ

  • ユーザーやブラウザの状態を継続的に管理するための情報を保存する場所

  • たとえば「ユーザーID」「ログイン状態」などを保存することが多いが、どんな情報でも入れられる

  • クッキーに保存された情報は、そのままページ上に表示されるわけではない

  • ブラウザはクッキーの情報を、定められた期間は保存している

  • クッキーの情報は、アクセスの際にWebサーバーに自動的に送られサーバー側で処理に使うほか、ページ上のJavaScriptなどからも利用できる

  • クッキーごとに「どのドメイン名のクッキーか」が定められている

クッキーはドメイン名(とパス)に紐付けられている

クッキーを理解するにあたって最も大切なのは、前述の最後に挙げた、各クッキーに「このクッキーは、どのドメイン名(とパスとHTTPSかどうか)用のもの」という情報が紐付けられているということです。

原則としてクッキーは、HTML、画像、CSS、JavaScript、Ajaxなど、「サーバーからブラウザに送られた」リソースに紐付けて扱われています。

それによってブラウザは、「このクッキーはwww.example.jpのもの」「このクッキーはwww.example2.comのもの」というように判別して保存したり処理したりしています。

ちなみに、こうした「どこから来たのか」の情報を「オリジン(Origin)」と呼びます。

そして、HTMLやJavaScriptは、そのHTMLやJavaScriptが送られた元ドメイン名に所属しないクッキーは読めません(クロスオリジン、つまりオリジンを超えた情報アクセスの禁止)。

もちろんサーバーに送られるクッキーは、そのドメイン名に属するものだけです。

ファーストパーティクッキーとかサードパーティクッキーって何?

では、「ファーストパーティクッキー」とか「サードパーティクッキー」というのは、何を意味するのでしょうか。

前述のようにクッキーはドメイン名に紐付けられています。

そして、その紐付けられているドメイン名が、「現在ブラウザで表示しているページ(アドレスバーに表示しているURL)のドメイン名」と同じならば「ファーストパーティクッキー」と呼び、それ以外のドメイン名からのものが「サードパーティクッキー」と呼ばれます。


ファーストパーティクッキーとかサードパーティクッキーとかって何?
要は:
ブラウザで表示中のページHTMLと同じサーバーから送られた/送るのがファーストパーティクッキー。制限なし。
そうでなければ、サードパーティクッキー。利用に制限がつく場合あり。
例:
ブラウザでwww.example.jpのページを表示しているとする(つまりHTMLはwww.example.jpから取得している)。
そのHTMLにはいくつかの画像やJavaScriptが使われており、
画像: www.example.jp と www.example2.jp
JavaScript: www.example.jp と www.example3.jp
からそれぞれ取得しているとする
ブラウザで表示しているページのドメイン名:www.example.jp
www.example.jpのサーバー
ブラウザで表示中ページのドメイン名 = www.example.jp
=
このサーバーからのクッキーのドメイン名 = www.example.jp
表示中ページと同じドメイン名のクッキー = ファーストパーティクッキー
www.example2.jpのサーバー
ブラウザで表示中ページのドメイン名 = www.example.jp
≠
このサーバーからのクッキーのドメイン名 = www.example2.jp
表示中ページと違うドメイン名のクッキー = サードパーティクッキー
www.example3.jpのサーバー
ブラウザで表示中ページのドメイン名 = www.example.jp
≠
このサーバーからのクッキーのドメイン名 = www.example3.jp
表示中ページと違うドメイン名のクッキー = サードパーティクッキー

さて、話題になっている「ITP(Intelligent Tracking Prevention)」とアドテクが、ここで関係してきます。

AppleはSafari 11に搭載したITPで、サードパーティクッキーのデータを利用できる期間を24時間に制限(そのドメイン名にアクセスしなければ)しました。

なぜアドテクがその影響を受けるのでしょうか?

GoogleアナリティクスやAdobe Analyticsなどの主要なアクセス解析ツールはファーストパーティクッキーを使ってユーザーを区別していますので、ITPでも影響は受けません。

しかし、アドテク系のサービスでは、

  • リターゲティング
  • デモグラ属性判別
  • トラッキング
  • ターゲティング

などのためのユーザー判別にサードパーティクッキーを利用しているところも比較的多く、そのためITPの影響で動作がうまくいかなくなる(Safari 11以降では)ということですね。

さて、ここ以降はクッキー自体の解説からは少し離れるのですが、Appleはなぜそうした制限を設けるようにしたのでしょうか。AppleがITPを推した理由は、プライバシー(とアップルの売上)でしょう。要は、

アドテク言うけど、きみらブラウザでユーザーを追っかけすぎやん? ユーザー嫌がってるやん? ぼちぼち、ええかげんにしときや

というところだと言われています。

セカンドパーティクッキーは……?

ちなみに、「セカンドパーティクッキーは?」と気になるかもしれませんが、そういう用語は存在しません。

メインのHTMLをやりとりしている相手が「ファーストパーティ」で、それ以外の相手が「サードパーティ」ですから、「セカンドパーティ」はブラウザそのものになると考えるのが自然でしょう。

そういう意味では、HTML5で登場したlocalStorageやsessionStorageなどの仕組みが「セカンドパーティクッキー」のようなものなのかもしれません(ただしlocalStorageなどのデータはそのままサーバーに送信されることはありませんので、クッキーとはだいぶ性格が違いますが)。

用語集
CSS / Cookie / Googleアナリティクス / HTML / JavaScript / Webサーバー / アクセス解析 / クッキー / ドメイン名 / リターゲティング
この記事が役に立ったらシェア!
メルマガの登録はこちら Web担当者に役立つ情報をサクッとゲット!

人気記事トップ10(過去7日間)

今日の用語

Python
「Python」(パイソン)は、プログラミング言語の1つ。プログラマのグイド・ヴ ...→用語集へ

インフォメーション

RSSフィード


Web担を応援して支えてくださっている企業さま [各サービス/製品の紹介はこちらから]