Slide 1

Slide 1 text

2021/11/17 オレシカナイト Privacy保護施策への対応 星博之

Slide 2

Slide 2 text

自己紹介 星博之 株式会社サイバーエージェント メディア統括本部 Ameba事業部 サーバサイドエンジニア 2012/04 サイバーエージェント中途入社 ● 2012/04〜 ゲーム部門 ○ サーバサイド ● 2013/02〜 Amebaピグ ○ サーバサイド / EM / Webフロント / Unity ● 2018/07〜 Ameba広告 ○ サーバサイド / Webフロント ○ 計測 / Tracking / Privacy

Slide 3

Slide 3 text

overview ● Ameba広告について ● Privacy保護 ● Privacy Sandbox概要 ● UA文字列の削減:User-Agent Client Hints(UA-CH)

Slide 4

Slide 4 text

overview ● Ameba広告について ● Privacy保護 ● Privacy Sandbox概要 ● UA文字列の削減:User-Agent Client Hints(UA-CH) 近いうちに対応が 必要になりそう 前提

Slide 5

Slide 5 text

Ameba広告について

Slide 6

Slide 6 text

Ameba広告について Ameba MEDIAGUIDE CyberAgent, Inc. All Rights Reserved. Amebaの収益向上を主な目的とした広告プロダクト

Slide 7

Slide 7 text

Ameba広告について AJA SSP 他SSP 他メディア 他メディア Ameba関連メディアへだけでなく、他メディアへもリーチ 広告主 RTB配信 通常配信

Slide 8

Slide 8 text

Ameba広告について Ameba InFeed Basic CPC/CPM課金モデルの運用型メニュー。 Ameba関連メディアの膨大な広告在庫に加え、 外部メディアにも配信も行うことで圧倒的なリーチを実現します。 ターゲティング機能や最適化機能が充実しており、 ダイナミックな運用が実現できます。

Slide 9

Slide 9 text

Ameba広告について Ameba InFeed Video Ameba関連メディアにおいて、 動画配信が可能な再生完了課金モデルの運用型メニューです。 ターゲティング項目も充実しており、 フリークエンシーコントロールを行うことも可能です。

Slide 10

Slide 10 text

Privacy保護

Slide 11

Slide 11 text

各種Privacy保護法 ● 海外では、GDPR・CCPA/CPRAなどPrivacy保護の法律が既に施行済み ● 日本でも改正個人情報保護法が2022/04に施行 テックベンダの制限 各ベンダのPrivacy制限も年々厳しくなってきている。 ● ITP ● iOS14.5 ATT ● Privacy Sandbox ● etc... 法律・テクノロジーの両面でPrivacy保護の動きが高まっている Privacy保護 取り巻く状況

Slide 12

Slide 12 text

Privacy保護 各ベンダの保護施策いくつかピックアップ WebKit(Safariなど) ● ThirdPartyCookie Full Blocking ○ iOS 13.4(2020/03)〜 ● CNAME Cloaking制限 ○ iOS 14.2(2020/11)〜 ○ 制限対象の場合、Cookieの有効期限が7日 ● PCM(Private Click Measurement) ○ iOS 14.5(2021/04)〜 ○ (ThirdPartyCookieがブロックされた上での)Conversion計測を行うための仕組み ○ First-Party adsが対象 ■ CV通知(AttributionReport)がPublisherに送られる ■ 3rdPartyのAd Networkが、Publisher各社と連携するのは厳しそう

Slide 13

Slide 13 text

ATT(App Tracking Transparency) ● iOS14.5(2021/04)〜 ● IDFA含めたトラッキング許可のダイアログ ● ユーザが許可しないと、無効なIDFA(0の羅列)となる ● 前述のPCM拡張も含めて、PSLの運用が大変なことに。。 Privacy保護 各ベンダの保護施策いくつかピックアップ iOS15(2021/09) iCloud+ Private Relay ● IPアドレスが匿名のIPアドレスに置き換わる ● iCloudプランの契約が必要 ● iOS15.1時点でもPublic Betaでデフォルトオフ ● Proxyを2つ経由 1. IPアドレスから地域に変換 2. 該当地域のIPアドレスをランダムに抽出し、匿名のIPアドレスを割り当て

