GDPR

一般信息

《通用数据保护条例》(GDPR) 于 2018 年春季生效。GDPR 规定了如何收集和处理有关欧洲经济区和瑞士公民的信息。其目的是保护机密数据的隐私,并确保与互联网上信息收集、存储和处理相关的所有流程的透明度。

GDPR 具有治外法权范围,适用于处理欧洲经济区和瑞士公民个人数据的所有公司,无论该公司位于何处。

快速指南

每次启动应用程序时,必须将用户同意处理个人数据的信息发送至 SDK。

  1. 按照 说明 连接移动广告 SDK。

  2. 显示一个窗口,用户可以在其中接受个人数据处理的用户协议(详情请参见 示例)。

    此代码是一个示例,而不是要遵循的分步指南。

    class GdprDialogFragment : DialogFragment() {
        // ...
        // 创建对话框窗口的示例。
        override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
            val context = requireContext()
            val builder: AlertDialog.Builder = AlertDialog.Builder(context)
            builder.setTitle(R.string.gdpr_dialog_title)
                .setMessage(R.string.gdpr_dialog_message)
                .setPositiveButton(R.string.accept) { _, _ -> onButtonClicked(context, true) }
                .setNeutralButton(R.string.about) { _, _ -> openPrivacyPolicy() }
                .setNegativeButton(R.string.decline) { _, _ -> onButtonClicked(context, false) }
            return builder.create()
        }
    
        private fun openPrivacyPolicy() {
            val url = getString(R.string.privacy_policy_url)
            val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
            startActivity(intent)
        }
    
        private fun onButtonClicked(context: Context, userConsent: Boolean) {
            val preferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
            preferences.edit()
                .putBoolean(SettingsFragment.USER_CONSENT_KEY, userConsent)
                .putBoolean(SettingsFragment.DIALOG_SHOWN_KEY, true)
                .apply()
            noticeDialogListener.onDialogClick()
        }
    }
    
    // ...
    public class GdprDialogFragment extends DialogFragment {
        // ...
        // 创建对话框窗口的示例。
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            final Context context = getContext();
    
            AlertDialog.Builder builder = new AlertDialog.Builder(context);
            builder.setTitle(R.string.gdpr_dialog_title)
                    .setMessage(R.string.gdpr_dialog_message)
                    .setPositiveButton(R.string.accept, (dialog, id) ->
                            onButtonClicked(context, true))
                    .setNeutralButton(R.string.about, (dialog, which) ->
                            openPrivacyPolicy())
                    .setNegativeButton(R.string.decline, (dialog, id) ->
                            onButtonClicked(context, false));
            return builder.create();
        }
    
        private void openPrivacyPolicy() {
            final String url = getString(R.string.privacy_policy_url);
            final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
            startActivity(intent);
        }
    
        private void onButtonClicked(final Context context,
                                     final boolean userConsent) {
            final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
            preferences.edit()
                    .putBoolean(SettingsFragment.USER_CONSENT_KEY, userConsent)
                    .putBoolean(SettingsFragment.DIALOG_SHOWN_KEY, true)
                    .apply();
    
            mNoticeDialogListener.onDialogClick();
        }
    }
    
  3. 使用 setUserConsent 方法将接收到的值传递至 Mobile Ads SDK。只有在用户同意数据处理的情况下,才会处理适用 GDPR 区域的用户的数据。

上一篇
下一篇