こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。
Safariがますます無慈悲になってまいりました。
ITP2.1ではHttpOnly属性+Secure属性のないCookieは有効期限が最大7日までになります。
本件について、まだAdobeとGoogleから2019年3月21日現在、公式な見解が出てません。
というわけで、ITP2.1からAdobeAnayticsとGoogleAnalyticsのクッキーを自衛する手っ取り早い方法を考えました。
実装したサイトはこちら。
二代目俺のメモ
上記サイトは私個人のサイトでして、Wordpressで動かしてます。
Wordpress = つまりPHPが動くサイトなのでPHPを使ったプログラムが動きます。
じゃ、AAとGAが生成するクッキーを単純にPHPを使ってHttpOnly属性とSecure属性を追加したコピーを複製して、消されたらコピーから復元すればいいじゃん、と思って実装したのがこちらのPHP。
用意するPHPコード
itp.php
$domain = '.kwonline.org'; $expire = time() + 60 * 60 * 24 * 730; //Adobe Analytics $itp_amcv = $_COOKIE['itp_amcv']; //Cookie名にAdobeOrgIDが入ります。AdobeOrg前の%40はデコードしておく。 $org_amcv = $_COOKIE['AMCV_0123456789@AdobeOrg']; if ($org_amcv) { setcookie('itp_amcv', $org_amcv, $expire, '/', $domain, 1, 1); } else if ($itp_amcv) { //Cookieをセットするときは@を%40にエンコードしておく。 setcookie('AMCV_0123456789%40AdobeOrg', $itp_amcv, $expire, '/', $domain); setcookie('itp_amcv', $itp_amcv, $expire, '/', $domain, 1, 1); } //Google Analytics $itp_ga = $_COOKIE['itp_ga']; $org_ga = $_COOKIE['_ga']; if ($org_ga) { setcookie('itp_ga', $org_ga, $expire, '/', $domain, 1, 1); } else if ($itp_ga) { setcookie('_ga', $itp_ga, $expire, '/', $domain); setcookie('itp_ga', $itp_ga, $expire, '/', $domain, 1, 1); }
itp_gif.php
include_once('./itp.php'); //1x1ピクセルの透過gifを配信 header('Content-Type: image/gif'); echo base64_decode('R0lGODlhAQABAJAAAP8AAAAAACH5BAUQAAAALAAAAAABAAEAAAICBAEAOw==');
で、これをどう使うか。そしてどこに設置するか。
1. AA/GAタグが埋まってるPHPページ本体でこの処理を実施。
2. 初回訪問ユーザーはAA/GAタグ発火後にこれらのクッキーが生成されるので、BODY末尾に透過GIFとしても呼び出す。
なんと、2箇所で呼び出す必要があるわけです。
1.は、既に過去に訪問した事があるSafariユーザー向けで、JSによるデフォルトクッキーが消えてる場合に、永続クッキーから訪問者IDを「復元」してあげるため。
2.は、初回訪問で永続クッキーがまだないSafariユーザーのために、改めて永続クッキーをセットしてあげるため。
メンドクサイが仕方ない。
いざ実装
というわけで、1.の実装。
Wordpressテーマファイルのheader.phpでまずitp.phpをインクルード。
続いて、2.の実装。
ウィンドウ読み込みのタイミングでGIF画像をタグマネージャーで配信します。
手っ取り早く、GTMのカスタム画像タグで配信します。
拡張子は.phpですが、これでgif画像が配信されます。
以上で実装完了。
ブラウザでサイトにアクセスすると、Adobe用のitp_amcvクッキーとGoogle用のitp_gaクッキーが出来上がってます。
いずれも、HttpOnly属性とSecure属性になってます。
元のAdobeクッキー(AMCV)と、Googleクッキー(_ga)を削除してブラウザをリロードすると、見事に同じ内容でクッキーが復活します。
Adobe Analytics
Google Analytics
まとめ
これでAAとGAの訪問者クッキーを永続化出来ますが、もちろんデメリットもあります。
サーバー側の処理も増えるし、ネットワークの通信量も増えます。
ITPの対策はJavascriptだけではどうにもなりません。
クッキーの代わりにローカルストレージを使う方法もありますが、Appleの中の人が「いずれローカルストレージも消す」という事を示唆していました。
こうなるともはやサーバーサイドの対応が必須です。
これは覚悟すべき。
もちろん何も対策せずに、広告流入から7日間だけで勝負するという判断もありです。
対策を忘れてあとになって「クッキー消されたSafari氏ね」と匿名掲示板に書き込んで気を紛らわせるという選択もあります(謎
弊社ではAdobe認定エキスパートとGoogleクラウド認定データエンジニアたちが、日進月歩のマーケティングテクノロジーを活用したデータ分析基盤構築のお手伝いをしております。
お問合わせはこちらからどうぞ。
ブログへの記事リクエストはこちらまで