リリースノート

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Android 版プライバシー サンドボックスには、デベロッパー プレビューとベータ版プログラムがあります。今後、デベロッパー プレビューに新しい API と機能を順次導入し、安定版の API をベータ版プログラムに昇格させる予定です。フィードバックをお寄せください

Android 版プライバシー サンドボックスを初めて使用する場合は、まずプログラムの概要をご確認ください。プロジェクトにプライバシー サンドボックスを組み込むには、開発環境をセットアップし、テストデバイスまたはエミュレータで Android 版プライバシー サンドボックスを入手します。

現在のリリース

Android 版プライバシー サンドボックス ベータ版 1

Android 版プライバシー サンドボックス ベータ版 1 により、プライバシー サンドボックス API を初めて一般デバイスで利用できるようになります。以下の点が改善されています。

全般

  • Android 版プライバシー サンドボックス ベータ版 1 はデベロッパー プレビュー 5 と機能的に同等ですが、次の機能と制限事項が追加されています。
  • 広告関連の API(Topics、FLEDGE、Attribution Reporting など)を利用するには、デベロッパーは登録プロセスを完了する必要があります。登録プロセスでは、デベロッパー ID を検証し、API に必要なデベロッパー固有のデータを収集します。
  • Android 版プライバシー サンドボックス ベータ版 1 リリースでは、許可リストに登録して詳細を提出したデベロッパーは、自身の用意する実機でテストできます。このリリースに含まれる安定版の API を対象とした開発を行うには、新しい SDK Ad Services Extensions 4 をダウンロードしてください。

Topics API

Attribution Reporting API

  • デバッグキーが追加されたため、デベロッパーは、プライバシーが強化されたレポートとともに、未変更のレポートを Attribution Reporting API から受け取れます。デバッグキーを使用すると、プライバシー サンドボックスに移行する間、レポートの構造を明確に把握できます。

SDK ランタイム

以下の制限事項は、Android プラットフォームの次回のメジャー リリースで修正される予定です。

  • 現在、RecyclerView などのスクロール可能なビュー内での広告レンダリングは正しく機能しません。要素のサイズが変更されたとき、ジャンクが発生することがあります。ユーザーのタッチ スクロール イベントがランタイムに正しく渡されません。
  • WebView レンダリングは SDK ランタイム プロセスで利用できません。
  • SDK ごとのストレージは利用できません。
  • getAdId API と getAppSetId API のサポートはまだ有効になっていません。

過去のリリース

デベロッパー プレビュー 6

Android 版プライバシー サンドボックス デベロッパー プレビュー 6 では、以下の点が改善されました。

全般

  • 製品版の公開に備えて、デベロッパー プレビュー 6 では、プライバシー保護 API アクセスをデフォルトで無効にするフラグが導入されました。テスト目的で、デベロッパー プレビューで次のコマンドを実行して、プライバシー保護 API アクセスを有効にします。
adb shell device_config put adservices global_kill_switch false
  • AdIdManager API と AppSetIdManager API には、Google Play 開発者サービス バージョン 22.36.16 以降が必要です。
    • Android デバイスで、[設定] > [アプリ] > [Google Play 開発者サービス] に適切なバージョンが表示されていることを確認します。
    • Google Play 開発者サービスを適切なバージョンに更新する必要がある場合は、Android テストデバイスまたはエミュレータに Google アカウントでログインします。次に、Google Play ストア > プロフィール アイコン > [設定] > [概要] に移動します。「Play ストアのバージョン」という見出しの下にある [Play ストアを更新] をタップします。
    • このステップは開発とテストの場合にのみ適用されます。プライバシー サンドボックスが一般ユーザー向けにロールアウトされた後は必要ありません。

Topics API

  • getTopics をオブザーバーとして登録するかどうかを切り替えるための Preview API を追加しました。
  • GetTopicsRequest クラスの初期化コードの軽微な変更。
  • Topics 統合ガイドをリリースしました。

FLEDGE on Android API

  • 実際のサーバーに対してテストを行う場合、API の有効化が必須になりました。こちらの手順に沿ってデバイスを構成してください。サンプルアプリにあるリモート オーバーライドを使用している場合、この手順は必要ありません。
  • 互換性を破る変更:
    • パラメータの UrlUri に置き換えました。これは、入札とスコアリングのロジックに関して、すべての FLEDGE API とカスタム JavaScript に適用されます。
    • Custom Audience API の入力から owner フィールドを削除しました。
  • 不完全なカスタム オーディエンスは直ちにバックグラウンド更新の対象となるようになりました。
  • JavaScript のメモリ上限を 10 MB に設定しました。これは、入札とスコアリングのロジックに適用されます。

