FLEDGE API: 開発者ガイド

クロスサイトサードパーティトラッキングを使わずにリマーケティングとカスタムオーディエンスにサービスを提供するオンデバイス広告オークションの開発者ガイド

公開日 更新日

FLEDGE を初めて使用する場合は、この提案の概説について FLEDGE の概要をお読みください。

この記事は、実験的な FLEDGE API の最新のイテレーションに関するテクニカルリファレンスとして開発者向けに執筆されています。基本的な FLEDGE 導入のデモと、広告の購入者と販売者向けの API リファレンスが提供されています。

FLEDGE とは?

FLEDGE は、リマーケティングおよびカスタムオーディエンスのユースケースに対応するためのプライバシーサンドボックスの提案であり、サードパーティがサイトを跨いでユーザーのブラウジング行動を追跡できないように設計されています。この API は、ブラウザによるオンデバイスオークションを有効にし、ユーザーが以前にアクセスしたウェブサイトに関連する広告を選択します。

FLEDGE は、TURTLEDOVE ファミリの提案の中で Chromium に実装された最初の実験です。

FLEDGE を試す

利用可能な API リファレンス

このドキュメントは、FLEDGE API の概要として機能します。特定の API メソッドとパラメーターを探している場合は、以下をご覧ください。

また、FLEDGE 広告オークションの待ち時間に関するベストプラクティスもご覧ください。

FLEDGE デモ

広告主とサイト運営者のサイトにまたがる基本的な FLEDGE のデプロイに関するウォークスルーは、fledge-demo.glitch.me で入手できます。

FLEDGE デモコードがどのように機能するか、および Chrome DevTools をデバッグに使用する方法について、こちらのエンドツーエンドのデプロイをご覧ください。

オリジントライアルに参加する

プライバシーサンドボックスの広告関連のオリジントライアルは、FLEDGE、Topics、および Attribution Reporting API について、デスクトップの Chrome ベータ版 101.0.4951.26 以降で公開されています。

参加するには、オリジントライアルトークンに登録してください。

トライアルへの登録が完了すると、有効なトライアルトークンを提供するページで FLEDGE API を試すことができます。たとえば、ブラウザに 1 つ以上のインタレストグループに参加するように依頼してから、広告オークションを実行して広告を選択し、表示することができます。

FLEDGE API コードを実行するすべてのページにトライアルトークンを指定します。

  • <head>のメタタグとして:
<meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
  • HTTP ヘッダーとして:
Origin-Trial: TOKEN_GOES_HERE
  • プログラムでトークンを提供する:
const otMeta = document.createElement('meta');
otMeta.httpEquiv = 'origin-trial';
otMeta.content = 'TOKEN_GOES_HERE';
document.head.append(otMeta);

インタレストグループ オーナーによる navigator.joinAdInterestGroup() 呼び出しなどの FLEDGE コードを実行する iframe は、そのオリジンと一致するトークンを提供する必要があります。

Proposed First FLEDGE Origin Trial Details(提案された最初の FLEDGE オリジントライアルの詳細)には、最初のトライアルの目標に関する詳細と、どの機能がサポートされているかが説明されています。

Caution

有効なトライアルトークンを提供するページであっても、すべてのユーザーがプライバシーサンドボックスの広告関連のオリジントライアルの対象となるわけではありません。

広告関連の統一オリジントライアルの概要にはその理由が説明されており、オリジントライアル機能を使用する前に使用可能かどうかを検出する方法(検出する必要があります)が示されています。

chrome://flags または機能フラグでテストする

デスクトップでは Chrome ベータ版 101.0.4951.26 以降を使って、1 人のユーザーに対して FLEDGE をテストできます。

iframe または Fenced Frame に広告を表示する

広告は、設定されているフラグに応じて、<iframe> または <fencedframe> にレンダリングできます。

<fencedframe> を使用して広告をレンダリングするには:

--enable-features=InterestGroupStorage,AdInterestGroupAPI,Fledge,FencedFrames

<iframe> を使用して広告をレンダリングするには:

--enable-features=InterestGroupStorage,AdInterestGroupAPI,Fledge,AllowURNsInIframes --disable-features=FencedFrames

BiddingAndScoringDebugReportingAPI フラグを含めて、一時的なデバッグの落札/競り負けレポートメソッドを有効にします。

これは、初期テスト用の FLEDGE の進行中のバージョンです。これは、完全なもの、または最終的な実装を示すものと見なすべきではありません。FLEDGE の進捗状況とステータスは、定期的な WICG 会議で議論されます。

プライバシーサンドボックスのタイムラインには、FLEDGE およびその他のプライバシーサンドボックスの提案の実装タイミングが記載されています。

