Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Privacy Sandboxをデジマ視点で読み解く
george
June 17, 2020
Technology
1
2.6k
Privacy Sandboxをデジマ視点で読み解く
george
June 17, 2020
Tweet
Share
Other Decks in Technology
See All in Technology
line_developers
PRO
0
140
kanaugust
PRO
0
160
yukitodate
2
320
satotakeshi
2
420
yosuke_matsuura
PRO
0
3.3k
iqbocchi
0
530
shomaekawa
3
1.1k
noir_neo
0
130
kentaro
1
380
hirosys
0
120
hecateball
1
12k
kyonmm
1
2k
Featured
See All Featured
jasonvnalue
82
8k
morganepeng
17
1.1k
jcasabona
7
520
keavy
106
14k
thoeni
4
550
trishagee
20
2k
kastner
54
1.9k
kneath
294
39k
chriscoyier
145
19k
danielanewman
200
19k
smashingmag
229
18k
afnizarnur
176
14k
Transcript
デジマ担当必見!? Privacy Sandboxをデジマ視点で読み解く
はじめに 2 Privacy Sandboxの背景やビジネス要件等はスキップし、 現在の技術仕様を理解するという本題に入ります ※本書は2020年5月時点で公開されている仕様に基づきます ※内容を保証するものではありません
デジマ(特にインターネット広告)観点で注目の機能 Click Through Conversion Measurement Event-Level API Aggregated Reporting API
Federated Learning of Cohorts (FLoC) Then Locally-Executed Decision On Victory(TURTLE-DOVE) 今回取り上げる Privacy Sandboxの機能は4つ 3
Click Through Conversion Measurement Event-Level API Aggregated Reporting API Federated
Learning of Cohorts (FLoC) Then Locally-Executed Decision On Victory(TURTLE-DOVE) 4 1/4
Click Through Conversion Measurement Event-Level API 5 クリックスルーコンバージョンを計測するためのAPI
Click Through Conversion Measurement Event-Level API 6 インプレッションの宣言 コンバージョンの記録 publisher
.com ブラウザ(ストレージと スケジュールレポートの送信) advertiser .com/cv AD <a href="https://advertiser.com/page" conversiondestination="https://advertiser.com" impressiondata="0x12345678" impressionexpiry=604800000 reportingdomain="<reportingdomain>" ...> インプレッション情報 conversiondestination="https://advertiser.com" impressiondata="0x12345678" impressionexpiry=604800000 reportingdomain="<reportingdomain>" <img src="https://ad-tech.test/conversiontracker"/> img https://<reportingdomain>/.well-known/register-conversion?conversion-metadata=0x2 リダイレクト コンバージョン コンバージョン コンバージョン (1) ユーザーがコンバージョン計測用の 属性付きリンクをクリックする (4) コンバージョンピクセルからリダイレクトしたURLを 受けて、reportingdomain, conversiondestination が 一致するインプレッション情報があるかブラウザのス トレージに確認する。一致する場合、レポートウイン ドウにセットする (2) ブラウザがストレージにインプレッション 情報を記録する (3) (2)の後、ユーザーがコンバージョンピクセルが 設置されたページにアクセスする (5) (4)以降、一定の時間(2日 or7日)が経過した後、 ブラウザがreportingdomain にレ ポートリクエストを送信する。 インプレッション情報 インプレッション情報 reporting domain インプレッション情報 コンバージョン
Click Through Conversion Measurement Event-Level API 7 ポイント • コンバージョンメタデータには5%のノイズが含まれる(コンバージョン数は正確)
• コンバージョン数自体にもノイズを混入する事が検討されている(コンバージョン数も不正確 になる可能性がある) • レポート送信は規定のタイミングで行われるため、コンバージョン時刻を正確に把握 することはできない • コンバージョンを追えるのは最大30日まで
Click Through Conversion Measurement Event-Level API Aggregated Reporting API Federated
Learning of Cohorts (FLoC) Then Locally-Executed Decision On Victory(TURTLE-DOVE) 8 2/4
Aggregated Reporting API 9 フリークエンシーやユニークユーザーなど、3rd party Cookie廃止によりできな くなるレポート集計を補完する機能
Aggregated Reporting API 10 publisher .com const entryHandle = window.writeOnlyReport.get('campaign-123');
//ハンドラの作成 entryHandle.set('country', 'usa'); //属性の作成 (上書き) entryHandle.append(‘visits’, ‘1’); //属性の作成 (追記) entryHandle.reportAfter(2 * kMsecPerDay); //2日(+1日程度の遅延 )後にレポート entryHandle.expireAfter(7 * kMsecPerDay); //レポートされない場合、 7日後に無効 { 'entryName': 'campaign-123', 'country': 'usa', 'visits': '1' } { 'entryName': 'campaign-123', 'country': 'usa', 'visits': '11' } Reporting Server 広告メディア(サイト) (1) publisher.comへの1回目のアクセス (2) publisher.comへの2回目のアクセス { 'entryName': 'campaign-123', 'country': 'usa', 'visits': '11' } (4) entryHandle.reportAfterで指定した日数+ランダ ムな遅延後、レポートを送信 全体集計数が閾値に満たないか、7日 (entryHandle.expireAfterの指定日数)までに reportAfterが実行されない場合 レポートしない ブラウザストレージにエントリを記録 ブラウザストレージのエントリを更新 entryHandle.append(“visits”, “1”);で最初に記 録したvisitsの値(1)の後ろに「1」が追記される ブラウザ(ストレージと スケジュールレポートの送信) 例)広告キャンペーンのフリークエンシー計測 ※同一サイトで同一広告キャンペーンを 2回表示した場合 visitsの値を集計する と、エントリあたりのアク セス回数が分かる (3) エントリへのアクセス全体でレポート送 信に必要な閾値以上の集計が行われてい るか確認 レポート送信先サーバー
Aggregated Reporting API 11 ポイント • 3rd Party Cookieなどのクロスサイト識別子を使用しないため、ユーザーのプライバ シーを保護する形で広告を測定できる
• エントリに記録されたレポートの数が閾値以下の場合はレポートは行われない • ドメイン毎にレポートできる数の上限が設定される見込み(ストレージ容量、期間中のレポート数) • レポーティングに必要な数の閾値など、未確定要素が多い
Click Through Conversion Measurement Event-Level API Aggregated Reporting API Federated
Learning of Cohorts (FLoC) Then Locally-Executed Decision On Victory(TURTLE-DOVE) 12 3/4
TURTLE-DOVE 13 2種類の広告リクエストから表示する広告をブラウザ内で決定する機能 a. インタレストグループ広告リクエスト ▪ 広告主が定義したユーザーの興味関心データ b. コンテキスト広告リクエスト ▪
広告の掲載ページURL、枠のサイズ、1st partyのターゲティングデータ等
TURTLE-DOVE 14 ①ユーザーが日常的に広告メディア( publisher.com)へアクセスする first-ad-network ②ユーザーが広告主サイト( shoes.com)へアクセスする publisher .com AD
shoes.com var myGroup = {'owner' : 'shoes.com', 'name' : 'athletic-shoes', 'readers' : ['first-ad-network.com', 'second-ad-network.com'] }; navigator.joinAdInterestGroup(myGroup, 30 * kSecsPerDay); 広告主サイトがAPIを用いて、 ユーザーのブラウザへ一定期間、特定の インタレストグループに参加するよう要求する。 広告主のオリジン インタレストグループ名 広告主がインタレストグループへの ターゲティング配信に利用する アドネットワークのドメイン ユーザーをインタレスト グループに参加させる期間
TURTLE-DOVE 15 first-ad-network ③ユーザーのブラウザが、不定期のタイミングで アドネットワーク(first-ad-network.com)へアクセスする ユーザーのブラウザからアドネットワークへ、 インタレストグループにターゲットにした広告をリクエストする。 アドネットワークからレスポンスとして、ターゲティング広告情報と その他のメタ情報が返され、ユーザーのブラウザに保管(キャッシュ)される。 GET
https://first-ad-network.com/.well-known/fetch-ads?interest_group=www.shoes.com_athletic-shoes インタレストグループ広告リクエスト [{'group-owner' : 'shoes.com', 'group-name' : 'athletic-shoes', 'ad-cbor-url' : 'https://first-ad-network.com/ads/ad-123456789.wbn', 'cache-lifetime-secs' : 21600, 'max-times-per-minute' : 1, 'max-times-per-hour' : 6, 'auction-signals' : {'atf_value' : 250, 'btf_value' : 25}, 'decision-logic-url' : 'https://first-ad-network.com/js/on-device-bid.js'}] 入札を実行するJS関数 広告の入札額 atf_value:ファーストビュー btf_value:ファーストビュー以外 広告表示に関するデータ 広告データ 広告主のオリジン インタレストグループ名 インタレストグループ情報 Interest Ad ブラウザ Interest Ad キャッシュ
TURTLE-DOVE 16 first-ad-network ④ユーザーが、再度媒体サイト( publisher.com)へアクセスする publisher .com AD Tag ブラウザ内オークション
Interest Ad publisher .com Interest Ad WIN ページURL、広告サイズ、広告掲載位置、 ファーストパーティのターゲティング情報 var contextualBid = 107; var metadata = {'network' : 'first-ad-network.com', 'auction-signals' : {'is_above_the_fold' : true}}; var rendered = navigator.renderInterestGroupAd(contextualBid, metadata); if (!rendered) { ...render the contextually-targeted ad... } コンテキスト広告 リクエスト ユーザーが媒体サイトにアクセスすると、ページに設置された広告タグから アドネットワークへ広告リクエストが飛ぶ。 レスポンスとして、タグに対してターゲティングされたコンテキスト広告と その入札データ が返却され、ブラウザ内オークションがリクエストされる。 既にブラウザに保管(キャッシュ)されたインタレストグループターゲティング広告と、コンテ キスト広告のうち、最終的にどの広告が配信されるかが オークションで選ばれる。 Context Ad VS Context Ad コンテキスト広告の入札額 インタレストグループターゲティング 広告と、コンテキスト広告とのオー クションを実施
TURTLE-DOVE 17 ポイント • ユーザーの興味関心を保持する場所と広告表示の最終的な決定をサーバーサイドで はなくブラウザサイドで行うことで、ユーザーのプライバシーを保護しつつ、広告主側は ユーザーをターゲティングすることができる • インタレストグループとの関連付けを希望しないユーザーは削除することができる。ま た、グループをターゲットした広告表示を停止することができる
Click Through Conversion Measurement Event-Level API Aggregated Reporting API Federated
Learning of Cohorts (FLoC) Then Locally-Executed Decision On Victory(TURTLE-DOVE) 18 4/4
FLoC 19 • ユーザーの興味関心に基づくターゲティングを実現するための機能 • 3rd party Cookie の世界ではユーザー(ブラウザ)を一意に識別して閲覧履歴をトラッキングしていた が、FLoC
では、類似する閲覧履歴を持つユーザー同士をブラウザ内でグルーピングする • ブラウザはユーザーの閲覧履歴に応じて、そのユーザーの FLoC を更新し続ける • FLoCグループに対してターゲティング配信することができる • FloCの値は、ユーザーのブラウザ内で機械学習を用いて生成され、HTTP通信時にリクエストヘッダに 記載された形(Client Hint 経由)でウェブサイト等のサーバーへ通信される Accept-CH = Sec-CH-Flock GET https://ad-network.example/serve_ad.html?width=300&height=250 Referer: https://allaboutmotorcycles.com/home.html Sec-CH-Flock: 43A7 FLoCの値 ▼ HTTPリクエストヘッダの例
FLoC 20 ポイント • 閲覧履歴はブラウザ内に保持され、他に渡されない • 具体的なFLoCカテゴリーは今のところ不明 • 会員サイト等のユーザーを特定できる情報を持つサイトでは、パーソナルデータと FLoC
を結び つけることができてしまう ※それでも 3rd party cookie によって特定の個人と行動履歴が結び付けられてしまう現状よりはまだ良いと考えられている • FLoC単体では個人を特定できないが、 IPアドレス等の他の情報と掛け合わせることで、個人を 識別される可能性がある ※個人を識別できない程度の大きな母数で FLoC カテゴリーを定義することも考えられる • 人によってはセンシティブに感じるカテゴリーがサーバーに渡される可能性がある
インターネット広告におけるPrivacy Sandbox代替の考え方(一例) 21 • 広告配信 ◦ 興味関心ターゲティング ◦ リマーケティング
• レポート ◦ ユニークユーザー ◦ ビュースルーコンバージョン ◦ クリックスルーコンバージョン ◦ アトリビューション分析 FLoC TURTLE-DOVE Aggregated Reporting API なし Click Through Conversion Measurement Event-Level API Click Through Conversion Measurement Event-Level API
さいごに 22 • 実際にこれらの機能を実際に利用するためには、ブラウザ、広告配信事業者、媒 体社、広告主がそれぞれ対応する必要がある • 3rd party Cookie廃止に伴う代替として用意されている機能も、粒度や精度、考え 方が従来とは異なる点に注意が必要
23 おわり