Attribution Reporting API

  • アドテックがデベロッパー プレビュー 6 で Attribution Reporting API を使用するには、事前に登録が必要です。詳しくは、プライバシー サンドボックス アカウントの登録をご覧ください。
  • このリリースでデバッグキーが導入されるため、デベロッパーは、プライバシーが強化されたレポートとともに、未変更のレポートを Attribution Reporting API から受け取れます。デバッグキーを使用すると、プライバシー サンドボックスに移行する間、レポートの構造を明確に把握できます。

デベロッパー プレビュー 5

全般

  • デベロッパー プレビュー 5 でプライバシー サンドボックス API にアクセスするには、まず API を有効にして API 固有の権限を構成する必要があります。
    • Android 版プライバシー サンドボックスは、デバイス上でプライバシー保護 API と SDK ランタイムをアクティブにするかどうかをユーザーが制御できるように設計されています。これらの設定は、デベロッパー プレビュー 5 ではデフォルトで無効に設定されています。API へのアクセスは、adb コマンドを使用して有効にできます。
    • 呼び出し元アプリは、埋め込み SDK のアクセスを制御するマニフェストおよび関連する AdServices 構成で API 固有の権限を指定する必要があります。
  • フォアグラウンドで実行されている場合、アプリはプライバシー保護 API を呼び出す必要があります。
  • AdIdManagerAppSetIdManager は現在運用されていません。今後のリリースで有効になる予定です。

SDK ランタイム

  • sendData() は今後のバージョンで非推奨になります。
  • loadSdk() が、ランタイム対応の SDK と AIDL で定義されたアプリの間の双方向通信を容易にする IBinder オブジェクトを返すようになりました。
  • アプリは、SDK プロセスが終了したときなどに、ランタイム対応の追加の SDK ライフサイクル イベントにアクセスできます。

Attribution Reporting API

このリリースで、Attribution Reporting API に次の機能が追加されました。

  • 暗号化された集計レポートのサポート。
  • アプリとウェブにわたる測定のサポート
  • ソースとトリガーの登録レスポンスの統合されたヘッダー。
    • ソース: Attribution-Reporting-Register-Aggregatable-SourceAttribution-Reporting-Register-Source の一部になりました。
    • トリガー: Attribution-Reporting-Register-Event-Trigger, Attribution-Reporting-Register-Aggregatable-Trigger-DataAttribution-Reporting-Register-Aggregatable-ValuesAttribution-Reporting-Register-Event-Trigger という名前の単一のヘッダーに統合されました。
    • Attribution-Reporting-Redirects は別のヘッダーのままです。

FLEDGE on Android API

このリリースには、いくつかの新機能と改善のほか、互換性を破る変更が含まれています。

  • 互換性を破る変更:
    • runAdSelection() の名前が selectAds() に変更されました。
    • AdSelectionConfig.Builder.setAdSelectionSignals() のパラメータが、JSON オブジェクトを表す AdSelectionSignals に置き換えられました。
    • アドテックの購入者 / 販売者を表す String の使用が AdTechIdentifier オブジェクトに置き換えられました。
    • リモートの JavaScript 取得をオーバーライドするための TestCustomAudienceManager クラスと TestAdSelectionManager クラスが追加されました。
    • カスタム オーディエンスのオーナーは、呼び出し元アプリのパッケージ名である必要があります。
  • FLEDGE API は、デベロッパー ガイドに記載されている一連の制限事項に照らして呼び出し元アプリを検証するようになりました。以下に、重要な点をいくつか例示します。
    • selectAdsreportImpression の実行時間に制限が設定されました。時間が経過すると呼び出しが終了します。
    • selectAdsreportImpression で、JavaScript の実行時に消費されるメモリが制限されるようになりました。メモリの消費量が構成された上限を超えると、API がエラーをスローします。
    • selectAdsreportImpressionAdSelectionConfig オブジェクトを検証し、フィールドが構文的に有効で、URL が販売者フィールドで使用されている eTLD+1 にあることを確認するようになりました。
    • AdServices がカスタム オーディエンスを作成時に検証するようになりました。この検証の一部には、有効期限が有効であることの確認が含まれ、アプリが作成できるカスタム オーディエンスの数と joinCustomAudience の呼び出しで指定される広告の合計サイズに制限が適用されます。この検証では、シグナル、入札ロジックの取得、バックグラウンドの取得のために指定された URI がすべて、購入者のドメインにあることが強制されます。
  • カスタム オーディエンス メタデータは、バックグラウンド取得プロセスによって毎日更新されます。
  • 「オーナー」アプリをアンインストールすると、カスタム オーディエンスが削除されます。
  • 広告選択時に信頼できるスコアリング シグナルと信頼できる入札データを指定するためのサポートを追加しました。レスポンスの形式については、コードサンプルを参照してください。
  • Android 版 FLEDGE の API は、WebView バージョン 105.0.5195.58 以降に依存します。詳しくは、デベロッパー ガイドのセットアップ情報をご覧ください。
  • 既知の問題:

    • カスタム オーディエンスに参加する際、メタデータと AdData 値のいずれかが空または null である場合、現時点でプラットフォームはすぐにバックグラウンド更新を行いません。カスタム オーディエンスは、1 日後に更新されるまで広告選択の対象になりません。今後のリリースでは、不完全なカスタム オーディエンスはすぐにバックグラウンド取得更新の対象となります。JavaScript 実行用の現在のデフォルト メモリ上限は低すぎるため、通常のワークロードでデバイスの JavaScriptEngine がクラッシュする可能性があります。JavaScript の実行がエラー メッセージ "Fatal javascript OOM in CALL_AND_RETRY_LAST" で予期せず終了することがあります。

      次のコマンドで適切なメモリしきい値を構成することで、これを手動で解決できます。

      adb shell "device_config put adservices fledge_js_isolate_enforce_max_heap_size 10485760"
      
    • 必要な JSON 構造と一致しないカスタム オーディエンス広告は、バックグラウンド取得時に更新されます。

