保护最终用户的隐私是广告数据中心一切工作的核心,也是我们平台的构建基础。为了帮助保护最终用户的 隐私,协助客户遵守相关法规,我们实施了特定 检查和限制机制,以防止平台提供的数据中包含与具体用户相关的数据 1。
下文简要介绍了广告数据中心的隐私权功能,您可以参阅以下各部分了解详情:
- 静态检查 会检查查询中的语句,以发现显而易见的隐私问题。
- 数据访问预算 会限制您可以访问指定数据的总次数。
- 汇总检查 可确保每一行都包含足够数量的用户,以保护最终用户的隐私。
- 噪音注入 会向汇总
SELECT子句添加经过精确校准的随机噪声,以保护用户隐私,同时提供相对准确的结果。 - 差异检查 (或“差异检查”)是噪声注入的旧版替代方案,它会比较结果集,以防止出现可能会识别出具体用户的组合。这种方法可以避免噪声,但通常会导致大量不可预测的数据隐去。
静态检查
静态检查会检查查询中的语句,以发现显而易见的隐私问题,例如导出用户标识符、对用户标识符使用函数,或者对包含用户级数据的字段使用不允许的函数。为了避免静态检查导致查询错误,请查看 最佳实践,并了解 哪些函数是允许使用的。
数据访问预算
数据访问预算会限制您可以访问指定数据的总次数。当用户的数据访问预算即将用完时,系统会向其发送
类型为 DATA_ACCESS_BUDGET_IS_NEARLY_EXHAUSTED 的 隐私权消息。您可以使用
数据访问预算入口点
或通过观察界面中的预算通知来监控预算使用情况。
汇总要求
广告数据中心隐私权检查的核心是用户汇总阈值。具体阈值取决于隐私模式和访问的数据:
- 噪音注入要求每个结果行大约有 20 位唯一身份用户。
- 差异检查要求每个结果行大约有 50 位唯一身份用户。
- 仅查询点击和转化数据的查询要求每个结果行大约有 10 位唯一身份用户。
在以下示例(使用噪声注入)中,包含广告系列 125 的行将从最终结果中滤除,因为该行汇总的是 18 位用户的结果,这低于最少 20 位用户的数量限制。
| 广告系列 ID | 用户 | 展示次数 |
|---|---|---|
| 123 | 314 | 928 |
| 124 | 2718 | 5772 |
| 125 | 18 | 45 |
隐私模式
广告数据中心提供两种隐私模式:噪音注入和差异检查。如需详细了解每种模式,请参阅以下页面:
比较差异检查和噪音注入
|
|
||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||
显式隐私权过滤
如果您需要将查询拆分成多个部分,但又想合并汇总结果,可以对几个较小的查询显式应用隐私权检查,然后以注重隐私保护的方式将这些结果汇总在一起。
应用场景示例:
- 您是广告客户,想要在关联的 Google Ads 账号中按归因事件类型查找所有转化,其中包括欧洲经济区 (EEA) 数据。
- 您是衡量合作伙伴,想要在关联的 Google Ads 账号中按归因事件类型查找所有转化。
如需获取 Google Ads 账号的转化总数,您可以使用 OPTIONS(privacy_checked_export=TRUE) 子句重写查询,以便单独对每项 Google 服务应用隐私权检查。
本部分中的重写示例执行以下操作:
- 单独查询每项 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方法。
-
用户同意分享的数据除外,例如样本组成员的数据。 ↩