GDPR

Общие сведения

Весной 2018 года в силу вступил общий регламент по защите данных (General Data Protection Regulation, сокращенно GDPR). Регламент регулирует сбор и обработку информации о физических лицах — гражданах Европейской экономической зоны и Швейцарии. Он призван усилить защиту конфиденциальных данных и сделать прозрачными все элементы сбора, хранения и обработки информации в интернете.

GDPR имеет экстерриториальное действие и применяется ко всем компаниям, которые обрабатывают персональные данные граждан Европейской экономической зоны и Швейцарии, независимо от местонахождения такой компании.

Краткое руководство

Согласие пользователя на обработку персональных данных необходимо передавать в SDK при каждом запуске приложения.

  1. Подключите Mobile Ads 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. Передайте полученное значение в Mobile Ads SDK с помощью метода setUserConsent. Данные пользователей, находящихся в GDPR-регионе, будут обрабатываться только при наличии согласия пользователя на обработку данных.

Следующая