Slide 14

Slide 14 text

Android12(2021/10) ● オプトアウトすると、無効なGAID(0の羅列)となる ● GAID取得のAPI利用のために、 マニフェストファイルにPermission宣言が必要になる。 ● 2022初頭からGooglePlayサービスをサポートするすべてのデバイ スに適用。 Privacy保護 各ベンダの保護施策いくつかピックアップ

Slide 15

Slide 15 text

Privacy Sandbox概要

Slide 16

Slide 16 text

Privacy Sandbox概要 Privacy Sandbox ChromiumのPrivacy保護プロジェクト ミッション: Create a thriving web ecosystem that is respectful of users and private by default. ユーザを尊重したデフォルトPrivateな繁栄したウェブ・エコシステムを創造する そのために克服する主な課題はクロスサイトトラッキング 現在のクロスサイトトラッキングを健全な形で置き換えられるように 様々な新しい機能を導入し、 最終的にはサードパーティCookieを廃止する。 併せてFingerPrinting、CacheInspection, LinkDecoration、etc… といったCookieを使用しないクロスサイトトラッキング手法を制限していく

Slide 17

Slide 17 text

Privacy Sandbox概要 補足:FingerPrintingなどへの制限について Cookie(のユーザIDなどの識別情報)はユーザの意思で削除することが可能。 対して、(Device)FingerPrintingなどの情報は、 デバイス固有の情報でユーザを識別するため、 ユーザの意思で削除・変更することが難しい。 こういったユーザが制御できないトラッキング手法が促進されると Privacy保護という観点でより悪い状況になってしまうという懸念。 ユーザが制御できないトラッキング手法に対しての制限を併せて進める。

Slide 18

Slide 18 text

Privacy Sandbox概要 2023年後半にThirdPartyCookieを段階的に廃止 発表当初から2年ほどの遅れ。 英国CMA(英国の競争・市場庁)とのコミットメントに則る ● No data advantage for Google advertising products ○ Googleの広告製品にデータ利点はナシ ■ Chromeの閲覧履歴を使用しない ■ GAのデータを利用してユーザトラッキングをすることもしない ● No self-preferencing ○ Google側にPrivacy Sandboxでの優遇措置・利点はナシ マイルストーン Stage1 (2022後半に開始) ● 各種テストの完了後、Publisher / 広告事業者がサービス移行するための時間を確保 ● 9ヶ月間を予定 ● 導入状況やフィードバックを確認した上で、Stage2へ移行 Stage2 (2023半ばに開始) ● 2023年後半から3ヶ月掛けてThirdPartyCookieのサポートを段階的に終了 ドキュメント ● https://privacysandbox.com/ ○ 概要・背景・timelineなど ● https://developer.chrome.com/docs/privacy-sandbox/ ○ 開発者向け。技術的な詳細・実装ガイダンスなど

Slide 19

Slide 19 text

Privacy Sandbox概要 大きく3つの軸とそれに紐づく様々な提案がある 1. クロスサイトトラッキングで実現していた機能の置き換え a. SSOやパーソナライズ広告など、 サードパーティCookie前提で開発されている機能などをPrivacyを考慮して可 能な限り置き換える。 b. 最終的な理想状態は、今と変わらないWeb体験。 c. さらに、不快な広告などはWeb体験が変わらない状態でOFFすることができる ように。 2. サードパーティCookieの停止 a. 最終的には責任をもって削除する。 3. 回避策への対策 a. Cookieを利用したクロスサイトトラッキングを制限するため、 FingerPrintingといった、ユーザがコントロールできない手法でトラッキング されることが懸念される。 b. こういった部分にも新機能を提供し健全化を推進する。

Slide 20

Slide 20 text