サポートされる機能

Chromium でのフラグ設定による FLEDGE は、FLEDGE 提案の以下の機能をテストするための最初の実験です。

  • インタレストグループ: 広告の入札とレンダリングを構成するための関連付けられたメタデータとともに、ブラウザによって保存されます。
  • バイヤー(DSP または広告主)によるオンデバイス入札: 保存されているインタレストグループとセラーからのシグナルに基づきます。
  • セラー(SSP またはサイト運営者)によるオンデバイス広告の選択: バイヤーからのオークション入札とメタデータに基づきます。
  • 一時的に緩和されたバージョンの Fenced Frames での広告レンダリング: 広告のレンダリングが許可されたネットワークアクセスとロギング。

機能のサポートと制約について詳しくは、FLEDGE API の Explainer をご覧ください。

インタレストグループの権限

FLEDGE の現在の実装のデフォルトでは、クロスドメイン iframe も含むページ内のどこからでも joinAdInterestGroup() を呼び出すことができます。

将来的には、サイト所有者にクロスドメイン iframe の権限ポリシーを更新する時間ができたら、クロスドメイン iframe からの呼び出しを禁止する予定です。

Key/Value サービス

FLEDGE 広告オークションをサポートするために、ブラウザは Key/Value サービスにアクセスして、FLEDGE 広告オークションをサポートするリアルタイム情報を取得できます。この情報は、さまざまな方法で使用できます。

  • バイヤーが、広告キャンペーンの残りの予算を計算する場合。
  • セラーが、広告クリエイティブをサイト運営者のポリシーに照らして確認する必要がある場合。

FLEDGE Key/Value サービスコードが公開されました。ステータスの更新については、ブログの発表の記事をご覧ください。

初期テストでは、 「Bring Your Own Server」モデルが使用されました。長期的には、アドテックは、信頼できる実行環境で実行するオープンソースの FLEDGE Key/Value サービスを使用する必要があります。

タイムラインの更新については、FLEDGE サービスのブログ記事をご覧ください。この移行が行われる前に、開発者がテストと採用を開始できるように十分な通知を行います。

機能サポートを検出する

API を使用する前に、API がブラウザでサポートされており、ドキュメントで使用できるかどうかを確認してください。

'joinAdInterestGroup' in navigator &&
document.featurePolicy.allowsFeature('join-ad-interest-group') &&
document.featurePolicy.allowsFeature('run-ad-auction') ?
console.log('navigator.joinAdInterestGroup() is supported on this page') :
console.log('navigator.joinAdInterestGroup() is not supported on this page');
Caution

現在のページでの機能のサポートは、API が使用できることを保証するものではありません。ユーザーがブラウザの設定で API を無効にしたか、API を使用できないように他の設定をしている可能性があります。ユーザーのプライバシーを保護するために、これをプログラムで確認する方法はありません。

FLEDGE API の仕組み

この例では、ユーザーがカスタム バイク メーカーのウェブサイトを閲覧した後、ニュースサイトにアクセスすると、そのバイク メーカーの新しい自転車の広告が表示されます。

Warning

この記事で説明されているすべての機能が、現在 Chrome でテストされている FLEDGE API のバージョンに実装されている(または完全に実装されている)わけではありません。機能フラグを使用したテストでは、 コマンドラインから実行される Chrome で現在どの FLEDGE 機能をテストできるかについて説明されています。

FLEDGE の機能は、実装作業が進むにつれて徐々に追加されます。

1. ユーザーが広告主のサイトにアクセスする

ノートパソコンのブラウザでカスタムバイクメーカーのサイトにアクセスしている人。

ユーザーがカスタム バイク メーカー(この例では広告主)のウェブサイトにアクセスし、手作りのスチール バイクの製品ページにしばらくアクセスしたとします。これにより、バイク メーカーはリマーケティングの機会を得ることができます。

2. ユーザーのブラウザがインタレストグループを追加するよう求められる

ノートパソコンでブラウザを開き、サイトにアクセスするユーザー。インタレストグループに参加するための JavaScript コードがブラウザで実行されています。

広告主のデマンドサイド プラットフォーム(DSP)(または広告主自体)は、navigator.joinAdInterestGroup() を呼び出して、ブラウザがメンバーであるグループのリストにインタレストグループを追加するようブラウザに要求します。

この例では、グループの名前は custom-bikes で、オーナーは dsp.example です。インタレストグループのオーナー(この場合は DSP)は、FLEDGE 広告オークションのバイヤーになります。インタレストグループのメンバーシップは、ブラウザによってユーザーのデバイスに保存され、ブラウザベンダーや他の誰とも共有されません。

