Adobe Analytics

【実験してみた】CNAMEを使わずにAdobeAnalyticsを1stパーティクッキーで計測する

こんにちは、エクスチュアの権泳東(權泳東/コン・ヨンドン)です。

SafariのITPがついにCNAMEによってセットされたクッキーもターゲットにしましたね。

215201 – Experimental: Cap the expiry of persistent cookies set in 3rd-party CNAME cloaked HTTP responses

Adobe Analyticsを利用しているサイトでは、計測サイトのサブドメインにAdobeのサーバーをCNAMEとして割り当てて計測する方法が進んでますが、ITPのCNAMEブロック機能がリリースされるとAdobeのクッキーにも無慈悲な鉄槌が振り下ろされる事になります。

一方、GoogleAnalyticsでは、先日Server-Side GTM(以下SSGTM)がリリースされました。

SSGTMを使えばFPIDという従来の_gaクッキーに置き換わるサーバーサイドクッキーがセットされます。

これによって、

・CNAMEを使わない
・1stパーティドメインからセットされるhttp-onlyのクッキー

という計測が出来るようになるので、SSGTM+GoogleAnalyticsなら当面はITPによって消されないクッキーになります。

じゃ、Adobeはどうすんの?と思ってますがまだアナウンスがない。
という訳で自衛すべく、回避策を考案して実験しました。

何をどうするかというと、

計測サイトのサブドメインをAレコードを持ったサーバーに割り当てて、そのサーバーからリバースプロキシを使ってAdobeにデータを転送する。

という方法です。

構成図

今回は弊社のテスト用サイトを使って検証しました。

https://devstg-1.gcp.ex-ture.jp/

 

1. リバースプロキシサーバーを立てる

私はGCPが大好きなので、今回もGCPのCompute Engine(GCE)を使ってLinuxサーバーを立てます。
OSはUbuntu20.04です。

インスタンス起動後、SSHでログインしてnginxをインストールします。
LetsEncryptのSSL証明書も使うので、certbotもインストールしておきます。

$ sudo apt update -y
$ sudo apt upgrade -y
$ sudo apt install nginx certbot python3-certbot-nginx -y

 

2. DNSにAレコードを登録する

GCEのLinuxサーバーのIPアドレスを固定して、DNSにサーバーIPに対するAレコードを追加します。
今回は stats.ex-ture.jp というホスト名を使う事にしました。
Aレコードを登録したので、digを使うとこのようにIPアドレスが返ってきます。

$ dig stats.ex-ture.jp

#中略
;; ANSWER SECTION:
stats.ex-ture.jp.	425	IN	A	35.243.125.37

 

3. SSL証明書の取得と自動更新設定

今回のお題とは直接関係ないのですが、SSLを使うのでcertbotを設定します。

$ sudo certbot --nginx -d stats.ex-ture.jp

このあと適宜質問に答えて設定を進めます。
最後の「リダイレクト設定をするか?」という問いには「2.Redirect」を選びます。

SSL証明書をインストール後、一回nginxを再起動しておきます。

$ sudo systemctl restart nginx

ここで一旦ブラウザでSSL通信が可能か確認しておきます。
https でアクセス出来ればOK。

 

4. リバースプロキシ設定

さてこれが本題です。

リバースプロキシの転送設定と、あとはクッキードメインの書き換え設定を /etc/nginx/sites-available/default に書きます。
Certbotによって証明書ドメインのホスト名が追加されたserverセクションがあるので、そのlocationセクションにリバースプロキシ設定を追加します。

server {
        #中略
        server_name stats.ex-ture.jp; # managed by Certbot

        location / {
                #以下4行を追加
                proxy_pass https://exture.sc.omtrdc.net;
                proxy_pass_request_headers on;
                proxy_cookie_domain exture.sc.omtrdc.net .ex-ture.jp;
                proxy_cookie_domain sc.omtrdc.net .ex-ture.jp;
        }
        
        #省略。以下SSL設定など
}

何をやってるかというと、stats.ex-ture.jp 宛のリクエストを全てAdobeAnalyticsのサーバーであるexture.sc.omtrdc.netに転送してる訳です。
そして、Adobeのサーバーが返すクッキーのドメインを.ex-ture.jpドメインに書き換えてブラウザに戻してます。

