#4章 オプトアウトに対応する
クッキーや広告識別子を使った行動ターゲティング広告の配信を停止することです。
DNTとは異なり各広告業者(例えばGoogle、Yahoo)のオプトアウトページにアクセスし、オプトアウトリクエストをトラッキングサーバーに送信することで実行されます。
クッキーのトラッキングをオプトアウトで停止するにはサーバー側では専用のオプトアウトクッキーを設定し、そのオプトアウトクッキーを持っているオーディエンスに対してはトラッキング処理、またはトラッキングで集めた情報を元にした広告配信は停止しないといけません。
DNTとは違い、オプトアウトはDMP側で必ず対応する必要があります。
DMPサーバー側でオプトアウトに対応するには以下が必要です
- オプトアウトページ(もしくはURLのみ)
- オプトアウトリクエストのルーティング設定とAP処理
application/conf/MicroDmpCore.javaを編集する
オプトアウト用のクッキーの定義をする
private static final String COOKIE_OPT_OUT_KEY = "MICRO_DMP_OPT_OUT";
// オプトアウトが有効である場合の値(今回はフラグとして扱うので1に設定、APでは0に設定することはない
private static final String COOKIE_OPT_OUT_VALUE = "1";
オプトアウト用のリクエストを受け付けるメソッドを定義
/**
* オプトアウトのリクエストを処理します。
* Cookieにオプトアウトの設定をします。
*
* @return
*/
public Result optOut(){
// FIXME 本来はオプトアウトのクッキーの有効期限は無限が好ましい
response().setCookie(COOKIE_OPT_OUT_KEY, "1", COOKIE_MAX_AFTER_AGE);
Logger.debug("set optout cookie!");
return ok();
}
オプトアウトクッキーを持っているかの判定を行う
/**
* リクエストのCookie値を取得しOPTOUTしているオーディエンスかを判定します
* @return
*/
public static boolean isOptOut() {
if(request().cookie(COOKIE_OPT_OUT_KEY) != null) {
Http.Cookie cookie = request().cookie(COOKIE_OPT_OUT_KEY);
Logger.debug("OptOut Cookie Value=" + cookie.value());
if (cookie.value().equals(COOKIE_OPT_OUT_VALUE)) {
Logger.debug("is OptOut Cookie.");
return true;
}
}
return false;
}
pixcelTrackingメソッドにオプトアウト判定メソッド呼び出しを追加
// pixcel tracking
// ref https://support.google.com/dfp_premium/answer/1347585?hl=ja
public Result pixcelTracking() {
// ブラウザのDNTとDMPのDNT設定が有効の場合トラッキング処理はしない
if (isDNT()) {
return ok();
}
// ブラウザにオプトアウトのCookieがある場合トラッキング処理はしない
if(isOptOut()) {
return ok();
}
processingCookieId();
response().setContentType("image/gif");
return ok(onePixcelGifBytes);
}
conf/routes
GET /optout controllers.MicroDmpCore.optOut()
vi /usr/local/etc/nginx/nginx.dev_mdmp.conf
location /optout {
proxy_pass http://play-mdmp;
}
sudo nginx -c /usr/local/etc/nginx/nginx.dev_mdmp.conf -s reload
ブラウザで以下のURLにアクセス(本来はオプトアウト専用のページを作り、そこに以下のリンクが貼ってある。)
MICRO_DMP_OPT_OUTのキーが設定されていたらOK
![Imgur](http://i.imgur.com/Mn87O9q.png)
オプトアウトした後に、hotel.comにアクセスした時のデバッグログ
[debug] - application - rawRequestDntFlag=null
[debug] - application - OptOut Cookie Value=1
[debug] - application - is OptOut Cookie.
DDAIというサイトでは日本の主要なターゲティング広告業者を一括でオプトアウトできるようになっています。
オプトアウトは各サービスごとにオプトアウトする必要があり、本来一括でオプトアウトできるはずのDNTが広まっていない現状ではDDAIは一括オプトアウトしたいオーディエンスにとっては有効なソリューションになっています。