Privacy Sandbox概要 1. クロスサイトトラッキングで実現していた機能の置き換え 関連UseCase - Spam、Fraud、Dos対策 - Trust Token API - 広告コンバージョン計測 - Attribution Reporting API(Conversion Measurement API) - Aggregated Reporting API - 広告ターゲティング - 興味関心ベース - FLoC - リマーケティング・リターゲティング - TURTLEDOVE - FLEDGE - Federated login - WebID

Slide 21

Slide 21 text

Privacy Sandbox概要 2. サードパーティCookieの停止 関連Project - ファーストパーティCookieとサードパーティCookieの分離 - SameSite属性 - First-Party Sets - SameParty Cookie Attribute

Slide 22

Slide 22 text

Privacy Sandbox概要 3. 回避策への対策 重点項目 - FingerPrinting - Privacy Budget - Passive FingerPrinting Surfaceの削除 - Client Language Selection - User-Agent Client Hints - Surfaceエントロピーの低減 - Device Sensors - Battery Level - IP Blindness - Cache inspection - Partitioning HTTP Cache - Connection Pools - DNS Cache, Sessions Tickets, HTTP Server properties - Other caches

Slide 23

Slide 23 text

Privacy Sandbox概要 3. 回避策への対策 重点項目 - Navigation tracking - Referer clamping - デフォルトReferrer Policyの変更 - Chrome v.85で導入済み - https://web.dev/referrer-best-practices/ - Network Level tracking - DNS - SNI - Moar TLS

Slide 24

Slide 24 text

UA文字列の削減 User-Agent Client Hints(UA-CH)

Slide 25

Slide 25 text

UA文字列の削減 ● Privacy問題(PassiveFingerPrinting Information多い) ● User-Agent文字列に互換性を目的とした虚偽の情報が多く含まれて いる。 ● マイノリティーなブラウザではUser-Agentを偽る状況が起こってお り、サイトが正しく表示されないこともある ● User-Agent文字列をFreezeし、User-Agent Client Hints(UA-CH) に置き換える なぜやるのか? 参考:[email protected] : GoogleGroup

Slide 26

Slide 26 text

UA文字列の削減 ● 7フェーズに分けて段階的に削減。 ● ReverseOriginTrialにオプトインすれば、すべての段階が終わるまで影響を受けない。 ● すべての段階の完了は、2023/05の想定 ● すべての段階の完了後もUser-Agent文字列だけで以下の取得は可能 ○ ブラウザのメジャーバージョン ○ プラットフォーム名 ○ モバイル判定 ● 2021/06時点では以下のUser-Agent文字列の変更予定は無い ○ Android WebView ○ Chrome for iOS 先にまとめ デスクトップ Androidモバイル Androidタブレット navigator.platform

Slide 27

Slide 27 text

フェーズ1 ・Chrome M92(2021/07/20) ・DeveloperToolで警告でるようになる フェーズ2 ・Chrome M95(2021/10/19)-M100(2022/03/29) ・OriginTrial開始 フェーズ3 ・Chrome M100(2022/03/29) ・Reverse Origin Trial(デプリケーション トライアル)開始  ・ 登録することで、削減の影響をM113まで受けない ・M101(2022/04/26)までに登録 フェーズ4 ・Chrome M101(2022/04/26) ・MINOR.BUILD.PATCHのバージョン番号が「0.0.0」になる UA文字列の削減 各フェーズについて フェーズ5 ・Chrome M107(2022/10/25) ・デスクトップが対象 ・PlatformとCPUアーキテクチャを関連する固定値に変更 フェーズ6 ・Chrome M110(2023/02/07) ・Androidモバイル・タブレットが対象 ・デバイスモデルを「K」の固定値に変更 ・AndroidVersionを「10」の固定値に変更 フェーズ7 ・Chrome M113(2023/05/02) ・ReverseOriginTrial終了 ・すべてのページにUser-Agent文字列削減が適用される  ・ここまでに対応完了させる必要 ※Chrome versionとリリース日はこちらを参考にしています

Slide 28

Slide 28 text

