Adobe AnalyticsをITPフルに対応させる1st Party Device ID について

人, 持つ, 男, 携帯電話 が含まれている画像 自動的に生成された説明

目次

  • ITPフル施行された現在、どういう対応が必要?
  • Adobe Experience Cloud(Adobe Analytics)の対応について
  • 1st Party Device ID(FPID)の仕組みについて
  • FPIDを利用するための条件
  • 実際の設定方法例
  • まとめ

ITPフル施行された現在、どういう対応が必要?

Safariのレンダリングエンジンなどで利用されているWebkitが進めた新しいユーザーのプライバシー保護を目的とした機能である、Intelligent Tracking Prevention(以下ITPと略称)の影響により、Cookieの発行方式や条件によって有効期限などの制限がより厳しく適用されるようになりました。

いくつか段階をおいて実施され、ITPフルと言われている2020年3月以降はSafariブラウザでの計測にいくつかの問題が起きています。また、この動きに追随するように3rd Party Cookieの制御対応が各ブラウザでも起きています。

ITPの影響について、Cookieの種別とブラウザ毎にどのような影響があるか。Safariは1st Party CookieでもCNAMEを利用した形やJavascript経由でセットした場合、7日間の有効期限になってしまう

この問題を解決するには、上記の図でいうと一番下部のパターンへの対応、つまり、外部のマーケティングツール側で訪問者の特定判断や訪問者ID付与をするのではなく、運用している企業のサーバー側でその訪問者IDを付与するような処理、Cookie発行・管理を行うということが必要となります。

Adobe Experience Cloud(Adobe Analytics)の対応について

Adobe Experience CloudではExperience Cloud ID Service(以下ECIDと略)を使った実装が一般的な推奨となっております。このIDにより複数の製品間でのプロファイルの共通化を行っています。ただ、このECIDの仕組みでは前述のマーケティングツール側での訪問者ID付与処理を行っている為、解決できません。

そこで、新たな方式として1st Device ID(以下FPIDと略)という方式を利用可能にしました。これは、皆様のシステム環境側でDevice毎のIDを生成していただき、その値をAdobe Experience Cloudに送付してもらう事でその値を訪問者IDとして利用可能にする方式です。

First-party Device IDに関するヘルプ
l

1st Party Device ID(FPID)の仕組みについて

従来のECIDを使った方式の実装では、アドビのサーバー(Edge Server)がECIDサービスに対して問い合わせを行いECIDの発行と付与を実施していました。 この方式では、発行が各サイトから見ると3rd Partyのサーバーが実施していることと、付与はJavaScriptを経由して実施している為、影響を受けてしまうことになります。

これまではECIDの発行方法として、アドビのサーバーがECIDサービスに対して問い合わせを行い、ECIDの発行と付与を実施していました。

そこでFPIDを利用した方法では、各企業のサイト側でブラウザを特定する為のID(=これがFPID)を発行し、その値をアドビのサーバー(Edge Server)に送ることで、アドビのサーバー側ではFPIDに対応したECIDの組み合わせを記憶しつつ、ECIDベースでAdobe Experience Cloudの各製品は動作しながら、ブラウザ側にもECIDを返却する事が可能です。

各サイト側でブラウザを特定する為のデバイスID(これを1st Party Device ID、FPIDと呼ぶ)を発行し、その値をAdobeのサーバーに送る。

つまり、ブラウザ側は常にFPIDさえ保持していれば同一のECIDがEdge Serverより返答されるため、仮にECIDの有効期限が切れてしまったといたとしても同一のECIDを利用してデバイスの特定が可能となります。

FPIDを利用するための条件

前述の通り、この方式では企業側(サーバーサイド側)で生成するCookie としてFPIDの発行と管理をする必要があります。

実際にこの1st party Device IDを利用する為のAdobe Experience Cloud側の条件は以下となります。

一つポイントとして、Adobe AnalyticsやAdobe Targetの実装を最新のSDKであるAEP Web SDKにしておく必要があります。

従来は、Adobe AnalyticsであればAppMeasurement.js、Adobe Targetであればat.jsと呼ばれているそれぞれのJavaScript SDKがありましたが、最新の環境では両製品を含めたAdobe Experience Cloud統合SDKとしてAEP Web SDKがリリースされており、本機能を利用するためにはこのSDKによる実装が必要となります。

Adobe Experience Platform Web SDKの概要
https://experienceleague.adobe.com/docs/experience-platform/edge/home.html

実際の設定方法例

基本的には各社のサイト側でブラウザ毎に訪問者を特定するCookie IDの生成発行処理を実装していただくような形となります。なお、生成する1st Party Device IDの文字列についてはUUIDv4形式の文字列である必要がありますので注意をしてください。

サンプルとして、例えばPythonでのWebアプリケーションであれば以下のようなサンプルコードとなります。

def setcookie():

    cookiename = 'fpid'
    fpid = request.cookies.get(cookiename, None)

    if(fpid == None):

        ## generate a unique id
        fpid = str(uuid.uuid4())

        resp = make_response(render_template('index.html')
        
        resp.set_cookie(cookiename,
            value=fpid,
            max_age=60*60*24*30*13,
            path='/',
            secure=True,
            httponly=True,
            samesite='lax'
        )

    return resp

またコンテンツを各種CDN経由で配信している場合は、CDN上で利用可能な処理機能(Amazon CloudFrontであればLambda@Edge、もしくはCloudFront Functions など)を使ってFirst-party Device IDを生成、Cookie発行する仕組みを設定する必要があります。

まとめ