データマネジメントチームの金野 浩之です。
近年、Appleが提唱しているITPの影響によりCookieについて正しく理解をしておくことの重要性が高まっています。実際弊社のお客様からもCookieについてご質問いただく機会が多く、今回のブログではTD Javascript SDKにて取得可能なCookieとその取得方法についてお伝えしたいと思います。
Cookieとは?
Cookieとはwebサイトにアクセスした際に、ブラウザからwebサーバに送られるテキストデータのことです。様々なwebサービスで利用されているCookieですが、ここではトレジャーデータが提供しているWEBトラッキング用のタグ=TD Javascript SDKにフォーカスしたいと思います。
WEBトラッキングやアクセス解析ツールではCookieをユーザの識別子として利用しています。ただし、Cookieはサイトにアクセスしている端末・ブラウザごとに発行されるため、例えば私がPCのChromeとInternet Explorerで同じサイトにそれぞれアクセスした場合、異なるCookieが発行されるためアクセス解析ツール上は2ユニークユーザという扱いになります。
1st Party Cookieと3rd Party Cookieとは?
2つのCookieの定義は単純で、ユーザがブラウザでアクセスしているドメインが発行しているCookieなのか(=ファーストパーティCookie)、それとも第三者ドメインが発行しているCookieなのか(=サードパーティCookie)となります。Javascriptから生成したCookieについても必ずドメインと紐付いた形でブラウザに保存されます(ドメイン指定がない場合、Javascriptが実行されたドメインにひも付きます。)。
1st Party Cookieは基本的に紐付いているドメイン内でしか利用できませんが、3rd Party Cookie は外部ドメインから発行されるCookieのため、サイトを横断して利用することが可能です。そのため、パブリックDMPが保持しているユーザの興味関心情報を3rd Party Cookieで紐付け、CDP上でデータ統合を行うといった活用のされ方をしてきました。
しかし外部サービスと容易にデータを紐付けできてしまうというセキュリティ上の懸念から、ITP2.1以降、特に3rd Party Cookieに対する制限が厳しくなり、2021年 5月現在はiOSデバイスやSafari ブラウザではほぼ、3rd Party Cookieを利用することができなくなっています。
Cookieはどうやって発行されるか?
Cookieを設定する方法は大きく2つあります。1つ目はHTMLソースに埋め込まれたJavascriptによって設定する方法で、このCookieをClient Side Cookieと呼びます。以下のようにブラウザからサイトにアクセスするとそのドメインに対してhttpリクエストが発行され、htmlファイルが返却されます。そのhtmlファイル内に含まれているJavascriptがブラウザ側で実行されることでCookieが発行されブラウザに保存される仕組みです。
Cookieは必ずドメインに紐づけてブラウザに保存されるため、アクセスしたサイトと同じドメインに紐付いていれば1st Party Cookie、異なるドメインに紐付いて保存されれば3rd Party Cookieになります。
2つ目はWEBサーバから発行されたCookieをそのままブラウザに保存する仕組みで、これをServer Side Cookieと言います。例えばマイページにログインしたあとサイト内を回遊してもログイン状態を保持するために、WEBサーバ側からSessionを維持するためのCookieを発行するといった形で利用されています。また、アクセスしたサイトと異なるドメインのWEBサーバ(下図では広告配信サーバと仮定)から発行されたCookieもServer Side Cookieとなりますが、ドメインが異なるため3rd Party Cookieになります。
トレジャーデータから提供しているTD JS SDKはJavascriptで組まれたタグになるのですが、Client Side CookieだけではなくServer Side Cookieもご利用いただけます。
TD Javascript SDKで取得可能なcookieの種類について
TD JS SDKでは1st Party Cookieであるtd_client_id、td_ssc_id、3rd Party Cookieであるtd_global_idの合計3種類のCookieを取得可能です。この内、td_client_id、td_global_idはJavascript側でブラウザにセットされるため、Client Side Cookie。td_ssc_idはServe Side Cookieとなります。※td_ssc_idをご利用になる場合、お客様のドメインの下に「NSレコード」を作成して頂く対応や、SSL証明書の御用意、TD JS SDKの修正といった作業が必要になりますので、ご希望の場合は担当窓口までご連絡ください。
td_client_id、td_global_idを取得する際のイメージは下記の通りです。
Javascript側で発行したCookeiを④の処理で取得し、Treasure Data CDPにweblogとして送信します。一方td_ssc_idまで含めて取得する場合のイメージは下記の通りです。
TD JS SDKからServer Side Cookieを発行するためのsscサーバにアクセスし、サーバ側からCookieを発行してもらうステップが増えています。※なおsscサーバでは計測対象のサイトと同じトップレベルドメインにして頂く必要があります。このようにしてブラウザ側に保存されたCookieですが、ブラウザ側のデベロッパーツールを開いて頂くことで、ご確認頂くことが可能です。
例えば下記はChromeのデベロッパーツールを利用した場合のキャプチャです。
Safariでみた場合、同じCookie名でも有効期限が異なっていることをご確認いただけます。
最後に
今後もCookieに関する制約はどんどん厳しくなっていくことが想定されますので、今後もトレジャーデータではCookieに関する最新情報を発信して参りたいと思います。