OriginTrialsについて PrivacySandboxに限らず、ChromeではOriginTrialsというWebに公開したテス トの仕組みを持っており、OriginTrialsと呼ばれている。 現在実施されているOriginTrialsの確認はこちらから。 ※前述の「Reverse Origin Trial(デプリケーション トライアル)」は、以下ではないです。   こちらはUA文字列削減のOrigin Trial。

Slide 29

Slide 29 text

User-Agent Client Hints (UA-CH) Clinet Hints項目 参考:WICG Draft Report ua-client-hints 項目 内容 リクエストヘッダフィールド デフォ ルト Sample値 brand ブラウザ名 Sec-CH-UA ◯ "Chromium";v="86", "\"Not\\A;Brand";v="99", "Google Chrome";v="86" significant version 重要バージョン full version ビルドバージョン Sec-CH-UA-Full-Version(非推奨) Sec-CH-UA-Full-Version-List x "86.0.4240.80" platform brand OS名 Sec-CH-UA-Platform ○ "Android" platform version OSバージョン Sec-CH-UA-Platform-Version x "8.0" platform architecture CPU architecture Sec-CH-UA-Arch x "x86" platform bitness CPU architecture bit Sec-CH-UA-Bitness x "64" model デバイスモデル Sec-CH-UA-Model x "Pixel 2" mobileness モバイル判定 Sec-CH-UA-Mobile ◯ ?1

Slide 30

Slide 30 text

User-Agent Client Hints (UA-CH) 大きく以下の2つの方法で取得する 1. リクエストヘッダ 2. JavaScript API 取得方法 navigator.userAgentData navigator.userAgentData.getHighEntropyValues -------------リクエストヘッダ ---------------------- sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91" sec-ch-ua-mobile: ?1

Slide 31

Slide 31 text

User-Agent Client Hints (UA-CH) ● https必須 ● デフォルトで以下のフィールドが送られる ○ Sec-CH-UA ○ Sec-CH-UA-Mobile ○ Sec-CH-UA-Platform ● オプトインすることで以下のフィールドが送られる ○ Sec-CH-UA-Full-Version (非推奨 Sec-CH-UA-Full-Version-Listに置き換え) ○ Sec-CH-UA-Full-Version-List ○ Sec-CH-UA-Platform-Version ○ Sec-CH-UA-Arch ○ Sec-CH-UA-Bitness ○ Sec-CH-UA-Model ● 高エントロピー(高識別性)な情報はデフォルトでは送らない ○ [email protected] : GoogleGroup リクエストヘッダでの取得

Slide 32

Slide 32 text

User-Agent Client Hints (UA-CH) オプトインの方法は以下のいずれか 1. レスポンスヘッダのAccept-CH 2. metaタグ リクエストヘッダでのデフォルト以外の取得 -------------レスポンスヘッダ ---------------------- Accept-CH: Sec-CH-UA-Model 参考:web.dev user-agent-client-hints

Slide 33

Slide 33 text

User-Agent Client Hints (UA-CH) レスポンスヘッダのAccept-CHでオプトイン リクエストヘッダでの取得 例:Sec-CH-UA-Modelを指定 website.com blank https://website.com -------------リクエストヘッダ ---------------------- sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91" sec-ch-ua-mobile: ?1 レスポンス -------------レスポンスヘッダ ---------------------- Accept-CH: Sec-CH-UA-Model https://website.com/ex/ -------------リクエストヘッダ ---------------------- sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91" sec-ch-ua-mobile: ?1 sec-ch-ua-model: "SM-G900P"

Slide 34

Slide 34 text

User-Agent Client Hints (UA-CH) 広告は基本的にCross-Originなはず。 Cross-Originなリクエストヘッダでデフォルト以外のHintを取得するには Origin側のレスポンスヘッダの Permissions-Policyを使ってのdelegateが必要になる なのでデフォルト以外のHintをリクエストヘッダで受け取るには、 配信メディア側の対応が必要になる。 Cross-Originなリクエストヘッダでの取得 https://website.com website.com ad.com https://website.com/xxx https://ad.com/yyy 広告は基本的にCross-Originなリクエスト

Slide 35

Slide 35 text

