このドキュメントについて
この記事をお読みいただくことで、以下が可能になります。
- サマリー レポートを生成する前に、どの戦略を作成すべきかを理解します。
- ノイズラボを紹介します。ノイズラボは、さまざまなノイズ パラメータの影響を把握し、さまざまなノイズ管理戦略を迅速に探索および評価できるツールです。
![ノイズラボのスクリーンショット](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/screenshot-noise-lab-fabb063f24c11.png?authuser=6&hl=ja)
フィードバックをお寄せください
このドキュメントでは、概要レポートを使用する際のいくつかの原則について概説しますが、ノイズ管理には、ここに反映されていない複数のアプローチがあります。ご提案、追加、ご質問がございましたら、ぜひお知らせください。
- ノイズ管理戦略、API(イプシロン)のユーティリティやプライバシーについて一般のフィードバックを提供し、ノイズラボでシミュレーションする際の観察結果を共有するには、この問題についてコメントしてください。
- ノイズラボに関する公開フィードバックを提供する(質問、バグの報告、機能のリクエスト): こちらで新しい問題を作成します。
- API の別の側面について一般公開のフィードバックを送信するには: こちらで新しい問題を作成してください。
始める前に
- 詳しくは、アトリビューション レポート: 概要レポートとアトリビューション レポートのシステム全体の概要をご覧ください。
- このガイドを最大限に活用するには、ノイズについてと集計キーについてをご覧ください。
設計上の意思決定
基本設計原則
サードパーティ Cookie と概要レポートの動作には根本的な違いがあります。主な違いの一つは、サマリー レポートの測定データに追加されるノイズです。もう一つは、レポートのスケジュール設定方法です。
SN 比が高いサマリー レポートの測定データにアクセスするには、デマンドサイド プラットフォーム(DSP)と広告測定プロバイダが広告主と協力してノイズ管理戦略を開発する必要があります。こうした戦略を策定するには、DSP と測定プロバイダが設計上の意思決定を行う必要があります。これらの決定は、次の重要なコンセプトを中心に行われます。
分布ノイズ値は絶対的に、イプシロンとコントリビューション バジェットという 2 つのパラメータにのみ依存しますが、出力測定データの信号対雑音比に影響を与えるさまざまなコントロールを自由に使用できます。
反復的なプロセスが最良の決定につながることが期待されますが、決定内容のバリエーションによって実装が若干異なるため、これらの決定はコードのイテレーションを記述する前(および広告を掲載する前)に行う必要があります。
決定事項: ディメンションの粒度
ノイズラボで試してみる
- 詳細モードに移動します。
- [パラメータ] サイドパネルで [コンバージョン データ] を探します。
- デフォルトのパラメータを確認します。デフォルトでは、1 日のアトリビューション可能なコンバージョン数の合計は 1, 000 です。デフォルトの設定(デフォルトのディメンション、各ディメンションで想定されるさまざまな値のデフォルト数、キー戦略 A)を使用すると、バケットあたり平均で約 40 になります。[バケットごとの 1 日の平均コンバージョン数] に入力した値が 40 であることを確認します。
- [Simulate] をクリックして、デフォルトのパラメータでシミュレーションを実行します。
- [パラメータ] サイドパネルで [ディメンション] を確認します。[Geography] の名前を「City」に変更し、使用可能な値の数を 50 に変更します。
- これにより、バケットごとの 1 日の平均コンバージョン数がどのように変化するかを確認できます。大幅に下がりました。これは、他に何も変更せずにこのディメンション内の有効な値の数を増やすと、各バケットに入るコンバージョン イベントの数を変更せずにバケットの合計数が増えるためです。
- [シミュレーション] をクリックします。
- 結果のシミュレーションのノイズ比を確認します。ノイズ比が前のシミュレーションよりも大きくなりました。
コア設計原則では、小さなサマリー値の方が、大きいサマリー値よりもノイズが多くなる可能性があります。したがって、この構成の選択は、各バケットに関連付けられるコンバージョン イベントの数(集計キーとも呼ばれます)に影響します。その数量は、最終的な出力の概要レポートのノイズに影響します。
1 つのバケット内の貢献度が割り当てられたコンバージョン イベントの数に影響する設計上の決定事項の 1 つに、ディメンションの粒度があります。集計キーとそのディメンションの例を以下に示します。
- 方法 1: 1 つのキー構造で、大まかなディメンション: 国 x 広告キャンペーン(またはキャンペーン集計バケットが最も大きい)x 商品カテゴリ(10 種類の商品カテゴリのうち)
- アプローチ 2: 細分化されたディメンションを持つ 1 つの主要構造: 都市 x クリエイティブ ID x 商品(100 個の商品候補中)
「都市」は「国」よりも細かいディメンション、クリエイティブ ID は「キャンペーン」よりも粒度が、「商品」は「商品カテゴリ」よりも細かい粒度です。したがって、アプローチ 2 では、サマリー レポートの出力に含まれるバケットあたりのイベント(コンバージョン)数(キーあたり)がアプローチ 1 よりも少なくなります。出力に追加されるノイズはバケット内のイベント数に依存しないため、アプローチ 2 では、サマリー レポートの測定データのノイズが多くなります。結果で最大限の有用性が得られるように、広告主ごとに、キーの設計におけるさまざまな粒度のトレードオフを試してください。
決定: 主な構造
ノイズラボで試してみる
シンプルモードでは、デフォルトの鍵構造が使用されます。詳細モードでは、さまざまなキー構造を試すことができます。いくつかのサンプル ディメンションが含まれていますが、変更することもできます。
- 詳細モードに移動します。
- パラメータ サイドパネルで [キー戦略] を探します。ツール内の「A」という名前のデフォルトの戦略では、すべてのディメンションを含む 1 つのきめ細かいキー構造(地域 x キャンペーン ID x 商品カテゴリ)が使用されていることを確認しましょう。
- [シミュレーション] をクリックします。
- 結果のシミュレーションのノイズ率を確認します。
- 鍵戦略を B に変更します。これにより、鍵構造を構成するための追加コントロールが表示されます。
- 鍵の構造を次のように設定します。
- キー ストラクチャの数: 2
- キー構造 1 = 地域 x 商品カテゴリ
- キー構造 2 = キャンペーン ID x 商品カテゴリ
- [シミュレーション] をクリックします。
- 2 つの異なるキー構造を使用しているため、測定目標タイプごとに 2 つのサマリー レポート(購入件数に 2 件、購入額に 2 件)が表示されるようになりました。ノイズ比を確認します。
- これを独自のカスタム ディメンションで試すこともできます。トラッキングするデータの [ディメンション] で、サンプル ディメンションを削除し、最後のディメンションの下にある [追加/削除/リセット] ボタンを使用して独自のディメンションを作成することを検討してください。
1 つのバケット内で貢献度が割り当てられたコンバージョン イベントの数に影響する設計上のもう 1 つの決定は、使用する鍵構造です。次の集計キーの例について考えてみましょう。
- すべてのディメンションを含む 1 つの主要構造。これを戦略 A とします。
- 2 つの主要な構造にディメンションのサブセットがあります。これを鍵戦略 B とします。
![図:](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/diagram-buckets-key-str-2867c3ab534a7.png?authuser=6&hl=ja)
戦略 A の方がシンプルですが、特定のインサイトにアクセスするには、サマリー レポートに含まれるノイズの多いサマリーの値をロールアップ(合計)する必要がある場合があります。これらの値を合計することで、ノイズも合計します。戦略 B では、サマリー レポートに表示されるサマリー値から、必要な情報がすでに得られている場合があります。つまり、戦略 B の方が戦略 A よりも信号雑音比が高くなる可能性があります。ただし、戦略 A ではノイズがすでに許容できるため、シンプルさのために戦略 A を優先することもできます。詳しくは、これら 2 つの戦略を示した詳細な例をご覧ください。
鍵管理は深いトピックです。信号対雑音比を改善するために、多くの複雑な手法を検討できます。1 つは、高度な鍵管理で説明しています。
決定: バッチ処理頻度
ノイズラボで試してみる
- シンプルモード(または詳細モード - バッチ処理頻度に関しては、どちらのモードも同じように機能します)に移動します。
- [パラメータ] サイドパネルで、[集計戦略] > [バッチ処理頻度] に移動します。これは、単一のジョブで集計サービスを使用して処理される集計可能レポートのバッチ処理頻度を指します。
- デフォルトのバッチ処理頻度を確認します。デフォルトでは、1 日のバッチ処理頻度がシミュレートされます。
- [シミュレーション] をクリックします。
- 結果のシミュレーションのノイズ率を確認します。
- バッチ処理頻度を週単位に変更します。
- 結果のシミュレーションのノイズ比を確認します。前のシミュレーションよりもノイズ比が低くなった(改善した)ことがわかります。
1 つのバケット内の貢献度が割り当てられたコンバージョン イベントの数に影響する設計上のもう一つの決定は、使用するバッチ処理頻度です。バッチ処理頻度は、集計可能レポートを処理する頻度です。
より頻繁に(1 時間ごとなど)集計がスケジュール設定されているレポートでは、集計の頻度が低い同じレポート(毎週など)よりも、含まれるコンバージョン イベントの数が少なくなります。そのため、時間別レポートにはノイズが多く含まれます。つまり、集計スケジュールの頻度が低い同じレポート(毎週など)に比べて、含まれるコンバージョン イベントの数は少なくなります。その結果、他の条件がすべて同じであれば、時間別レポートでは週次レポートよりも信号雑音比が低くなります。さまざまな頻度でレポート要件をテストし、それぞれの信号対雑音比を評価します。
詳細については、バッチ処理と長期間にわたる集計をご覧ください。
決定: アトリビューション可能なコンバージョンに影響するキャンペーン変数
ノイズラボで試してみる
この予測は困難で、季節性の影響に加えて大きな変動が生じることがありますが、1 日のシングルタッチに起因するコンバージョン数は、最も近い 10 の累乗(10、100、1,000、または 10,000)で見積もってみてください。
- 詳細モードに移動します。
- [パラメータ] サイドパネルで [コンバージョン データ] を探します。
- デフォルトのパラメータを確認します。デフォルトでは、1 日のアトリビューション可能なコンバージョン数の合計は 1, 000 です。デフォルトの設定(デフォルトのディメンション、各ディメンションで想定されるさまざまな値のデフォルト数、キー戦略 A)を使用すると、バケットあたり平均で約 40 になります。[バケットごとの 1 日の平均コンバージョン数] に入力した値が 40 であることを確認します。
- [Simulate] をクリックして、デフォルトのパラメータでシミュレーションを実行します。
- 結果のシミュレーションのノイズ率を確認します。
- 次に、[アトリビューション可能な 1 日の合計コンバージョン数] を 100 に設定します。 これにより、バケットごとの 1 日の平均コンバージョン数の値が下がることを確認します。
- [シミュレーション] をクリックします。
- バケットあたりのコンバージョン数が少なくなると、プライバシーを保護するためにより多くのノイズが適用されるためです。
重要な違いは、広告主について推定されるコンバージョンの合計数と、アトリビューションされたコンバージョンの合計数であるという点です。後者は、最終的にサマリー レポートのノイズに影響します。貢献度の割り当てられたコンバージョンとは、広告予算や広告ターゲティングなどのキャンペーン変数の影響を受けやすい合計コンバージョンのサブセットです。たとえば、1,000 万ドルの広告キャンペーンのほうが 1 万ドルの広告キャンペーンよりも、貢献度が割り当てられたコンバージョンの数が多くなることが予想されます。
注意点:
- アトリビューションされたコンバージョンは、Attribution Reporting API で収集されるサマリー レポートの範囲内にあるため、同じデバイス アトリビューション モデルを使ってアトリビューションされたコンバージョンを評価します。
- 貢献度が割り当てられたコンバージョンについては、最悪のケースの個数と最悪のケースの個数の両方を考慮します。たとえば、他の条件がすべて同じであれば、広告主に対して可能な最小キャンペーン予算と最大予算を検討し、両方の成果のアトリビューション可能なコンバージョン数をシミュレーションの入力として予測します。
- Android 向けプライバシー サンドボックスの使用を検討している場合は、クロス プラットフォームが貢献したコンバージョンを計算で考慮してください。
決定: スケーリングを使用する
ノイズラボで試してみる
- 詳細モードに移動します。
- [パラメータ] サイドパネルで、[集計戦略] > [スケーリング] に移動します。デフォルトでは [はい] に設定されています。
- スケーリングがノイズ比に及ぼすプラスの影響を理解するために、まず [Scaling] を [No] に設定します。
- [シミュレーション] をクリックします。
- 結果のシミュレーションのノイズ率を確認します。
- [スケーリング] を [はい] に設定します。ノイズラボでは、シナリオの測定目標の範囲(平均値と最大値)から、使用するスケーリング ファクタが自動的に計算されます。実際のシステムまたはオリジン トライアルの設定では、スケーリング ファクタを独自に計算する必要があります。
- [シミュレーション] をクリックします。
- この 2 番目のシミュレーションで、ノイズ比が低くなった(改善した)ことを確認します。これは、スケーリングを使用しているためです。
コア設計原則を考慮すると、追加されるノイズは資金提供バジェットの関数になります。
したがって、信号対雑音比を高めるには、コンバージョン イベント中に収集された値を貢献度に応じてスケーリングする(また、集計後にスケーリング解除する)ことで変換できます。スケーリングを使用して信号対雑音比を高める。
決定事項: 測定目標の数とプライバシーの予算配分
これはスケーリングに関連します。必ずスケーリングの使用をご覧ください。
ノイズラボで試してみる
測定目標とは、コンバージョン イベントで収集される個別のデータポイントです。
- 詳細モードに移動します。
- [パラメータ] サイドパネルで、トラッキングするデータ(測定目標)を探します。デフォルトでは、購入額と購入数の 2 つの測定目標が設定されています。
- [シミュレーション] をクリックして、デフォルトの目標でシミュレーションを実行します。
- [削除] をクリックします。これにより、最後の測定目標(この場合は購入数)が削除されます。
- [シミュレーション] をクリックします。
- この 2 番目のシミュレーションでは、購入額のノイズ率が低下(良好)したことを確認します。これは、測定目標が少ないため、1 つの測定目標に資金提供予算がすべて配分されるようになったためです。
- [リセット] をクリックします。これで、購入額と購入回数という 2 つの測定目標が設定されました。ノイズラボでは、シナリオの測定目標の範囲(平均値と最大値)に基づいて、使用されるスケーリング ファクタが自動的に計算されます。デフォルトでは、ノイズラボは予算を測定目標に均等に分割します。
- [シミュレーション] をクリックします。
- 結果のシミュレーションのノイズ率を確認します。シミュレーションに表示されるスケーリング ファクタに注意してください。
- 次に、プライバシー バジェットの分割をカスタマイズして、より良い信号対雑音比を実現しましょう。
- 各測定目標に割り当てられた予算の割合(%)を微調整します。デフォルトのパラメータでは、測定目標 1(購入額)の範囲は、測定目標 2(購入数)よりもかなり広く(0 ~ 1,000)なります(購入回数は 1 ~ 1、つまり常に 1 になります)。このため、「スケーリングのためのスペース」が必要になります。より効率的にスケールアップできるように(スケーリングを参照)、測定目標 1 に測定目標 2 よりも多くの貢献度割り当て予算を割り当てるのが理想的です(スケーリングを参照)。
- 予算の 70% を測定目標 1 に割り当てる。測定目標 2 に 30% を割り当てます。
- [シミュレーション] をクリックします。
- 結果のシミュレーションのノイズ率を確認します。購入額では、前のシミュレーションよりもノイズ率が著しく低下(改善)されるようになりました。購入回数については、ほぼ変わりません。
- 指標間の予算配分を引き続き調整します。これがノイズに与える影響を確認します。
[Add/Remove/Reset] ボタンを使用して、独自のカスタム測定目標を設定できます。
コンバージョン数など、コンバージョン イベントについて 1 つのデータポイント(測定目標)を測定する場合、そのデータポイントは資金提供予算(65,536)をすべて取得できます。コンバージョン イベントに複数の測定目標(コンバージョン数や購入額など)を設定した場合、それらのデータポイントは資金提供予算を共有する必要があります。つまり、値をスケールアップする余地が少なくなります。
したがって、測定目標が多いほど、信号対雑音比が低くなる(ノイズが多くなる)可能性があります。
測定目標を決めるもう 1 つの決定は、予算の分割です。資金提供予算を 2 つのデータポイントに均等に分割すると、各データポイントの予算は 65536÷2 = 32768 になります。これが最適かどうかは、各データポイントの最大可能値によって異なります。たとえば、購入回数の最大値が 1 で、購入額の最小値が 1、最大値が 120 の場合、購入額を「スペースが広くなる」、つまり寄付予算の比率を大きくすることで、購入額を測定できます。ノイズの影響を考慮して、一部の測定目標を他の目標より優先する必要があるかどうかを確認できます。
決定: 外れ値管理
ノイズラボで試してみる
測定目標とは、コンバージョン イベントで収集される個別のデータポイントです。
- 詳細モードに移動します。
- パラメータ サイドパネルで、[集計戦略] > [スケーリング] に移動します。
- [スケーリング] が [はい] に設定されていることを確認します。ノイズラボでは、測定目標に指定した範囲(平均値と最大値)に基づいて、使用するスケーリング ファクタが自動的に計算されます。
- たとえば、これまでに最大の購入額が 2, 000 ドルで、そのほとんどの購入が 10 ~ 120 ドルの範囲だったとします。まず、文字どおりのスケーリング アプローチ(非推奨)を使用するとどうなるかを見てみましょう。purchaseValue の最大値として $2, 000 を入力します。
- [シミュレーション] をクリックします。
- ノイズ率が高いことを確認します。これは、現在、スケーリング ファクタが $2, 000 に基づいて計算されているためです。実際には、ほとんどの購入額はそれよりも著しく低くなるためです。
- では、より実用的なスケーリング アプローチを使ってみましょう。最大購入額を $120 に変更します。
- [シミュレーション] をクリックします。
- この 2 番目のシミュレーションでは、ノイズ比が低い(良い)ことを確認します。
スケーリングを実装するには、通常、特定のコンバージョン イベントで可能な最大値に基づいてスケーリング ファクタを計算します(詳しくはこの例をご覧ください)。
ただし、スケーリング ファクタの計算にリテラルの最大値を使用することは避けてください。信号対雑音比が悪化する可能性があります。代わりに、外れ値を削除し、実用的な最大値を使用します。
外れ値の管理は深いトピックです。信号対雑音比を改善するために、多くの複雑な手法を検討できます。1 つは、高度な外れ値管理で説明されています。
次のステップ
ユースケースのさまざまなノイズ管理戦略を評価したので、オリジン トライアルで実際の測定データを収集して、サマリー レポートのテストを開始する準備が整いました。API を試すためのガイドとヒントを確認します。
付録
ノイズラボのクイックツアー
ノイズラボを使用すると、ノイズ管理戦略をすばやく評価して比較できます。たとえば次のような操作が可能です。
- ノイズに影響を与える可能性のある主なパラメータと、それらが及ぼす影響について説明します。
- 設計上のさまざまな決定を行い、出力測定データに対するノイズの影響をシミュレートします。ユースケースに適した信号対雑音比に達するまで、設計パラメータを微調整します。
- 概要レポートの有用性について、イプシロン パラメータとノイズ パラメータの値のうち、役に立つものとそうでないものについて、フィードバックをお寄せください。転換点はどこにあるのでしょうか。
これは準備ステップと考えてください。ノイズラボは、入力に基づいてサマリー レポートの出力をシミュレートする測定データを生成します。データは保持されず、共有もされません。
ノイズラボには 2 種類のモードがあります。
- シンプルモード: ノイズに対するコントロールの基礎を学びます。
- 詳細モード: さまざまなノイズ管理戦略をテストして、ユースケースに最適な信号対雑音比につながる戦略を評価します。
上部のメニューにあるボタンをクリックして、2 つのモードを切り替えます(下のスクリーンショットの 1.)。
シンプルモード
- シンプルモードでは、Epsilon などのパラメータ(左側、または下のスクリーンショットの 2)を制御して、ノイズへの影響を確認します。
- 各パラメータにはツールチップ(「?」ボタン)があります。クリックすると、各パラメータの説明が表示されます(3. 以下のスクリーンショットの 3)。
- まず、[シミュレーション] ボタンをクリックして、出力がどのように表示されるかを確認します(以下のスクリーンショットの 4.)。
- [出力] セクションでさまざまな詳細を確認できます。一部の要素には「?」が付きます。それぞれの「?」をクリックすると、さまざまな情報の説明が表示されます。
- テーブルを展開したバージョン(以下のスクリーンショットの 5.)を表示するには、[Output] セクションの [Details] トグルをクリックします。
- 出力セクションの各データテーブルの下に、オフラインで使用するためにテーブルをダウンロードするオプションが表示されます。さらに、右下には、すべてのデータテーブルをダウンロードするオプションもあります(以下のスクリーンショットの#6)。
- [パラメータ] セクションでパラメータのさまざまな設定をテストし、[シミュレーション] をクリックして出力への影響を確認します。
シンプルモードのノイズラボのインターフェース。
上級者モード
- 詳細モードでは、パラメータをより細かく制御できます。カスタムの測定目標とディメンションを追加できます(以下のスクリーンショットの 1 と 2)。
- [Parameters] セクションでさらに下にスクロールし、[Key Strategy] オプションを確認します。これを使用して、さまざまな鍵構造をテストできます(以下のスクリーンショットの#3)。
- さまざまな鍵構造をテストするには、鍵戦略を「B」に切り替えます
- 使用する鍵構造の数を入力します(デフォルトは 2 です)。
- [Generate Key Structures] をクリックします。
- 各キー構造に含めるキーの横にあるチェックボックスをクリックすると、キー構造を指定するオプションが表示されます。
- [シミュレーション] をクリックして出力を確認します。
詳細モードのノイズラボ インターフェース。 詳細モードのノイズラボ インターフェース。
ノイズ指標
基本コンセプト
個々のユーザーのプライバシーを保護するために、ノイズが追加されます。
ノイズ値が高い場合は、バケット/キーがスパースで、限られた数のデリケートなイベントからのコントリビューションが含まれていることを示します。これはノイズラボによって自動的に行われ、個人は「人混みの中に隠れる」ことができます。つまり、より多くのノイズを追加して、限られた個人のプライバシーを保護できます。
ノイズ値が低い場合は、すでに個人が「群衆の中に隠れる」ようにデータ設定が設計されていることを示します。つまり、個々のユーザーのプライバシーが保護されるように、十分な数のイベントからのコントリビューションがバケットに含まれています。
この記述は、平均誤差率(APE)と RMSRE_T(しきい値のある二乗平均平方根相対誤差)の両方に当てはまります。
APE(平均エラー率)
APE とは、信号に対するノイズの比率、つまり真のサマリー値です。p> APE 値が小さいほど、信号雑音比が優れていることを意味します。
数式
概要レポートの場合、APE は次のように計算されます。
![](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/apenoise-true-enois-e69aca84b50ef.png?authuser=6&hl=ja)
True は、真の概要値です。APE は、各サマリー値に対するノイズの平均を、サマリー レポート内のすべてのエントリで平均した値です。ノイズラボでは、この数値に 100 を掛けて割合を計算します。
長所と短所
サイズが小さいバケットは、APE の最終的な値に不釣り合いな影響を与えます。ノイズを評価するときに誤解を招く可能性があります。そのため、APE によるこの制限を緩和するために、もう一つの指標 RMSRE_T を追加しました。詳しくは、例をご覧ください。
コード
APE の計算については、ソースコードを確認します。
RMSRE_T(しきい値ありの二乗平均平方根相対誤差)
RMSRE_T(しきい値を持つ二乗平均平方根相対誤差)も、ノイズの尺度です。
RMSRE_T の見方
RMSRE_T の値が小さいほど、信号雑音比が優れていることを意味します。
たとえば、ユースケースで許容できるノイズ比が 20% で、RMSRE_T が 0.2 の場合、ノイズレベルが許容範囲内にあると確信できます。
数式
概要レポートの場合、RMSRE_T は次のように計算されます。
![数式](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/formula-rmsret-acca5b5c9752b.png?authuser=6&hl=ja)
良い点と悪い点
RMSRE_T は、APE よりも理解するのが少し複雑です。ただし、サマリー レポートでのノイズ分析には、APE よりも適している場合がある利点がいくつかあります。
- RMSRE_T はより安定しています。「T」はしきい値です。「T」は、コンバージョン数が少なく、サイズが小さいためにノイズの影響を受けやすいバケットを RMSRE_T の計算でより少なくするために使用されます。T を指定すると、コンバージョン数が少ないバケットで指標が急増することはありません。T が 5 に等しい場合、コンバージョン数が 0 のバケットで 1 のような小さなノイズ値は、1 を超えるものとして表示されません。代わりに、T が 5 であるため、上限は 0.2(1/5 に相当します)に設定されます。ノイズの影響を受けやすい小さなバケットに重みを小さくすることで、この指標がより安定し、2 つのシミュレーションを比較しやすくなります。
- RMSRE_T を使用すると、集計が容易になります。複数のバケットの RMSRE_T と実際のカウントがわかれば、合計の RMSRE_T を計算できます。これにより、これらの結合された値の RMSRE_T を最適化することもできます。
APE でも集計が可能ですが、ラプラスノイズの合計の絶対値を使用するため、式は非常に複雑です。これにより、APE の最適化が難しくなります。
コード
RMSRE_T の計算のソースコードを確認します。
例
3 つのバケットを含む概要レポート:
- バケット 1 = ノイズ: 10、trueSummaryValue: 100
- バケット 2 = ノイズ: 20、trueSummaryValue: 100
- バケット 3 = ノイズ: 20、trueSummaryValue: 200
APE = (0.1 + 0.2 + 0.1) ÷ 3 = 13%
RMSRE_T = sqrt( ( (10/max(5,100))^2 + (20/max(5,100))^2 + (20/max(5,200))^2) / 3) = sqrt( (0.01 + 0.04 + 0.01) / 3) = 0.14
3 つのバケットを含む概要レポート:
- バケット 1 = ノイズ: 10、trueSummaryValue: 100
- バケット 2 = ノイズ: 20、trueSummaryValue: 100
- バケット 3 = ノイズ: 20、trueSummaryValue: 20
APE = (0.1 + 0.2 + 1) ÷ 3 = 43%
RMSRE_T = sqrt( ( (10/max(5,100))^2 + (20/max(5,100))^2 + (20/max(5,20))^2) / 3) = sqrt( (0.01 + 0.04 + 1.0) / 3) = 0.59
3 つのバケットを含む概要レポート:
- バケット 1 = ノイズ: 10、trueSummaryValue: 100
- バケット 2 = ノイズ: 20、trueSummaryValue: 100
- bucket_3 = ノイズ: 20、trueSummaryValue: 0
APE = (0.1 + 0.2 + 無限大) ÷ 3 = 無限大
RMSRE_T = sqrt( ( (10/max(5,100))^2 + (20/max(5,100))^2 + (20/max(5,0))^2) / 3) = sqrt( (0.01 + 0.04 + 16.0) / 3) = 2.31
高度な鍵管理
DSP または広告測定会社は、複数の業界、通貨、購入価格の可能性にまたがり、数千人のグローバルな広告顧客を抱えている場合があります。そのため、広告主ごとに 1 つの集計キーを作成して管理するのは現実的ではありません。さらに、世界中の何千もの広告主にわたるノイズの影響を制限できる最大の集計可能値と集計予算を選択することが困難になります。代わりに、次のようなシナリオを考えてみましょう。
主要な戦略 A
広告テクノロジー プロバイダは、広告を掲載するすべての顧客に対して 1 つのキーを作成し、管理することにしました。すべての広告主とすべての通貨について、購入額の範囲は、少量の高額購入から大量かつローエンドの購入まで多岐にわたります。これにより、次のキーが生成されます。
キー(複数の通貨) | |
---|---|
最大集計可能値 | 5,000,000 |
購入額の範囲 | [120 ~ 5000000] |
主要な戦略 B
広告テクノロジー プロバイダは、すべてのアドバタイジング カスタマーについて 2 つのキーを作成して管理することにしました。そこで、鍵を通貨別に分けることにしました。すべての広告主とすべての通貨について、購入額の範囲は、少量の購入の高額購入から大量購入のローエンドまでさまざまです。通貨ごとに分けて、次の 2 つのキーを作成します。
キー 1(米ドル) | キー 2(¥) | |
---|---|---|
最大集計可能値 | $40,000 | 5,000,000 円 |
購入額の範囲 | [120 ~ 40,000] | [15,000 ~ 5,000,000] |
鍵戦略 B では、通貨の値が通貨間で均一に分散されていないため、鍵戦略 A よりも結果のノイズが少なくなります。たとえば、円建ての購入と米ドル建ての購入が混在する場合に、基礎データがどのように変化し、結果としてノイズの多い出力が発生するかを検討します。
主要戦略 C
広告テクノロジー プロバイダは、すべての広告ユーザーについて 4 つのキーを作成して管理し、通貨 x 広告主の業種ごとに分離することを決定しました。
キー 1 (米ドル x 高級ジュエリーの広告主様) |
キー 2 (¥ x 高級ジュエリーの広告主様) |
キー 3 (米ドル x 衣料品小売業者の広告主) |
キー 4 (¥ x 衣料品小売業者の広告主) |
|
---|---|---|---|---|
最大集計可能値 | $40,000 | 5,000,000 円 | $500 | 65,000 円 |
購入額の範囲 | [10,000 ~ 40,000] | [1,250,000 ~ 5,000,000] | [120 ~ 500] | [15,000 ~ 65,000] |
主要戦略 C の結果では、広告主の購入額が広告主間で均一に分散されていないため、主要戦略 B よりも結果のノイズが少なくなります。たとえば、高級宝飾品の購入と野球帽の購入が混在したときに、基になるデータがどのように変わり、結果としてノイズが含まれる出力が発生するかについて考えてみましょう。
出力に含まれるノイズを軽減するために、複数の広告主間で共通性があるように、共有の最大集計値とスケーリング ファクタを共有することを検討してください。たとえば、広告主向けに以下のようなさまざまな戦略を試すことができます。
- 通貨(米ドル、円、カナダドルなど)で区切られた 1 つの戦略
- 広告主様の業種(保険、自動車、小売など)ごとに分類された 1 つの戦略
- 類似した購入額の範囲([100]、[1000]、[10000] など)で区切られた 1 つの戦略
広告主の共通性に関する重要な戦略を作成することで、キーと対応するコードの管理が容易になり、信号対雑音比が向上します。広告主の共通性が異なるさまざまな戦略を試して、コード管理よりもノイズの影響を最大化する転換点を明らかにします。
高度な外れ値管理
2 人の広告主について考えてみましょう。
- 広告主 A:
- 広告主 A のサイトのすべての商品について、購入価格の可能性は [$120 - $1,000] で、範囲は $880 です。
- 購入価格は $880 の範囲に均等に配分され、購入価格の中央値から 2 標準偏差を超える外れ値はありません。
- 広告主 B:
- 広告主 B のサイトのすべての商品について、購入価格の可能性は [$120 - $1,000] で、範囲は $880 です。
- 購入価格は $120 ~$500 の範囲に大きく偏っており、$500 ~$1,000 の範囲の購入は 5% しか発生していません。
資金提供予算の要件と、最終結果に対して [ノイズが適用される](/privacy-sandbox/relevance/attribution-reporting/understanding-noise/#how-noise-is- applied)方法を考えると、広告主 B は、基礎となる計算に外れ値が影響を与える可能性が高いため、デフォルトで広告主 A よりもノイズの多い出力になります。
この問題は、特定の鍵の設定で軽減できます。外れ値データの管理と、キーの購入範囲全体に購入額をより均等に分散するために役立つ主要な戦略をテストします。
広告主 B では、2 つの異なるキーを作成して 2 つの異なる購入額の範囲を取得できます。この例では、広告テクノロジーは、$500 の購入額よりも外れ値が出現していることに気づいています。この広告主に対して、次の 2 つのキーを実装してみます。
- 鍵構造 1 : $120 ~$500 の購入のみを取得するキー(合計購入数の約 95% をカバー)。
- 鍵構造 2: $500 を超える購入のみをキャプチャするキー(合計購入数の約 5% をカバー)。
この重要な戦略を実装することで、広告主 B のノイズ管理が改善され、広告主 B の有用性を最大限に高めることができます。新しい範囲が狭くなると、キー A とキー B は以前の単一キーの場合よりも、それぞれのキー全体でより均一なデータ分布になります。これにより、前の単一キーの場合よりも、各キーの出力のノイズの影響が少なくなります。