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

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

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

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

静态检查

静态检查会检查查询中的语句,以发现显而易见的隐私问题,例如导出用户 ID 或任何与用户 ID 相关的函数,或者对包含用户级数据的字段使用禁止的函数。为避免因静态检查而导致查询出错,请查看最佳实践并了解允许使用哪些函数。

数据访问预算

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

汇总要求

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

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

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

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

隐私模式

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

比较差异检查与噪音注入

在差异检查模式下,如果行不满足 50 位用户的汇总要求或触发了差异检查违规行为,系统会过滤掉这些行。

在噪音注入模式下,只有当行不满足汇总要求(展示数据约为 20 位用户)时,系统才会过滤相应行,并向汇总结果添加随机噪声。

实际数据
广告系列 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 38
102 61
201 182
202 26
301 58
302 98
噪音模式下的“广告系列 101”示例
广告系列 ID 实际展示次数 添加了噪声 返回的展示次数(已添加噪声 COUNT)
101 35 2.8373 38

明确的隐私保护过滤

如果您需要将查询拆分为多个部分,但又想合并汇总结果,可以明确地对多个较小的查询应用隐私检查,然后以隐私安全的方式将这些结果汇总在一起。

应用场景示例:

  • 您是广告客户,希望在关联的 Google Ads 账号中查找按归因事件类型划分的所有转化,包括 EEA 数据。
  • 您是衡量合作伙伴,希望在关联的 Google Ads 账号中按归因事件类型查找所有转化。

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

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

  1. 它会单独查询每项 Google 服务,并明确对每个中间结果集应用隐私权检查。
  2. 它会为每项 Google 服务(YouTube、Gmail 和网络)的隐私权检查结果创建单独的临时表。
  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. 用户同意分享的数据除外,例如样本组成员的数据。 ↩