User-Agent Client Hints (UA-CH) blank https://website.com ----------------------リクエストヘッダ ---------------------- sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91" sec-ch-ua-mobile: ?1 レスポンス ----------------------レスポンスヘッダ ---------------------- Accept-CH: Sec-CH-UA-Model, Sec-CH-UA-Platform-Version Permissions-Policy: ch-ua-model=(self "https://ad.com"), ch-ua-platform-version=(self "https://ad.com") https://ad.com/ad ----------------------リクエストヘッダ ---------------------- sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91" sec-ch-ua-mobile: ?1 sec-ch-ua-model: "SM-G900P" sec-ch-ua-platform-version: "5.0" ad.com website.com Cross-Originへのdelegate リクエストヘッダでの取得 例:Sec-CH-UA-Model、Sec-CH-UA-Platform-Versionを指定 配信メディア側(website.com) での対応が必要

Slide 36

Slide 36 text

User-Agent Client Hints (UA-CH) ● 構造化フィールドで指定 ● iframe Permissions-Policy 参考:w3c/webappsec-permissions-policy    Migrate to User-Agent Client Hints ● HTTP Header ・「self」はPolicyを指定するorigin ・「*」は全てのoriginに適用 ・「()」は全てのoriginを拒否 ● Permission-Policyでのコントロールドラフト ○ https://wicg.github.io/client-hints-infrastructure/#policy-controlled-client-hints-features

Slide 37

Slide 37 text

User-Agent Client Hints (UA-CH) ● Origin側でオプトインしていないと、Cross-Originにdelegateできない (Permissions-Policyの指定だけだとダメ) 補足:2021/10(Chrome M95)時点での動作 blank https://website.com ----------------------リクエストヘッダ ---------------------- sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91" sec-ch-ua-mobile: ?1 レスポンス ----------------------レスポンスヘッダ ---------------------- Accept-CH: Sec-CH-UA-Model, Sec-CH-UA-Platform-Version Permissions-Policy: ch-ua-model=(self "https://ad.com"), ch-ua-platform-version=(self "https://ad.com") https://ad.com/ad ----------------------リクエストヘッダ ---------------------- sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91" sec-ch-ua-mobile: ?1 sec-ch-ua-model: "SM-G900P" sec-ch-ua-platform-version: "5.0" ad.com website.com 例:Sec-CH-UA-Model、Sec-CH-UA-Platform-Versionを指定

Slide 38

Slide 38 text

User-Agent Client Hints (UA-CH) ● Origin側でオプトイン・Cross-OriginへdelegateしていればCross-Origin 側でのオプトインは不要。初回リクエストから乗ってくる 補足:2021/10(Chrome M95)時点での動作 blank https://website.com ----------------------リクエストヘッダ ---------------------- sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91" sec-ch-ua-mobile: ?1 レスポンス ----------------------レスポンスヘッダ ---------------------- Accept-CH: Sec-CH-UA-Model, Sec-CH-UA-Platform-Version Permissions-Policy: ch-ua-model=(self "https://ad.com"), ch-ua-platform-version=(self "https://ad.com") https://ad.com/ad ----------------------リクエストヘッダ ---------------------- sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91" sec-ch-ua-mobile: ?1 sec-ch-ua-model: "SM-G900P" sec-ch-ua-platform-version: "5.0" ad.com website.com 例:Sec-CH-UA-Model、Sec-CH-UA-Platform-Versionを指定

Slide 39

Slide 39 text

User-Agent Client Hints (UA-CH) ● ブラウザセッションの間 ● 別のHintが指定されるまで Life-Timeとリセットタイミング 参考:web.dev user-agent-client-hints -------------レスポンスヘッダ ------------- Accept-CH: Sec-CH-UA-Platform -------------リクエストヘッダ ------------- sec-ch-ua-platform: "Mac OS X" -------------レスポンスヘッダ ------------- Accept-CH: Sec-CH-UA-Arch -------------リクエストヘッダ ------------- sec-ch-ua-arch: "x86" UA-Arch で上書き Sec-CH-UA-Platform 送られない

