GDPR实战指导:谷歌是如何设计并获得用户“同意”的?
作者:APUS 研究院(ID:apusapps)
很多人认为,因为条件的苛刻,“同意”作为传统的用户让渡数据权利的途径,在 GDPR 的语境下已经丧失了存活的空间。但我们观察到,大量的互联网企业仍然把取得“同意”作为处理用户数据、提供互联网服务的重要依据。
白鲸出海注:本文是 APUS 研究院发布在白鲸出海 APUS 专栏、GDPR 系列文章中的第六篇。转载须保留本段文字,并注明作者和来源。商业转载/使用请前往 APUS 主页,联系寻求作者授权。
回顾 APUS 该系列其他文章:《出海企业 GDPR 合规的痛点》(系列之一)、《用户条款,如何让用户“同意”才合规》(系列之二)、《全球首例 GDPR 案件分析》(系列之三)、《GDPR 大背景下,达成合规标准之项目管理指导》(系列之四)、《GDPR 合规下的 App 产品设计——启动页面和账号注册》(系列之五)。
如我们之前介绍,一方面,GDPR 对有效的“同意”设置了比较严格的条件;另一方面,“同意”是处理用户数据最为稳妥的法律依据。
Google 在提供个性化广告变现服务时,要求下游发布方就其采集和使用用户数据,需要取得用户明确的“同意”。为了支持下游发布方更好的履行它的规定,Google 提供了 Consent SDK。
本文将以 Google 提供的 Consent SDK(以下简称“Consent SDK”)为范例,从产品逻辑和技术实现路径上讨论 Google 是如何设计并取得用户的“同意”。
一、我们先从界面上分析 Consent SDK 的产品逻辑
1. 授权页
如果是欧盟用户、且用户没有授权,可以调用 Consent 的接口打开以下画面(全屏弹窗):
此页面包含四个元素:
元素一:应用的名称和应用 icon。
元素二:提示应用通过展示广告保持软件免费,并提问是否可以使用数据提供个性化广告内容。
元素三:提示用户可以查看 200 多个广告技术提供商以及它们对应的隐私页信息。
元素四:针对元素二的问题,给出三个不同的选项按键,分别表示:
1)同意查看个性化广告;
2)同意查看非个性化广告;
3)使用付费版本的应用而不是查看广告。
2. 点击查看广告技术提供商信息
在上面的元素三中提到用户可以点击“Learn how App and our 200 partners collect and usedata”进入展示广告技术提供商列表,点击可以展示对应提供商的隐私页信息。
如上图步骤二页面,可点击任意一个广告商的气泡框进入其对应的隐私页面(如上图步骤三);点击“How App uses your data”按键可以进入应用自身的隐私协议页面(如上图步骤四);点击“Back”键可以返回到步骤一页面。
3. 点击授权按钮区域
在授权页面,禁用 back 按键,用户必须明确做出选择,才能继续进行后续的操作。在点击授权按钮区域,有三个选项(如下图):
· 当选择选项一“Yes, continue to see relevant ads”——同意查看个性化广告,关闭对话框。
· 当选择选项二“No, see ads that are less relevant”——同意查看非个性化广告,会出现 App 的挽留页面(如下图页面一)。挽留界面的文案内容包括以下几个部分:
1)声明尊重用户选择,用户可随时在设置中更改选择;
2)App 的隐私协议入口;
3)设置“Back”与“Agree”按键。
· 当选择选项三“Pay for the ad-free version”——购买无广告版本时,会跳转至 Google Play 界面(如下图选项三),用户可以根据需要购买 App 付费无广告版本。
综上分析,Consent SDK 要求用户必须在给定的选项中做出选择。在保证透明度的前提下(比如用户可以仔细阅读各个广告技术提供商的隐私信息),引导用户授权“同意”或者付费。Consent SDK 提供接口可以控制三个按钮的展示,如果产品没有付费版,可以控制 SDK 不展示付费跳转的按钮。
二、我们继续从技术的维度剖析实现上述逻辑的路径
1. 执行的总体流程
如上图,每次启动应用时,优先调用 requestConsentInfoUpdate() 接口,从云端获取一些基础数据。比如是否是欧盟用户、广告技术提供商信息等。然后基于上述基础数据,通过 consentForm 接口构建授权页。授权页是一个全屏对话框,是以 webview 打开的全屏可配置的表单。我们可以配置表单以向用户显示以下选项的组合:
1)同意查看个性化广告;
2)同意查看非个性化广告;
3)使用付费版本的应用而不是查看广告。
备注:如果你觉得授权页里面的文案不合适或者不支持多语言,可以修改 SDK 里面提供的 consentform.html 文件。
2. requestConsentInfoUpdate 接口
其主要作用是从云服务接口【1】获取相应的基础数据。工作流程图如下:
· 请求数据:
· 请求样例:
正常请求:
https://adservice.google.com/getconfig/pubvendors?pubs=pub-XXXXXX&es=2&plat=android&v=1.0.6
调试直接当成欧洲用户请求:
https://adservice.google.com/getconfig/pubvendors?pubs=pub-XXXXXX&es=2&plat=android&v=1.0.6&debug_geo=1
· 返回数据(返回的数据是 json 格式):
· 返回样例
3. ConsentForm 接口
ConsentForm 是用于构建授权页的关键类,通过方法:
1)withPersonalizedAdsOption();
2)withNonPersonalizedAdsOption();
3)withAdFreeOption()。
可以组合出来上面产品分析的授权按钮区域的组合。它的工作流程如下:
4. isRequestLocationInEeaOrUnknown 接口
该接口会返回该用户是否属于欧盟用户,但是必须要正确执行 requestConsentInfoUpdate 接口后,才能够真实有效,否则返回的都是 false。实验证明,判断是否是欧盟用户的依据是通过 IP 判断的。在 Google《欧盟地区用户意见征求政策》可以找到这样的描述【2】:
EEA 包括欧盟成员国、冰岛、列支敦士登和挪威。我们的广告投放行为以用户的 IP 地址为依据。
5. getConsentStatus 接口
该接口返回,用户最终选择授权页的接口状态。分别为:
以上是我们以 Google 产品为例,从产品和技术维度就取得用户“同意”进行的分析。这个 Consent SDK 是一个开源项目,如果大家有兴趣想进一步的学习和研究,可以参考以下资料:
官方资料:
https://developers.google.com/admob/android/eu-consent
所有的开源代码:
https://github.com/googleads/googleads-consent-sdk-android
【注释】:
[1] https://adservice.google.com/getconfig/pubvendors
[2] https://support.google.com/dfp_premium/answer/7673898#ads
【参考资料】:
https://support.google.com/dfp_premium/answer/7673898#ads
https://support.google.com/admob/answer/7666519#providers
https://developers.google.com/admob/android/eu-consent
了解更多GDPR知识,发送“GDPR”给您看白鲸出海策划的最新文章!
本文由 jqyjr 编辑排版
推荐阅读