Ads Data Hub が行うあらゆる処理はエンドユーザーのプライバシー保護を念頭に置いたものとなっており、プラットフォームそのものがプライバシー保護を基礎として構築されています。Google ではプライバシーを保護し、お客様の規制遵守をサポートするために、お客様がプラットフォームから取得するデータの中に個々のユーザーに関するデータ1が含まれないよう、一定のチェック機能と制限を設けています。
Ads Data Hub のプライバシー機能の概要は以下のとおりです。一部詳細については、後述します。
- 静的チェック: クエリ内のステートメントを調べ、プライバシーに関する明らかで切迫した懸念がないか探します。
- データアクセス予算: 特定のデータにアクセスできる回数の上限が指定されています。
- 集計チェック: 各行に含まれるユーザー数をしきい値以上にすることで、エンドユーザーのプライバシーを保護します。
- ノイズ インジェクションでは、集計
SELECT句に正確に調整されたランダムノイズを追加することで、ユーザーのプライバシーを保護しつつ、ある程度の正確な結果を得ることができます。 - 差分チェック(または「差分チェック」)は、ノイズ注入の代替手段として以前から使用されているもので、結果セットを比較して、個々のユーザーを識別できる組み合わせを防ぐのに役立ちます。これによりノイズは回避されますが、データが大幅に予測不能な形で削除されることがよくあります。
静的チェック
静的チェックでは、クエリ内のステートメントを調べ、プライバシーに関する明らかで直接的な懸念がないか確認します。たとえば、ユーザー識別子のエクスポート、ユーザー識別子を使った関数、ユーザー単位のデータを含むフィールドにおける許可されていない関数の使用がないかを調べます。静的チェックによるクエリ エラーを回避するには、ベスト プラクティスを確認し、どの関数が許可されているかを理解してください。
データアクセス予算
データアクセス予算とは、同じデータにアクセスできる回数の上限を定めたものです。予算の終了が近づくと、DATA_ACCESS_BUDGET_IS_NEARLY_EXHAUSTED タイプのプライバシー メッセージで通知されます。予算は、データアクセス予算のエントリ ポイントを使用するか、管理画面で予算通知を確認することでモニタリングできます。
集計の要件
Ads Data Hub のプライバシー チェックでは、ユーザー集計のしきい値が基準となります。具体的なしきい値は、プライバシー モードとアクセスされたデータによって異なります。
- ノイズ インジェクションでは、結果の行ごとに約 20 人のユニーク ユーザーが必要です。
- 差分チェックでは、結果の行ごとに約 50 人のユニーク ユーザーが必要です。
- クリック数とコンバージョン データのみのクエリでは、結果行ごとに約 10 人のユニーク ユーザーが必要です。
次の例(ノイズ注入を使用)では、キャンペーン 125 を含む行は最終結果からフィルタされます。18 人のユーザーからの結果を集計しており、ユーザー数 20 人の集計要件を下回っているためです。
| キャンペーン ID | ユーザー | 表示回数 |
|---|---|---|
| 123 | 314 | 928 |
| 124 | 2,718 | 5,772 |
| 125 | 18 | 45 |
プライバシー モード
Ads Data Hub には、ノイズ インジェクションと差分チェックの 2 つのプライバシー モードがあります。各モードの詳細については、以下のページをご覧ください。
- ノイズ インジェクション(デフォルト)
- 差分チェック(レガシー)
差分チェックとノイズ インジェクションを比較する
|
|
||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
明示的なプライバシー フィルタリング
クエリを分割する必要があるが、集計結果を結合したい場合は、複数の小さなクエリにプライバシー チェックを明示的に適用し、プライバシーを保護した方法で結果を集計できます。
サンプル ユースケース:
- 広告主様が、リンクされた Google 広告アカウントのすべてのコンバージョンをアトリビューション イベント タイプ別に検索しています。これには EEA のデータが含まれます。
- 測定パートナーが、リンクされた Google 広告アカウントでアトリビューション イベント タイプ別のすべてのコンバージョンを探しています。
Google 広告アカウントのコンバージョンの合計を取得するには、OPTIONS(privacy_checked_export=TRUE) 句を使用してクエリを書き換え、各 Google サービスに個別にプライバシー チェックを適用します。
このセクションの書き換え例では、次の処理を行います。
- 各 Google サービスに個別にクエリを実行し、各中間結果セットにプライバシー チェックを明示的に適用します。
- YouTube、Gmail、ネットワークなど、各 Google サービスのプライバシー チェックの結果に対して、別々の一時テーブルを作成します。
- 一時テーブルからプライバシー チェック済みのコンバージョン数を集計して合計します。
CREATE TEMP TABLE youtube_agg OPTIONS(privacy_checked_export=TRUE) AS
SELECT
impression_data.campaign_id,
attribution_event_type,
COUNT(1) AS num_convs
FROM adh.google_ads_conversions_policy_isolated_youtube
WHERE impression_data.campaign_id IN UNNEST(@campaign_ids)
AND conversion_type IN UNNEST(@conversion_type_list)
GROUP BY campaign_id, attribution_event_type;
CREATE TEMP TABLE network_agg OPTIONS(privacy_checked_export=TRUE) AS
SELECT
impression_data.campaign_id,
attribution_event_type,
COUNT(1) AS num_convs
FROM adh.google_ads_conversions_policy_isolated_network
WHERE impression_data.campaign_id IN UNNEST(@campaign_ids)
AND conversion_type IN UNNEST(@conversion_type_list)
GROUP BY campaign_id, attribution_event_type;
CREATE TEMP TABLE gmail_agg OPTIONS(privacy_checked_export=TRUE) AS
SELECT
impression_data.campaign_id,
attribution_event_type,
COUNT(1) AS num_convs
FROM adh.google_ads_conversions_policy_isolated_gmail
WHERE impression_data.campaign_id IN UNNEST(@campaign_ids)
AND conversion_type IN UNNEST(@conversion_type_list)
GROUP BY campaign_id, attribution_event_type;
SELECT
campaign_id,
attribution_event_type,
SUM(num_convs) AS num_convs
FROM (
SELECT * FROM youtube_agg
UNION ALL
SELECT * FROM network_agg
UNION ALL
SELECT * FROM gmail_agg
)
GROUP BY campaign_id, attribution_event_type
このクエリでは、JOIN を使用してテーブル間でデータを直接結合するのではなく、まず各テーブルに対してクエリを実行し、各中間テーブルにプライバシー チェックを適用してから、UNION を使用してプライバシー チェック済みの値を合計します。
クエリ アドバイザー
有効な SQL であっても、プライバシーの問題を引き起こす可能性がある場合は、クエリ作成中にクエリ アドバイザーによる具体的なアドバイスが提供され、望ましくない結果を避けられるようになっています。
クエリ アドバイザーを使用するには:
- 管理画面。アドバイスは、クエリエディタ内のクエリテキストの上に表示されます。
- API。
customers.analysisQueries.validateメソッドを使用します。
-
ユーザーが共有に同意したデータ(パネルメンバーの場合など)以外を指します。 ↩