#「Mastering DMP」
Play FrameworkでマイクロDMPを作成します
-
OS: Windows or Mac
-
AP: Play Framework
-
DB: MariaDB or MySQL
-
HTTP Server: Nginx
-
IDE: Eclipse or IntelliJ
-
Java8
-
Chrome EditCookieプラグイン
- MicroDMP AP Server ・・ Play Framework(Java)
- Nginx Server ・・ Browser Request -> Nginx -> mDMP
- mdmp.js・・ 3rd Party Cookie を扱うJavaScript
開発用端末で起動するサーバー群
Server Software | TCP PORT | 役割 |
---|---|---|
Nginx | 80 | ダミーサービスサイト |
Nginx | 8080 | DMP HTTP サーバー |
Play Framework | 9000 | DMP AP サーバー |
MariaDB | 3306 | トラッキングデータを保存 |
sudo vi /etc/hosts
127.0.0.1 travel.com
127.0.0.1 hotel.com
127.0.0.1 nodazon.com
127.0.0.1 mdmp.com
cp /usr/local/etc/nginx/nginx.conf /usr/local/etc/nginx/nginx.dummy_service.conf
sudo nginx -c /usr/local/etc/nginx/nginx.dummy_service.conf
ブラウザで以下にアクセスし成功すればOK
いったん止めておく
sudo nginx -s stop
設定ファイルだけコピーしておく
cp /usr/local/etc/nginx/nginx.conf /usr/local/etc/nginx/nginx.dev_mdmp.conf
Playインストール
https://playframework.com/ Activatorをダウンロードし activator newでプロジェクトを新規作成する。(Javaプロジェクト)
~/code/activator-1.3.5-minimal/activator new
Fetching the latest list of templates...
Browse the list of templates: http://typesafe.com/activator/templates
Choose from these featured templates or enter a template name:
1) minimal-akka-java-seed
2) minimal-akka-scala-seed
3) minimal-java
4) minimal-scala
5) play-java
6) play-scala
(hit tab to see a list of all templates)
5
Enter a name for your application (just press enter for 'play-java')
>anzu
cd anzu
activator run
http://localhost:9000/ にアクセスし成功したらOK
mysql.server start
mysql -u root
[sql console]
create database open_micro_dmp
use open_micro_dmp
TABLE
CREATE TABLE `audience_3rd_access_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`audience_cookie_id` varchar(80) NOT NULL DEFAULT '',
`access_host_name` varchar(255) NOT NULL DEFAULT '',
`access_url` varchar(4096) NOT NULL DEFAULT '',
`access_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`is_first` tinyint(1) NOT NULL,
`ip` varchar(15) DEFAULT NULL,
`ua` varchar(255) DEFAULT NULL,
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `audience_cookie_id_index` (`audience_cookie_id`),
KEY `access_host_name_index` (`access_host_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
デバッグでCookieをよく操作するので以下のプラグインを入れておく
https://chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg?hl=ja
- Play Frameworkのコントロラーの書き方
- Play FrameworkでのCokkie操作
- 透明の1x1ピクセルを返すレスポンスの生成方法
- nginx.confの書き方
- NginxとPlay Frameworkとの連携を学ぶ
- サービスサイトにトラッキングタグを埋め込む
- DNTの仕組み
- DMPサービスのDNT対応
- DNT対応のON/OFFの切り替え方法
- play frameworkのapplication.confの使い方
- オプトアウトの概念
- オプトアウトページの作成
- DMPのオプトアウト対応
- Playからmariadb(mysql)への接続
- リクエストデータの永続化
とりあえず、ハンズオンの2時間でここまでできたら嬉しいライン
- JSタグでのトラッキングの仕組を学ぶ
- ブラウザに該当のクッキーIDの閲覧履歴を表示する(ドメインをまたいだ広告表示の元ネタ)
ここからは自己学習
- リアルタイムにDBへ保存するのでなくログファイルからDBへ保存する
- 定期的にログをDBへ格納するバッチを作成する
- またFluentdやFlumeを検討する
- HBaseの利用方法
- 管理画面からのSQLの実行のために、BigDataTable(HBase)とMySQLの両方にデータを持たせることも検討する