権限ポリシーを使用してオーディエンス管理を制御するか、.well-known 権限 URL を設定してサードパーティに委任する方法について説明します。
joinAdInterestGroup()
の呼び出しコンテキストのオリジンは、インタレスト グループ オーナーのオリジンと一致している必要があります。そのため、インタレスト グループ オーナーのオリジンが現在のドキュメント(独自のインタレスト グループを持つウェブサイトなど)と一致しない限り、joinAdInterestGroup()
は iframe(DSP など)から呼び出す必要があります。
joinAdInterestGroup()
に次の権限を許可する必要があります。
- 訪問先のサイト
- インタレスト グループのオーナー
つまり、dsp.example.com
に権限を付与しない限り、malicious.example
から dsp.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 を通じてクロスオリジン データが予期せず漏洩しないように、フェッチでは cors モードが使用されます。取得するレスポンスは JSON MIME タイプで、次の形式である必要があります。
{ "joinAdInterestGroup": true/false,
"leaveAdInterestGroup": true/false
}
パスのオリジンに、リクエストの送信先ドメインが所有するインタレスト グループに参加または脱退する権限があるかどうかを示す。不足している権限は false とみなされます。lifetimeMs
を 0 に設定して navigator.joinAdInterestGroup()
を呼び出すと、実質的にインタレスト グループから離れるため、joinAdInterestGroup: true
を使用すると、leaveadInterestGroup
がない場合や false に設定されている場合でも、オリジンによる navigator.leaveAdInterestGroup()
の呼び出しが許可されます。leaveAdInterestGroup()
と clearOriginJoinedAdInterestGroups()
の両方が leaveAdInterestGroup
権限をチェックすることに注意してください。