ここまでDMPに関して、特にデータの収集面に関しての概要をまとめてきました。
ここまで来るとだんだん自分でも実装したくなってきます。実装方法は色々あるとは思いますが、CookieSyncを実際に試してみたいと思ったので、ものすごくシンプルな構成でCookieSyncを実装してみました。
構成とシナリオ
構成というほど大したものでは無いですが、以下の構成及びユーザーの動きを想定しました。
構成
- siteA:DMPとCookieSyncを行いたいWebサイト
- ユーザー
- DMP:siteAのCookieSync相手
シナリオ
- siteAにはCookieSync用の1x1pixelの画像を仕込む
- ユーザーがsiteAに来訪
- ユーザーにはsiteAのCookieがセットされる
- siteAからDMPに画像のリクエスト
- DMP側ではリクエストからsiteAのCookieIDを取得してユーザーにDMP側のCookieを発行しつつ、1x1の画像を返す
siteA側
- cidというCookieでユーザーにIDを振る(1000までの乱数)
- DMP.comに対して、/DMP/${cid}.gifという画像をリクエスト
- echoしてる部分はCookieの状態を見るためだけなので適宜無視してください
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
|
DMP側
単純にphpに対してクエリストリング付与して呼び出したり、画像にクエリストリング付与して呼び出すのでもいいのですが、それっぽい感じにするために.htaccessを使います。
- /DMP/にて展開しています
- 画像の置いているディレクトリに.htaccess設置
- 同じ階層に1x1.phpという画像を返すphpを設置
- ${cid}.gifへのリクエストを1x1.php?cid=${cid}にRewrite
- 1x1.phpでは、DMPのCookieの発行(dmpid:1000までの乱数)と、クエリストリングを受け取りマッチング処理
1 2 3 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
実際に動かしてみる
VM2台立ち上げて実験してみました。
- 192.168.80.140 : siteA
- 192.168.80.142 : DMP
に対応しています。
CookieSync前
- 前の処理のCookieIDが画面には残っていますが、ブラウザはCookieを所有していません。
CookieSync後
- siteA(192.168.80.140, cid)とDMP(192.168.80.142, dmpid)の双方のCookie情報がブラウザに存在していることが確認できます。
- DMP側にはcidとdmpidの双方が渡っています。dmpidを持ってCookieSyncを行なってきたユーザーは特定済みなので、その他の提携サイトからdmpidが振られているユーザーが訪れることで、データのカバー率がどんどん向上していきます。
まとめ
非常にシンプルな形ですが、CookieSyncが実現できることを確認しました。実際は大量のリクエストを捌くためのサーバーチューニングや、データの保持に関するアーキテクチャの検討が必要だと思いますが、とりあえず1x1ピクセルの画像を利用すればいいということの確認ができました。
実利用にはJavascriptのタグを置く形で実現することが多いと思いますが、こちらもまた別の機会に試してみたいと思います。
というわけで、しばらく重めの話が続いたので、少し軽めのお話でした。
参考
以下のサイトを参考にしました。