joinAdInterestGroup() の呼び出しコンテキストのオリジンは、インタレストグループのオーナーのオリジンと一致する必要があります。

joinAdInterestGroup() は、インタレスト グループのオーナーが所有する iframe から(たとえば、DSP から)呼び出す必要があります。現在のドキュメントのオリジンがインタレストグループのオーナーと同じ場合(独自のインタレストグループを持つウェブサイトなど)、iframe は必要ありません。

インタレストグループの広告を指定する

ads および adComponents オブジェクトには、広告クリエイティブの URL と、オプションで、入札時に使用できる任意のメタデータが含まれます。以下に例を示します。

{
renderUrl: 'https://cdn.example/.../bikeAd1.html',
metadata: bikeAd1metadata // optional
}

バイヤーの入札方法

generateBid() は、インタレストグループのオーナーが入札に招待された場合に、ブラウザがメンバーであるインタレストグループごとに呼び出されます。

generatedBid() 開発者向けドキュメントをお読みください。

3. ユーザーが広告スペースを販売するサイトにアクセスする

ノートパソコンのブラウザでニュースサイトにアクセスしている人。サイトには空の広告スロットがあります。

後になって、ユーザーは広告スペースを販売するサイト(この例ではニュースサイト)にアクセスします。このサイトには広告枠があり、リアルタイム入札を使用してプログラムで販売しています。

4. ブラウザで広告オークションが実行される

ノートパソコンのブラウザでニュースサイトを表示している人。利用可能な広告スペースの広告を選択するために、FLEDGE 広告オークションが実行されています。

広告オークションは、サイト運営者のサプライサイドプロバイダー(SSP)またはサイト運営者自身によって実行される可能性があります。オークションの目的は、現在のページで使用可能な単一の広告スロットに最も適した広告を選択することです。オークションでは、広告スペースのバイヤーと Key/Value サービスのセラーからのデータとともに、ブラウザがメンバーであるインタレストグループが考慮されます。

5. セラーと参加するバイヤーが、Key/Value サービスにリアルタイムデータをリクエストする

ノートパソコンのブラウザでニュースサイトを表示している人。FLEDGE API を使用した広告オークションが行われており、参加者が Key/Value サービスからデータを取得しています 。

広告オークション中、セラーは Key/Value サービスにリクエストを送信して、特定の広告クリエイティブに関するリアルタイムデータを要求できます。セラーは、trustedScoringSignalsUrl プロパティと、オークション内のすべてのインタレストグループの adsadComponents フィールドにあるすべてのエントリの renderUrl から得るキーを使って、runAdAuction() を実行中にこの情報を要求できます。

バイヤーは、navigator.joinAdInterestGroup() に渡されるインタレストグループ引数の trustedBiddingSignalsUrltrustedBiddingSignalsKeys プロパティを使用して、Key/Value サービスからリアルタイムデータをリクエストできます。

runAdAuction() が呼び出されると、ブラウザは各広告バイヤーの信頼できるサーバーにリクエストを送信します。リクエストの URL は以下のようになります。

https://kv-service.example/getvalues?hostname=publisher.example&keys=key1,key2
  • ベース URL は trustedBiddingSignalsUrl から取得されます。
  • hostname はブラウザによって提供されます。
  • keys の値は trustedBiddingSignalsKeys から取得されます。

このリクエストへのレスポンスは、各キーの値を提供する JSON オブジェクトです。

重要

FLEDGE をテストするための初期実験段階では、trustedBiddingSignalsUrl はインタレストグループのオーナーと同じオリジンを持つ必要があります。詳細は、Bring Your Own Server をご覧ください。

6. 落札した広告が表示される

ノートパソコンのブラウザでニュースサイトを表示している人。自転車 20% オフの広告が安全な Fenced Frame に表示されています。

runAdAuction() によって返される promise は、URI(統一リソース識別子)に解決されます。この URN は、Fenced Frame 内のサイトに埋め込まれ、落札広告をレンダリングします。

7. オークション結果が報告される

長期的には、プライベート集計 API の API を使用して、ブラウザがセラーとバイヤーのオークション結果をレポートできるようにすることを計画しています。

一時的なイベントレベルのレポートの仕組みとして、セラー用に reportResult() を実装し、落札者用に reportWin() を実装するコードは、sendReportTo() 関数を呼び出すことができます。これはオークションの完了後に取得される URL を表す文字列を引数として取ります。これにより、レポートされるイベントレベルの情報が暗号化されます。

8. 広告クリックがレポートされる

ニュースサイトで Fenced Frame に埋め込まれた自転車の広告をクリックする人。レポートデータはセラーとバイヤーに送られます。

Fenced Frame にレンダリングされた広告のクリックが報告されます。これがどのように機能するかについて詳しくは、Fenced Frames 広告のレポートを参照してください。