変更を保存後、nginxをまた再起動します。

$ sudo systemctl restart nginx

 

5. Adobe Analyticsタグ(Adobe Launch)の設定

タグ設定といえば、ビーコンの送り先をstats.ex-ture.jpに変えるだけです。

trackingServerを変更

設定を反映してLaunchをパブリッシュすると、nginxのリバースプロキシ経由での計測が始まります。

ビーコンを見るといずれも stats.ex-ture.jp 宛に発生しています。

サブドメイン宛にビーコンが発生

そしてセットされるクッキーを見ると、ちゃんと .ex-ture.jpでセットされてます。

.ex-ture.jp ドメインでクッキーがセットされる

で、ここで鋭い方は気がつくはずです。
s_ecidクッキーがセットされてません。

実は弊社はAdobeAnalyticsをCNAME実装してないため、Adobe側がhttp-onlyでs_ecidクッキーをセットしてくれません。
※s_ecidクッキーがが配信されるのはCNAMEサービスを利用してるサイトのみ

Experience Cloud cookies

ですがこの方法ならば既にCNAME実装しているサイトのs_ecidクッキーもnginxによってセットされるようになります。
なるはずです。

以上、やや歯切れが悪いのですが実験結果でした。

TL;DR

今回はCNAMEを使わずにAdobeAnalyticsを1stパーティクッキーで計測する方法を実験してみました。

サイトのサブドメインでDNSのAレコードを割り当てたnginxサーバーを立てて、そこでリバースプロキシを稼働させます。
そしてそのリバースプロキシ経由でAdobeの1stパーティクッキーをセットしました。

私の希望的観測ですが、Safari ITPのCNAMEブロックがリリースされるよりも前にAdobeがSSGTMのようなソリューションをAWSかAzureを使って実現してくれるんじゃないかと期待してます。
ただの期待で終わるかも知れませんが。

弊社では、Adobe Analytics認定エキスパート資格・Google Cloud認定プロフェショナルデータエンジニア資格・Linux Professional Institute認定レベル3資格を持ったエンジニア達が各種マーテックツールの導入実装コンサルティングサービスや、GCP/AWSなどのパブリッククラウドを使ったデータ分析基盤構築コンサルティングサービスを提供しております。

お問い合わせはこちらからどうぞ。

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. Adobe Analytics

    Adobe Analytics:計算指標でevents変数を後付けでパーティシペーションにする

    こんにちは。CEOの原田です。なるべくこのブログでは新しめな内容を…

  2. Adobe Analytics

    BigQuery: テーブルに格納されたURL文字列をKey-ValueのSTRUCT型で抽出する

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  3. Adobe Analytics

    サイトセクションとは-Adobe Analyticsの指標説明

    今回はサイトセクションについて説明いたします。サイトセクションとは…

  4. Adobe Analytics

    Adobe AnaltyicsとGoogle Analytics の「生Webビーコン」をBigQu…

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  5. Adobe Analytics

    AdobeAnalytics: Adobe I/OのAPIを使ってSAINT分類データを取得する

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  6. Adobe Analytics

    AdobeAnalytics:WordPressやHTML5内の動画を計測する

    こんにちは、エクスチュアの鈴木です。Adobe Analyti…

最近の記事

  1. Mouseflowのセッションリプレイのしくみ
  2. LangChainって何?: 次世代AIアプリケーション構築…
  3. 1st Party Cookieと3rd Party Coo…
  4. Amplitudeで何が分かる?
  5. SnowflakeのHybrid Tableのマニュアルを読…
  1. 未分類

    1st Party Cookieと3rd Party Cookieの違いと昨今の…
  2. ObservePoint

    Webサイトのプライバシーポリシー検証(1/6):プライバシーポリシーを設置する…
  3. IT用語集

    メモリ(Memory)、仮想メモリ(Virtual Memory)って何?
  4. Google Cloud Platform

    LookerStudioを知る。
  5. KARTE

    KARTE 成果の出るアイデアを考える_ツールを活用できていないと感じたら
PAGE TOP