猎云网注:本文将以Google提供的Consent SDK(以下简称“Consent SDK”)为范例,从产品逻辑和技术实现路径上讨论Google是如何设计并取得用户的“同意”。文章来源:APUS(ID:apusapps),作者:APUS研究院。
如我们之前介绍,一方面,GDPR对有效的“同意”设置了比较严格的条件;另一方面,“同意”是处理用户数据最为稳妥的法律依据(请参考前作《“同意”,没那么简单》)。
很多人认为,因为条件的苛刻,“同意”作为传统的用户让渡数据权利的途径,在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
调试直接当成欧洲用户请求:
返回数据(返回的数据是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系列文章阅读:
APUS研究院|GDPR实战指南(一)写给出海的伙伴:GDPR,一个可以讨论的话题
APUS研究院|GDPR实战指南(三)全球首例GDPR案件分析
APUS研究院|GDPR实战指南(四)浅谈企业GDPR合规中的项目管理
APUS研究院|GDPR实战指南(五)移动App的产品设计——启动页面和账号注册实例
介绍:APUS研究院,致力于研究数据合规的前沿问题,持续跟进高新行业的合规热点和动态。