Slide 40

Slide 40 text

User-Agent Client Hints (UA-CH) TLS GREASEの概念を取り込む ● 詳細 brand(Sec-CH-UA)についてのブラウザ実装要件 ● brandに複数の値を含める必要がある。値の少なくとも1つは任意の値。 ● 任意の値を追加するとき、値には以下を追加する。 ○ escaped double-quote ○ commas ○ semi-colons ● brandの値の順序は時間の経過と共に変化しなければならない。 ● Chrome M86 例 ○ "Chromium";v="86", "\"Not\\A;Brand";v="99", "Google Chrome";v="86" 準拠しているかの基準になり、問題がある場合、早期に気が付けるように。 GREASE(Generate Random Extensions And Sustain Extensibility) 参考:WICG ua-client-hints#grease

Slide 41

Slide 41 text

User-Agent Client Hints (UA-CH) 高エントロピー情報はPromiseを介する。 ● ユーザに許可を求めたりが想定される。 JavaScript APIでの取得 navigator.userAgentData navigator.userAgentData.getHighEntropyValues

Slide 42

Slide 42 text

User-Agent Client Hints (UA-CH) PrivacyBudgetで制限される可能性がある (すごくざっくり)PrivacyBudget ● まだあまり固まってない模様。 ● domain単位のPrivacy情報の利用を計測(ユーザ単位ではなくdomain単位) ○ IPアドレス/User-Agent/accept-language/etc... ● 予算(Budget)が無くなると正しい値が取れなくなる ● PrivacySandboxの提案に含まれている 参考:WICG ua-client-hints#persistent-user-tracking 参考:PrivacyBudget 考察:PrivacyBudgetとの兼ね合い Privacy情報取得 さらに Privacy情報取得 正しく情報が 取得できなくなる 予算:100 予算:50 予算:0

Slide 43

Slide 43 text

User-Agent Client Hints (UA-CH) ● 現時点では「とりあえず全部取得する」という選択肢はありかもしれない。 ● 今後、PrivacyBudgetの導入によってはメディアに影響が出る可能性。 ● UA-CH取得のON/OFFを切り替えられるような構造にはしておきたい。 考察:PrivacyBudgetとの兼ね合い

Slide 44

Slide 44 text

User-Agent Client Hints (UA-CH) ● JavaScriptのSDKで取得してパラメータに付与。 ● 自社のメディアにはPermissions-Policyの設定でdelegateできそうだが、それ以外で は難易度高そう。 ● 特に顧客サイトでの計測では、すべての顧客に設定してもらうのはかなり難しそう。 考察:広告の場合は結局JavaScriptで取得する? https://website.com website.com ad.com lp.com https://lp.com 広告Clickで遷移 全てのサイトに delegateしてもらう 難易度が高い 全てのサイトに delegateしてもらう のは難易度が高い 配信メディア 顧客サイト

Slide 45

Slide 45 text

User-Agent Client Hints (UA-CH) ● SSP側でUA文字列をParseしている場合、以下の項目に影響ありそう ○ BidRequest.device.ua ○ BidRequest.device.osv ○ BidRequest.device.model ● 現時点では、指針らしきものはみつけられず。。 ● フェーズ4:Chrome M101(2022/04/26)から影響を受ける想定 ○ MINOR.BUILD.PATCHのバージョン番号が「0.0.0」になる 考察:OpenRTBでの影響(DSP目線)

Slide 46

Slide 46 text

さいごに

Slide 47

Slide 47 text

さいごに 今後、法律的にもテクノロジー的にもPrivacy保護の動きが高まること 想定され、さらにTracking制限が強まっていくこと想定されます。 よりユーザのPrivacyが尊重され、広告主の方達にも安心して使って頂ける ような広告プロダクトを模索していければと考えています。

Slide 48

Slide 48 text

さいごに Ameba広告では一緒に働くメンバーを大募集しております。 https://hrmos.co/pages/cyberagent-group/jobs/0000651 ご興味のある方、是非ご連絡ください!

Slide 49

Slide 49 text

fin