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

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

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

  • 静态检查会检查查询中的语句,以发现显而易见的隐私问题。
  • 数据访问预算会限制您可以访问指定数据的总次数。
  • 汇总检查可确保每一行都包含足够数量的用户,以保护最终用户的隐私。
  • 差异检查(或“差异检查”)会比较结果集,以防止您通过比较多组用户的数据来收集个别用户的相关信息。
  • 噪声注入是差异检查的替代方案。噪声模式仅适用于面向营销者的广告数据中心。如需了解噪声注入,请访问面向营销者的广告数据中心网站上的此页面。

如果结果未通过隐私权检查,广告数据中心会显示或返回一条隐私权消息,通知您某行已被滤除。被滤除的可以是单个行,也可以是整个结果集。为了确保报告总计值准确无误,请使用被滤除的行摘要来统计被舍弃行的数据2

静态检查

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

数据访问预算

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

汇总要求

广告数据中心隐私权检查的核心是用户汇总阈值。对于大多数查询,汇总的用户需至少达到 50 位才能生成报告数据。不过,对于仅访问点击次数和转化次数的查询,只需达到 10 位用户就能生成报告数据。

  • 用户 ID 为零的事件会被视为单个用户,并计入汇总阈值,无论有多少真实用户触发了这些事件。
  • ID 为 null 的用户不计入汇总阈值。

最佳实践:配置被滤除的行摘要,以报告被省略的数据。这有助于让报告保持一致的基准。

在以下示例中,包含广告系列 125 的行将从最终结果中滤除,因为该行汇总的是 48 位用户的结果,这低于最少 50 位用户的数量限制。

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

差异检查

差异检查有助于确保用户不能通过比较多个已充分汇总的结果而被识别出来,具体方式如下:

  • 差异检查将您正在运行的作业的结果与之前的结果进行比较。
  • 差异检查比较同一结果集中的行。

如果更改两个作业之间的基础数据,就可能会导致差异检查违规。将某个作业的结果与之前的结果进行比较时,广告数据中心会在个别用户层面查找漏洞。因此,即使结果来自不同广告系列,或结果报告的用户数量相同,只要包含大量重叠的用户,就可能会被滤除。

另一方面,两个汇总结果集可能具有相同数量的用户(看起来好像是相同的结果集),但包含的用户并不重叠,因此可保护隐私安全,在这种情况下,结果不会被滤除。

广告数据中心在评估新结果的漏洞时,会参考历史结果中的数据。这意味着反复运行同一查询会产生更多数据,可供差异检查在评估新结果的漏洞时使用。此外,基础数据可能会发生变化,导致那些本应稳定的查询出现隐私权检查违规的情况。

如果您的作业级结果存在明显差异,但个别行与上一个作业中的某一行类似,广告数据中心会滤除类似的行。在本例中,第二个作业的结果中包含广告系列 123 的行将被滤除,因为该行与上一个结果相差一位用户。

作业 1
广告系列 ID 用户数量
123 400
124 569
作业 2
广告系列 ID 用户数量
123 401
224 1325

如果结果集中所有行的用户总数与上一个作业中类似,广告数据中心会滤除整个结果集。在此示例中,第二个作业中的所有结果都将被滤除。

作业 1
广告系列 ID 用户数量
123 400
124 1367
作业 2
广告系列 ID 用户数量
123 402
124 1367

被滤除的行摘要

被滤除的行摘要会统计因隐私权检查而被滤除的数据。系统会对被滤除的行中的数据求和,并将结果添加到一个汇总行中。虽然无法对被滤除的数据进行进一步分析,但可以大致了解从结果中滤除了多少数据。

明确的隐私过滤

如果您需要拆分查询,但又想合并汇总结果,则可以明确对多个较小的查询应用隐私权检查,然后以注重隐私保护的方式汇总这些结果。

应用场景示例:

  • 您是一名广告客户,希望按归因事件类型查看关联的 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. 用户同意分享的数据除外,例如样本组成员的数据。

  2. 除非受到隐私权限制,例如,被滤除的行摘要中的用户不符合汇总要求。