サードパーティクッキーとは? 基本の仕組みを解説(3rd party cookie)
今日は、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)のドメイン名」と同じならば「ファーストパーティクッキー」と呼び、それ以外のドメイン名からのものが「サードパーティクッキー」と呼ばれます。
さて、話題になっている「ITP(Intelligent Tracking Prevention)」とアドテクが、ここで関係してきます。
AppleはSafari 11に搭載したITPで、サードパーティクッキーのデータを利用できる期間を24時間に制限(そのドメイン名にアクセスしなければ)しました。
なぜアドテクがその影響を受けるのでしょうか?
GoogleアナリティクスやAdobe Analyticsなどの主要なアクセス解析ツールはファーストパーティクッキーを使ってユーザーを区別していますので、ITPでも影響は受けません。
しかし、アドテク系のサービスでは、
- リターゲティング
- デモグラ属性判別
- トラッキング
- ターゲティング
などのためのユーザー判別にサードパーティクッキーを利用しているところも比較的多く、そのためITPの影響で動作がうまくいかなくなる(Safari 11以降では)ということですね。
さて、ここ以降はクッキー自体の解説からは少し離れるのですが、Appleはなぜそうした制限を設けるようにしたのでしょうか。AppleがITPを推した理由は、プライバシー(とアップルの売上)でしょう。要は、
アドテク言うけど、きみらブラウザでユーザーを追っかけすぎやん? ユーザー嫌がってるやん? ぼちぼち、ええかげんにしときや
というところだと言われています。
セカンドパーティクッキーは……?
ちなみに、「セカンドパーティクッキーは?」と気になるかもしれませんが、そういう用語は存在しません。
メインのHTMLをやりとりしている相手が「ファーストパーティ」で、それ以外の相手が「サードパーティ」ですから、「セカンドパーティ」はブラウザそのものになると考えるのが自然でしょう。
そういう意味では、HTML5で登場したlocalStorageやsessionStorageなどの仕組みが「セカンドパーティクッキー」のようなものなのかもしれません(ただしlocalStorageなどのデータはそのままサーバーに送信されることはありませんので、クッキーとはだいぶ性格が違いますが)。
ソーシャルもやってます!