オーディエンス管理をサードパーティに委任する

Permissions Policy を使用してオーディエンス管理を制御する方法、または .well-known 権限 URL を構成してサードパーティに委任する方法について説明します。

joinAdInterestGroup() の呼び出しコンテキストのオリジンはインタレスト グループのオーナーのオリジンと一致している必要があります。そのため、インタレスト グループのオーナーのオリジンが現在のドキュメントのオリジン(独自のインタレスト グループを持つウェブサイトなど)と一致していない限り、joinAdInterestGroup() は iframe から(DSP などから)呼び出す必要があります。

joinAdInterestGroup() には次の権限が必要です。

つまり、dsp.example.com が権限を付与しない限り、malicious.exampledsp.example.com が所有するインタレスト グループの joinAdInterestGroup() を呼び出すことはできません。

アクセスしたサイトからの権限

権限は、同じオリジンまたはクロスオリジンから付与できます。

デフォルトでは、アクセスしたサイトと同じオリジンからの joinAdInterestGroup() 呼び出し(つまり、現在のページのトップレベル フレームと同じオリジンからの呼び出し)に対して権限が付与されます。サイトは join-ad-interest-group 権限ポリシー ヘッダーを使用して joinAdInterestGroup() 呼び出しを無効にできます。

joinAdInterestGroup() をクロスオリジン(現在のページとは異なるオリジン)で呼び出すことができるのは、アクセス先のサイトが、クロスオリジン iframe からの joinAdInterestGroup() の呼び出しを許可する権限ポリシーを設定している場合に限られます。

インタレスト グループのオーナーからの許可

インタレスト グループのオーナー権限は、インタレスト グループのオーナーと同じオリジンを持つ iframe から joinAdInterestGroup() を呼び出すことで暗黙的に付与されます。たとえば、dsp.example.com の iframe は、dsp.example.com が所有するインタレスト グループの joinAdInterestGroup() を呼び出すことができます。

基本的には、joinAdInterestGroup() は所有者のドメインのページまたは iframe で実行できます。また、.well-known URL のリストで指定された他のドメインに委任することもできます。

あるドメインに移動したフレームが、別の所有者のインタレスト グループに対して joinAdInterestGroup()leaveAdInterestGroup()、または clearOriginJoinedAdInterestGroups() を呼び出すと、ブラウザは URL https://owner.domain/.well-known/interest-group/permissions/?origin=frame.origin を取得します。ここで、owner.domain はインタレスト グループを所有するドメイン、frame.origin はフレームのオリジンです。このフェッチでは、メソッドを呼び出したフレームのネットワーク パーティション キーを使用して、認証情報省略モードが使用されます。返された Promise を介してクロスオリジン データが予期せず漏洩するのを防ぐため、fetch は cors モードを使用します。取得したレスポンスは JSON MIME タイプで、次の形式である必要があります。

{ "joinAdInterestGroup": true/false,
  "leaveAdInterestGroup": true/false
}

パス内のオリジンに、リクエストの送信先ドメインが所有するインタレスト グループに参加または離脱する権限があるかどうかを示します。権限がない場合は false と見なされます。lifetimeMs が 0 の navigator.joinAdInterestGroup() を呼び出すと、インタレスト グループから実質的に離脱するため、joinAdInterestGroup: true を使用すると、leaveadInterestGroup が欠落している場合や false に設定されている場合でも、オリジンが navigator.leaveAdInterestGroup() を呼び出すことができます。leaveAdInterestGroup()clearOriginJoinedAdInterestGroups() の両方で leaveAdInterestGroup 権限がチェックされることに注意してください。