广告数据中心内的隐私权检查

保护最终用户的隐私是广告数据中心一切工作的核心,也是我们平台的构建基础。为了帮助保护最终用户的 隐私,协助客户遵守相关法规,我们实施了特定 检查和限制机制,以防止平台提供的数据中包含与具体用户相关的数据 1

下文简要介绍了广告数据中心的隐私权功能,您可以参阅以下各部分了解详情:

  • 静态检查 会检查查询中的语句,以发现显而易见的隐私问题。
  • 数据访问预算 会限制您可以访问指定数据的总次数。
  • 汇总检查 可确保每一行都包含足够数量的用户,以保护最终用户的隐私。
  • 噪音注入 会向汇总 SELECT 子句添加经过精确校准的随机噪声,以保护用户隐私,同时提供相对准确的结果。
  • 差异检查 (或“差异检查”)是噪声注入的旧版替代方案,它会比较结果集,以防止出现可能会识别出具体用户的组合。这种方法可以避免噪声,但通常会导致大量不可预测的数据隐去。

静态检查

静态检查会检查查询中的语句,以发现显而易见的隐私问题,例如导出用户标识符、对用户标识符使用函数,或者对包含用户级数据的字段使用不允许的函数。为了避免静态检查导致查询错误,请查看 最佳实践,并了解 哪些函数是允许使用的

数据访问预算

数据访问预算会限制您可以访问指定数据的总次数。当用户的数据访问预算即将用完时,系统会向其发送 类型为 DATA_ACCESS_BUDGET_IS_NEARLY_EXHAUSTED隐私权消息。您可以使用 数据访问预算入口点 或通过观察界面中的预算通知来监控预算使用情况。

汇总要求

广告数据中心隐私权检查的核心是用户汇总阈值。具体阈值取决于隐私模式和访问的数据:

  • 噪音注入要求每个结果行大约有 20 位唯一身份用户。
  • 差异检查要求每个结果行大约有 50 位唯一身份用户。
  • 仅查询点击和转化数据的查询要求每个结果行大约有 10 位唯一身份用户。

在以下示例(使用噪声注入)中,包含广告系列 125 的行将从最终结果中滤除,因为该行汇总的是 18 位用户的结果,这低于最少 20 位用户的数量限制。

广告系列 ID 用户 展示次数
123 314 928
124 2718 5772
125 18 45

隐私模式

广告数据中心提供两种隐私模式:噪音注入差异检查。如需详细了解每种模式,请参阅以下页面:

比较差异检查和噪音注入

实际数据
广告系列 ID 展示次数
101 35
102 63
201 142
202 21
301 56
302 99
使用差异 检查的结果
广告系列 ID 展示次数
101 35
102 63
201 142
202 21
301 56
302 99
使用噪声 注入的结果
广告系列 ID 展示次数
101 37.8373
102 60.9104
201 182.0955
202 26.2332
301 58.0871
302 97.5018
噪音模式下广告系列 101 的示例
广告系列 ID 实际展示次数 添加的噪声 返回的展示次数 (ANON_COUNT)
101 35 2.8373 37.8373

显式隐私权过滤

如果您需要将查询拆分成多个部分,但又想合并汇总结果,可以对几个较小的查询显式应用隐私权检查,然后以注重隐私保护的方式将这些结果汇总在一起。

应用场景示例:

  • 您是广告客户,想要在关联的 Google Ads 账号中按归因事件类型查找所有转化,其中包括欧洲经济区 (EEA) 数据。
  • 您是衡量合作伙伴,想要在关联的 Google Ads 账号中按归因事件类型查找所有转化。

如需获取 Google Ads 账号的转化总数,您可以使用 OPTIONS(privacy_checked_export=TRUE) 子句重写查询,以便单独对每项 Google 服务应用隐私权检查。

本部分中的重写示例执行以下操作:

  1. 单独查询每项 Google 服务,并对每个中间结果集显式应用隐私权检查。
  2. 为每项 Google 服务(YouTube、Gmail 和 Google 展示广告网络)的隐私权检查结果创建单独的 临时表
  3. 汇总并求和临时表中经过隐私权检查的转化次数。
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 有效,但可能会触发隐私权问题,查询顾问 会在查询形成过程中显示切实可行的建议,帮助您避免不理想的结果。

可以通过以下方式使用查询顾问:


  1. 用户同意分享的数据除外,例如样本组成员的数据。