Topics API

  • モバイルアプリの分類に関して、分類を更新しました。
  • 割り当て済みのトピックを表示できる設定 UI のリリースに伴い、設計提案サンプルアプリを更新しました。

ツールのアップデート

Android Studio Canary では、新しいモジュール タイプでの SDK APK のビルドがサポートされます。SDK ランタイム デベロッパー ガイドが更新されました。GitHub のプライバシー サンドボックス サンプルアプリにも内容が反映されています。

デベロッパー プレビュー 4

リリース日: 2022 年 7 月 14 日

Android 版プライバシー サンドボックス デベロッパー プレビュー 4 では、以下の点が改善されました。

SDK ランタイム

  • sendData() の追加により、アプリがランタイム対応の SDK(RE-SDK)と通信できるようになりました。
  • SDK ランタイム プロセスでローカル ストレージを利用できるようになりました。
  • SDK は、SDK ランタイムで単体の動画ベースの広告やコンテンツをレンダリングすることもできます。
  • コンテンツが別の RE-SDK にない場合にリフレクションを使用できることなど、リフレクションの使用についての説明を追加しました。

Attribution Reporting API

このリリースでは、Attribution Reporting API の使用に関してわかりやすくするために、以下のような変更を行いました。

  • 集計レポートの形式を読みやすくなるように変更しました。
  • コンバージョン フィルタリングと単価調整機能のヘッダー フィールドを更新しました。
  • WebApp API リファレンスに、ソースとトリガーの登録や、プライバシーと同意の API の提供状況に関する説明を追加しました。

FLEDGE on Android API

このリリースには、テストとデバッグを容易にするための新機能と内部の改善が含まれています。

  • 開発中に JavaScript ロジックを取得するためのリモート URL をオーバーライドできるようにしました。
  • 広告選択の際のエラーレポートを改善しました。
  • 無効なカスタム オーディエンスは、広告の選択時に除外されるようになりました。

Topics API

このリリースには、Topics API に対する重要な変更が複数含まれています。

  • getTopics() API の戻り値の型が、分類のトピックに対応する整数 ID や、分類器と分類バージョンに関する情報をカプセル化する、新しいオブジェクト型 Topic に変更されました。この API を使用する既存のアプリは更新する必要があります。
  • Topics API に、新しい標準の権限が必要になりました。
  • 公開されているアプリ情報に基づいてトピックを動的に割り当てる「オンデバイス分類器」システムを導入しました。

既知の問題

  • これらのデバイス イメージの最初のリリース(リビジョン 6)は、Android Emulator バージョン 31.2.10 では読み込まれません。この問題に対処したデバイス イメージの更新が、2022 年 7 月 27 日より利用可能になりました。

デベロッパー プレビュー 3

リリース日: 2022 年 6 月 9 日

Android 版プライバシー サンドボックス デベロッパー プレビュー 3 では、Attribution Reporting API と Android 版 FLEDGE の機能が追加されました。

Attribution Reporting API