FLEDGE 広告オークションの各ステージの概要
この図は、FLEDGE オークションの各ステージの概要を示しています。 拡大版を表示

FLEDGE と TURTLEDOVE の違い

FLEDGE は、TURTLEDOVE ファミリの提案の中で Chromium に実装された最初の実験です。

FLEDGE は、TURTLEDOVE の高レベルの原則に従います。一部のオンライン広告は、以前に広告主または広告ネットワークとやり取りしたことのある潜在的に関心のある人に広告を表示することに基づいています。これまで、これは広告主がウェブサイトをブラウジングする際に特定の人物を認識することで機能してきました。これが、今日のウェブのプライバシーに関する主な懸念事項です。

TURTLEDOVE の取り組みは、このユースケースに対処するための新しい API を提供すると同時に、プライバシーに関する以下のような重要な進化を提供することにあります。

  • 広告主が考えるユーザーの興味についての情報を、広告主ではなくブラウザが保持する。
  • 広告主は興味に基づいて広告を配信できますが、その興味を個人に関する他の情報(特に、そのユーザーやアクセスしているページなど)と組み合わせることはできません。

FLEDGE は、TURTLEDOVE と、API を使用する開発者により良いサービスを提供するための変更に関する関連提案のコレクションから生まれました。

  • SPARROW: Criteo は、信頼できる実行環境(TEE)で実行される(「ゲートキーパー」)サービスモデルの追加を提案しました。 FLEDGE には、リアルタイムのデータ検索と集計レポートのための、より限定された TEE の使用が含まれます。
  • NextRoll の TERN と Magnite の PARRROT の提案には、オンデバイス オークションにおけるバイヤーとセラーのさまざまな役割が説明されています。FLEDGE の広告入札・スコア付けフローは、この作業に基づいています。
  • RTB House の結果ベースおよびプロダクトレベルの TURTLEDOVE の変更により、匿名モデルとオンデバイス オークションのパーソナライズ機能が改善されました。
  • PARAKEET は、ブラウザとアドテック プロバイダーの間の TEE で実行されているプロキシサーバーに依存して広告要求を匿名化し、プライバシーのプロパティを強制する、TURTLEDOVE のような広告サービスに対する Microsoft の提案です。FLEDGE は、このプロキシモデルを採用していません。PARAKEET と FLEDGE の JavaScript API を連携させ、両方の提案の最良の機能をさらに組み合わせる将来の作業をサポートします。

FLEDGE はまだ、ユーザーがどの広告を見たかをウェブサイトの広告ネットワークが学習できないようにしていません。今後、よりプライベートになるように API を変更する予定です。

利用可能なブラウザ構成

ユーザーは、chrome://settings/privacySandbox のトップレベルの設定を有効または無効にすることで、Chrome のプライバシーサンドボックストライアルへの参加を調整できます。

初期のテストでは、ユーザーはこの高レベルのプライバシーサンドボックス設定を通じて FLEDGE をオプトアウトできます。Chrome では、ユーザーがアクセスしたウェブサイト全てで、自分が追加されたインタレストグループのリストを表示および管理できるようにする予定です。プライバシーサンドボックスのテクノロジー自体と同様に、ユーザー設定は、ユーザー、規制当局などからのフィードバックによって進化する可能性があります。

FLEDGE の提案が進むにつれて、テストとフィードバックに基づいて、Chrome で利用可能な設定を更新し続けます。将来的には、FLEDGE と関連データを管理するためのより詳細な設定を提供する予定です。

ユーザーがシークレットモードで閲覧している場合、API 呼び出し元はグループ メンバーシップにアクセスできません。また、ユーザーがサイトデータを消去すると、メンバーシップが削除されます。

貢献とフィードバックの共有

サポートを受ける

実装、デモ、またはドキュメントに関する質問とサポートについては、以下をご覧ください。

FLEDGE でのニーズへの対応に関する一般的な質問については、提案のリポジトリでイシューを報告してください。また、W3C の Improving Web Advertising Business Group で業界のユースケースについて話し合うこともできます。

プライバシーサンドボックスのフィードバックフォームを使用すると、公開フォーラムの外で Chrome チームと非公開でフィードバックを共有できます。

オプトアウト

FLEDGE からのオプトアウトをご希望ですか?サイトオーナーまたは個人ユーザーとして FLEDGE API へのアクセスをブロックする方法をご覧ください。

アップデートを入手する

更新日 記事を改善する

This site uses cookies to deliver and enhance the quality of its services and to analyze traffic. If you agree, cookies are also used to serve advertising and to personalize the content and advertisements that you see. Learn more about our use of cookies.