獵雲網註:本文將以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
調試直接當成歐洲用戶請求:
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系列文章閱讀:
APUS研究院|GDPR實戰指南(一)寫給出海的夥伴:GDPR,一個可以討論的話題
APUS研究院|GDPR實戰指南(二)「同意」,沒那麼簡單
APUS研究院|GDPR實戰指南(三)全球首例GDPR案件分析
APUS研究院|GDPR實戰指南(四)淺談企業GDPR合規中的項目管理
APUS研究院|GDPR實戰指南(五)移動App的產品設計——啟動頁面和帳號註冊實例
介紹:APUS研究院,致力於研究數據合規的前沿問題,持續跟進高新行業的合規熱點和動態。