Attribution Reporting API は、クロスパーティ ユーザー ID への依存をなくすことでユーザーのプライバシーを向上させ、アプリ間でのアトリビューションとコンバージョン測定の主なユースケースをサポートしています。

このリリースには、以下の Attribution Reporting API の機能のテストに役立つデベロッパー向けリソースが含まれています。

  • アトリビューション ソースを登録して、イベントをトリガーする
  • ソース優先のインストール後アトリビューションを活用する
  • イベント レポートを受信する
  • 集約可能なレポートを受信する(今回のリリースでは暗号化されいてません)

テスト用のサンプルアプリとリファレンス アドテック サーバーが用意されています。

既知の問題:

Android 版 FLEDGE

Android 版 FLEDGE では、新しい方法を導入して、アプリのデベロッパーが定義する「カスタム オーディエンス」とアプリ内のインタラクションに基づいて広告を表示します。このソリューションでは、この情報と関連する広告をローカルに保存し、広告選択ワークフローを調整するためのフレームワークを提供します。

このリリースには、以下の Android 版 FLEDGE の機能のテストに役立つデベロッパー向けリソースが含まれています。

  • カスタム オーディエンスへの参加、またはそこからの脱退、およびパラメータ値がオークション結果に与える影響の確認
  • リモート エンドポイントからの JavaScript オークション コードの取得
  • オンデバイスの広告オークションの設定と開始
  • インプレッション レポートの処理
  • テストに役立つサンプルアプリとモックサーバー構成の提供

既知の問題:

デベロッパー プレビュー 2

リリース日: 2022 年 5 月 17 日

デベロッパー プレビュー 2 には、MeasurementManager アトリビューション レポート API の早期プレビューが含まれています。

  • registerSource()registerTrigger() を呼び出すと、アプリ広告イベントを登録して、アプリ間のアトリビューションに関するイベントレベルのレポートデータを受け取ることができます。現在の実装ではラストタッチ アトリビューションが使用されています。レポートは、レポート ウィンドウの定義に従って送信されるようにスケジュール設定されています。詳細については、MeasurementManager API リファレンスをご覧ください。
  • 実際のレポートのアップロードは、スケジュール設定の厳密な時刻ではなく、一定の時間間隔の終わりに行われます。レポートのアップロード間隔はデフォルトで 4 時間ですが、次の adb コマンドを使用してオーバーライドできます。

    adb shell device_config put adservices measurement_main_reporting_job_period_ms <duration in milliseconds>
    
  • API テスト用のサンプルアプリとリファレンス アドテック サーバーは、今後のリリースで公開される予定です。

  • 集計レポート、インストール後のアトリビューション、リダイレクトなど、MeasurementManager アトリビューション レポート API の他の機能は、今後のリリースで利用できるようになる予定です。

デベロッパー プレビュー 1

リリース日: 2022 年 4 月 28 日

デベロッパー プレビュー 1 には、Topics APISDK ランタイムの早期プレビューが含まれています。Android 版 FLEDGEアトリビューション レポート API の機能は、今後のリリースで利用できるようになります。

  • Topics API
    • 現在のところ、getTopics() API は一部のアプリのオフライン分類に基づいてテスト値を返します。デバイス上の分類はまだ実装されていません。
    • adb コマンドを使用すると、エポック間隔のオーバーライドや、エポック計算の強制トリガーを行うことができます。
    • 詳しくは、Topics のデベロッパー ガイドをご覧ください。
  • SDK ランタイム
    • SDK アプリのマニフェスト ファイルで新しい <sdk-library> 要素を使用すると、ランタイム対応 SDK(RE SDK)をパッケージ化してビルドできます。開発中にアプリを通常どおりインストールする場合と同様に、サポートされているテストデバイスまたはエミュレータに RE SDK をインストールします。
    • アプリを RE SDK と統合し、SDK ランタイムに読み込み、アクセス制限の影響を SDK コードでテストできます(権限、メモリ、アプリと SDK の間の通信)。RE SDK 用のストレージ API はまだ実装されておらず、今後のリリースで利用できるようになります。
    • SDK は、SDK ランタイムで WebView ベースのバナー広告またはコンテンツをレンダリングできます。
    • 詳しくは、SDK ランタイムのデベロッパー ガイドをご覧ください。
  • Android lint チェック
    • API レベル TiramisuPrivacySandbox でコンパイルされたプロジェクトでは、Android lint チェックで警告が誤って表示されることがあります。たとえば、「呼び出しには API レベル 33 が必要です」などといった警告メッセージが表示されることがあります。この問題に一時的に対処するには、@SuppressLint("NewApi") アノテーションを使用します。